because the output of ni_to_addrstring gets fed back to inet_addr, it can't do thinks like zero pad, or inet_addr may return an octal interpretation or error for things like 098. i have tweaked ni_to_addrstring to just use %hu instead of %03hu and now it looks happy for all my queries so far.