View previous topic :: View next topic |
Author |
Message |
ArnoB
Joined: 06 Apr 2014 Posts: 5
|
Posted: Sun Apr 06, 2014 5:24 pm Post subject: FreeBSD 9.2 + IPFW |
|
|
Hi,
I'm trying to compile/install miniupnpd from ports on my FreeBSD 9.2Rp1 server with IPFW.
Code: | # cd /usr/ports/net/miniupnpd
# make install clean |
gives this error:
Code: | ...
pf/obsdrdr.c: In function 'add_redirect_rule2':
pf/obsdrdr.c:198: error: 'anchor_name' undeclared (first use in this function)
pf/obsdrdr.c:198: error: (Each undeclared identifier is reported only once
pf/obsdrdr.c:198: error: for each function it appears in.)
pf/obsdrdr.c:254: error: 'tag' undeclared (first use in this function)
pf/obsdrdr.c: In function 'get_redirect_rule':
pf/obsdrdr.c:475: error: 'anchor_name' undeclared (first use in this function)
pf/obsdrdr.c: In function 'delete_redirect_rule':
pf/obsdrdr.c:576: error: 'anchor_name' undeclared (first use in this function)
pf/obsdrdr.c: In function 'get_redirect_rule_by_index':
pf/obsdrdr.c:694: error: 'anchor_name' undeclared (first use in this function)
pf/obsdrdr.c: In function 'get_portmappings_in_range':
pf/obsdrdr.c:806: error: 'anchor_name' undeclared (first use in this function)
pf/obsdrdr.c:837: warning: format '%lu' expects type 'long unsigned int', but argument 3 has type 'unsigned int'
*** [pf/obsdrdr.o] Error code 1
Stop in /usr/ports/net/miniupnpd/work/miniupnpd-1.8.
*** [do-build] Error code 1
Stop in /usr/ports/net/miniupnpd.
*** [install] Error code 1
Stop in /usr/ports/net/miniupnpd. |
I was able to get rid of these errors by adding the following code to pf/obsdrdr.c:
Code: | 62a63,68
> /* FreeBSD 9.2Rp1 */
> const char * tag = 1;
> static const char anchor_name[] = "miniupnpd"; |
I haven't found out what the 'tag' variable should be yet. It's a bit beyond my coding knowledge. This made it compile and install. I also tried with tag=0.
I added these values to /etc/rc.conf:
Code: | ipfilter_enable="NO"
pf_enable="NO"
miniupnpd_enable="YES"
|
the output of genconf.sh:
Code: | Using ifpw
Configuring compilation for [FreeBSD] [9.2-RELEASE-p1] with [ipfw] firewall software.
Please edit config.h for more compilation options. |
Next I changed /usr/local/etc/miniupnpd.conf.
Then when I start miniupnpd I still get this in my syslog:
Code: | ... miniupnpd[88827]: open("/dev/pf"): No such file or directory
... miniupnpd[88827]: Failed to init redirection engine. EXITING |
So it looks like it's still trying to use PF in stead of IPFW...
Can anyone help me out with this please?
thanks in advance
Arno |
|
Back to top |
|
 |
miniupnp Site Admin
Joined: 14 Apr 2007 Posts: 1589
|
Posted: Mon Apr 07, 2014 10:30 am Post subject: |
|
|
there is be a problem in makefile so that it tries to compile pf code instead of ipfw one...
Try this :
Code: | --- Makefile 31 Mar 2014 12:21:23 -0000 1.79
+++ Makefile 7 Apr 2014 10:29:43 -0000
@@ -45,7 +45,8 @@ FWNAME = ipf
.if $(OSNAME) == "FreeBSD"
FWNAME != . /etc/rc.subr; . /etc/rc.conf; \
if checkyesno ipfilter_enable; then \
- echo "ipf"; else echo "pf"; fi
+ echo "ipf"; elif checkyesno pf_enable; then \
+ echo "pf"; else echo "ipfw" ; fi
.endif
.if $(OSNAME) == "NetBSD"
|
_________________ Main miniUPnP author.
https://miniupnp.tuxfamily.org/ |
|
Back to top |
|
 |
