miniupnp/miniupnp — pull request #19 by jweyrich (2012-09-19 12:35:28+00:00)
Title: IPFW update

**1. Rename IPFW include guards to not infringe the C standard rules.**

Quoting § 7.1.3 (Reserved identifiers) from the C99 standard:
> — All identifiers that begin with an underscore and either an uppercase letter or another underscore are always reserved for any use.
> — All identifiers that begin with an underscore are always reserved for use as identifiers with file scope in both the ordinary and tag name spaces.

Should we update all other include guards as well?

**2. Move IPFW implementation to a source file. Static in headers is not good.**

Having that *static sock* will cause problems when multiple translations units include `ipfwaux.h`. For example:
- `unit1.c` calls `ipfw_exec` with `optname = IP_FW_INIT`.
- `unit2.c` calls `ipfw_exec` to perform any other operation.
Then `unit2.c` will fail, because each translation unit will have its own static variables, therefore the *static sock* compiled in `unit2.c` was not initialized.

Please, let me know your thoughts.