On 25-11 07:52, Greg Fausak wrote:
Darren,
Did you ever get this figured out? I am running in to this problem when I enable domain.so processing. It is curious, because when I first tried it I got this error:
if (!mf_process_maxfwd_header("10")) { sl_send_reply("483", "too many hops");
};
when I take this test out I get the memory overflow. when I leave it in I get a 483 at the UA when registering.
That sounds like an infinite loop -- ser tries to send a message to itself over and over again. If you remove the condition then it will keep sending the message until the memory is exhausted. If you keep the condition then it will return the error after 10 loops.
This started happening with domain processing.
Probably one of the domains isn't properly recognized as belonging to your server, but DNS resolves to the server. That will result in an infinite loop.
ngrep only shows one packet, but if I put an xlog() trace at the top of the route {}; logic I see recursion. Somehow the route loop is being entered over and over again.
Yes. ngrep doesn't show the looping packets because it can listen on one interface only and that's usually the network card. Looping packets are sent over loopback so ngrep will not show them.
If I comment out the 'loadmodule domain.so', and remove the #modparam("domain", "db_mode", 1) #modparam("domain", "domain_table", "domain") #modparam("domain", "domain_col", "did") #modparam("domain","db_url", "X"); #modparam("usrloc|group", "use_domain", 1) lines, modify the www_challenge and www_authorize accordingly, and change if (!uri==myself) { # if(!is_from_local()) { then everything works. Were you trying to use the domain stuff?
I guess the condition is the problem. Probably is_from_local() doesn't match one of domains that are matched properly by (uri==myself) test.
To find out which domain is the troublemaker you can run ngrep listening on the loopback (use -d lo) option. Look at the Request-URI and make sure you have the domain from the Request-URI in your domain table.
Jan.