ArnoB
Joined: 06 Apr 2014 Posts: 5
|
Posted: Sun Apr 13, 2014 9:44 am Post subject: |
|
|
Hi, thanks for your reply.
unfortunately it doesn't change any of the problems.
I still have to manually add the 'tag' and 'anchor_name' variables.
Even after applying the patch from above it still doesn't pick up ipfw.
Quote: | miniupnpd[89778]: open("/dev/pf"): No such file or directory
miniupnpd[89778]: Failed to init redirection engine. EXITING |
|
|
Back to top |
|
 |
miniupnp Site Admin
Joined: 14 Apr 2007 Posts: 1589
|
Posted: Mon Apr 14, 2014 7:25 am Post subject: |
|
|
have you forced FWNAME=ipfw in Makefile ? _________________ Main miniUPnP author.
https://miniupnp.tuxfamily.org/ |
|
Back to top |
|
 |
ArnoB
Joined: 06 Apr 2014 Posts: 5
|
Posted: Mon Apr 14, 2014 1:56 pm Post subject: |
|
|
miniupnp wrote: | have you forced FWNAME=ipfw in Makefile ? |
that works!
at least... it chooses IPFW now.
then the next problem arises:
Code: |
===> Building for miniupnpd-1.8.20140310,1
cc -O2 -pipe -fno-strict-aliasing -ansi -Wall -W -Wstrict-prototypes -fno-common -c -o ipfw/ipfwrdr.o ipfw/ipfwrdr.c
ipfw/ipfwrdr.c: In function 'add_redirect_rule2':
ipfw/ipfwrdr.c:175: error: 'struct ip_fw' has no member named 'version'
ipfw/ipfwrdr.c:175: error: 'IP_FW_CURRENT_API_VERSION' undeclared (first use in this function)
ipfw/ipfwrdr.c:175: error: (Each undeclared identifier is reported only once
ipfw/ipfwrdr.c:175: error: for each function it appears in.)
ipfw/ipfwrdr.c:180: error: 'struct ip_fw' has no member named 'fw_prot'
ipfw/ipfwrdr.c:181: error: 'struct ip_fw' has no member named 'fw_flg'
ipfw/ipfwrdr.c:181: error: 'IP_FW_F_IIFACE' undeclared (first use in this function)
ipfw/ipfwrdr.c:182: error: 'struct ip_fw' has no member named 'fw_flg'
ipfw/ipfwrdr.c:182: error: 'IP_FW_F_IIFNAME' undeclared (first use in this function)
ipfw/ipfwrdr.c:183: error: 'struct ip_fw' has no member named 'fw_flg'
ipfw/ipfwrdr.c:183: error: 'IP_FW_F_IN' undeclared (first use in this function)
ipfw/ipfwrdr.c:183: error: 'IP_FW_F_OUT' undeclared (first use in this function)
ipfw/ipfwrdr.c:184: error: 'struct ip_fw' has no member named 'fw_flg'
ipfw/ipfwrdr.c:184: error: 'IP_FW_F_FWD' undeclared (first use in this function)
ipfw/ipfwrdr.c:187: error: 'struct ip_fw' has no member named 'fw_in_if'
ipfw/ipfwrdr.c:188: error: 'struct ip_fw' has no member named 'fw_in_if'
ipfw/ipfwrdr.c:191: error: 'struct ip_fw' has no member named 'fw_out_if'
ipfw/ipfwrdr.c:195: error: 'struct ip_fw' has no member named 'fw_dst'
ipfw/ipfwrdr.c:195: error: 'struct ip_fw' has no member named 'fw_out_if'
ipfw/ipfwrdr.c:196: error: 'struct ip_fw' has no member named 'fw_fwd_ip'
ipfw/ipfwrdr.c:196: error: 'struct ip_fw' has no member named 'fw_out_if'
ipfw/ipfwrdr.c:197: error: 'struct ip_fw' has no member named 'fw_dmsk'
ipfw/ipfwrdr.c:198: warning: implicit declaration of function 'IP_FW_SETNDSTP'
ipfw/ipfwrdr.c:199: error: 'struct ip_fw' has no member named 'fw_uar'
ipfw/ipfwrdr.c:200: error: 'struct ip_fw' has no member named 'fw_fwd_ip'
ipfw/ipfwrdr.c:202: error: 'struct ip_fw' has no member named 'fw_src'
ipfw/ipfwrdr.c:203: error: 'struct ip_fw' has no member named 'fw_smsk'
ipfw/ipfwrdr.c: In function 'get_redirect_rule':
ipfw/ipfwrdr.c:248: error: 'const struct ip_fw' has no member named 'fw_prot'
ipfw/ipfwrdr.c:248: error: 'const struct ip_fw' has no member named 'fw_uar'
ipfw/ipfwrdr.c:250: error: 'const struct ip_fw' has no member named 'fw_pcnt'
ipfw/ipfwrdr.c:252: error: 'const struct ip_fw' has no member named 'fw_bcnt'
ipfw/ipfwrdr.c:254: error: 'const struct ip_fw' has no member named 'fw_fwd_ip'
ipfw/ipfwrdr.c:258: error: 'const struct ip_fw' has no member named 'fw_fwd_ip'
ipfw/ipfwrdr.c:264: error: 'const struct ip_fw' has no member named 'fw_src'
ipfw/ipfwrdr.c:266: error: 'const struct ip_fw' has no member named 'fw_src'
ipfw/ipfwrdr.c: In function 'delete_redirect_rule':
ipfw/ipfwrdr.c:305: error: 'const struct ip_fw' has no member named 'fw_prot'
ipfw/ipfwrdr.c:305: error: 'const struct ip_fw' has no member named 'fw_uar'
ipfw/ipfwrdr.c: In function 'add_filter_rule2':
ipfw/ipfwrdr.c:322: warning: unused parameter 'ifname'
ipfw/ipfwrdr.c:323: warning: unused parameter 'rhost'
ipfw/ipfwrdr.c:324: warning: unused parameter 'iaddr'
ipfw/ipfwrdr.c:325: warning: unused parameter 'eport'
ipfw/ipfwrdr.c:326: warning: unused parameter 'iport'
ipfw/ipfwrdr.c:327: warning: unused parameter 'proto'
ipfw/ipfwrdr.c:328: warning: unused parameter 'desc'
ipfw/ipfwrdr.c: In function 'delete_filter_rule':
ipfw/ipfwrdr.c:334: warning: unused parameter 'ifname'
ipfw/ipfwrdr.c:335: warning: unused parameter 'eport'
ipfw/ipfwrdr.c:336: warning: unused parameter 'proto'
ipfw/ipfwrdr.c: In function 'get_redirect_rule_by_index':
ipfw/ipfwrdr.c:370: error: 'const struct ip_fw' has no member named 'fw_prot'
ipfw/ipfwrdr.c:373: error: 'const struct ip_fw' has no member named 'fw_prot'
ipfw/ipfwrdr.c:375: error: 'const struct ip_fw' has no member named 'fw_uar'
ipfw/ipfwrdr.c:377: error: 'const struct ip_fw' has no member named 'fw_fwd_ip'
ipfw/ipfwrdr.c:379: error: 'const struct ip_fw' has no member named 'fw_in_if'
ipfw/ipfwrdr.c:381: error: 'const struct ip_fw' has no member named 'fw_pcnt'
ipfw/ipfwrdr.c:383: error: 'const struct ip_fw' has no member named 'fw_bcnt'
ipfw/ipfwrdr.c:385: error: 'const struct ip_fw' has no member named 'fw_fwd_ip'
ipfw/ipfwrdr.c:389: error: 'const struct ip_fw' has no member named 'fw_fwd_ip'
ipfw/ipfwrdr.c:395: error: 'const struct ip_fw' has no member named 'fw_src'
ipfw/ipfwrdr.c:397: error: 'const struct ip_fw' has no member named 'fw_src'
ipfw/ipfwrdr.c: In function 'get_portmappings_in_range':
ipfw/ipfwrdr.c:445: error: 'const struct ip_fw' has no member named 'fw_uar'
ipfw/ipfwrdr.c:446: error: 'const struct ip_fw' has no member named 'fw_prot'
ipfw/ipfwrdr.c:453: warning: format '%lu' expects type 'long unsigned int', but argument 3 has type 'unsigned int'
*** [ipfw/ipfwrdr.o] Error code 1
Stop in /usr/ports/net/miniupnpd/work/miniupnpd-1.8.20140310.
*** [do-build] Error code 1
Stop in /usr/ports/net/miniupnpd.
*** [build] Error code 1
Stop in /usr/ports/net/miniupnpd.
|
I dug a bit into this and found huge differences between ipfw.c on FreeBSD and the one on OSX.
Does this show that miniupnpd is written for OSX and without a lot of rewrites will not work on FreeBSD?
thanks again!
greets
Arno |
|
Back to top |
|
 |
