From mboxrd@z Thu Jan 1 00:00:00 1970 Date: Wed, 6 Jan 1999 01:49:47 -0500 From: arisawa@ar.aichi-u.ac.jp arisawa@ar.aichi-u.ac.jp Subject: [9fans] cs trouble on multi-ether Topicbox-Message-UUID: 8dd5ca92-eac8-11e9-9e20-41e7f4b1d025 Message-ID: <19990106064947.49OuTiERJRAQbpNRi4_2bzbA6OqXRr1pEEM6_tq3ybc@z> Hello Russ! >In this case, dnresolve.c uses udpport() >to get a UDP port for DNS queries, and the process >of dialing asks cs how to translate udp!0.0.0.0!0. OK. I have confirmed the origin of "udp!0.0.0.0!0" is dns. After stopping to run dns, "udp!0.0.0.0!0"'s are disappeared and it seems the system become stable. >Which call to reorder() is looping? There are two that could be. If I run dns and allow cs to accept "udp!0.0.0.0!0", cs can fall into endless loop. The pass to the loop is shown bellow: int lookup(Mfile *mf, char *net, char *host, char *serv) { ... for(np = netlist; np; np = np->next){ nt = (*np->lookup)(np, host, serv, 0); ... } Ndbtuple* iplookup(Network *np, char *host, char *serv, int nolookup) { ... return reorder(t, s.t); } Ndbtuple* reorder(Ndbtuple *t, Ndbtuple *x) { ... for(line = x; line->entry == line->line; line = line->line) if(line->line == x) abort()/* inserted to detect endless loop */ ; ... } By the way, IP's of may system are configured as follows: # corega etherlink II ip=202.250.160.40 ether=0000f45d4345 sys=ar dom=ar.aichi-u.ac.jp bootf=/386/n9pccpu proto=il # alias (ether1) of ar # 3c905b ip=202.250.160.122 ether=00a024d113a2 sys=plan9 dom=plan9.aichi-u.ac.jp bootf=/386/n9pccpu proto=il Which IP will be used on calling dial() ? It seems to me dial() uses ether0 and we have no way to select IP. Kenji Arisawa E-mail: arisawa@aichi-u.ac.jp