On 03/09/2009 23:32, Roy Marples wrote:
I use stock IPFilter in NetBSD-5 with miniupnpd-20090820 [1].
It fails to work.

So I tried the tarball from Darrens blog [2].
This doesn't work either.

So I went back to miniupnpd-20090820 and cut this patch (attached).
This almost works - it adds and reports correctly. However, it won't
delete filter rules.
The error it gives is ioctl(SIOCRMAFR): Device busy from line 441 in
src/ipf/ipfrdr.c
According to my testing, it is trying to delete the correct rule.

So, what is wrong?

Progress!
I updated ipfilter on my NetBSD-5 box to the version in -current (ipfilter 4.1.33 I believe) and this error now goes away. I also have the patch from NetBSD PR kern/41914 applied as the original issue was with reference count being too high from what I understand.

Anyway, the new issue is that everything is now working but the removal of NAT rules. It seems that it cannot find every over rule to remove. A simple change of the code from (in psuedo code)

if (remove_nat_rule(&rule) == -1)
    return -1;

to

if (remove_nat_rule(&rule) == -1)
   if (remove_nat_rule(&rule) == -1)
      return -1;

Makes it all work nicely, but obviously this is sub-optiomal. So is there anyway to reset SIOCGENITER? I tried sending SIOCIPFDELTOK the same data, but it came back with no such process :/

Any thoughts or ideas here?

Thanks

Roy

Reply via email to