miniupnp Site Admin
Joined: 14 Apr 2007 Posts: 1589
|
Posted: Mon Apr 14, 2014 3:09 pm Post subject: |
|
|
well the ipfw code is old and not maintained. In fact all FreeBSD users except you have switched to pf
Indeed it was a Mac OS X dev which made the ipfw but now OS X has switched to pf too...
it may need a lot of work to get it working on FreeBSD. _________________ Main miniUPnP author.
https://miniupnp.tuxfamily.org/ |
|
Back to top |
|
 |
jweyrich
Joined: 18 Jul 2009 Posts: 6 Location: Brazil
|
Posted: Mon Apr 14, 2014 10:17 pm Post subject: |
|
|
It looks like your system is missing the ipfw header files. Do you have them in /usr/include? |
|
Back to top |
|
 |
darkomen
Joined: 15 Apr 2014 Posts: 4
|
Posted: Tue Apr 15, 2014 2:21 pm Post subject: |
|
|
i have problems this ipf |
|
Back to top |
|
 |
ArnoB
Joined: 06 Apr 2014 Posts: 5
|
Posted: Tue Apr 15, 2014 7:13 pm Post subject: |
|
|
miniupnp wrote: | well the ipfw code is old and not maintained. In fact all FreeBSD users except you have switched to pf
Indeed it was a Mac OS X dev which made the ipfw but now OS X has switched to pf too...
it may need a lot of work to get it working on FreeBSD. |
I know... I know...
well, thanks for clearing this out.. I'll have to switch to pf then.
I was planning on doing it anyway with the upgrade to FBSD 10.
I guess I have to speed that process up then
thanks mini! |
|
Back to top |
|
 |
ArnoB
Joined: 06 Apr 2014 Posts: 5
|
Posted: Tue Apr 15, 2014 7:14 pm Post subject: |
|
|
jweyrich wrote: | It looks like your system is missing the ipfw header files. Do you have them in /usr/include? |
as far as I could see it's because of the huge differences between ipfw.h on OSX and ipfw.h on FreeBSD 9 and 10.
obviously too big to fix and probably not worth the effort.
I've got this:
# ll /usr/include/netinet/ip_fw.h
-r--r--r-- 1 root wheel 19849 Oct 28 19:05 /usr/include/netinet/ip_fw.h
cheers
arno |
|
Back to top |
|
 |
|