- if (lport)
- goto gotport;
-again:
- if (head->inp_lport++ < 1024)
- head->inp_lport = 1024;
- for (xp = head->inp_next; xp != head; xp = xp->inp_next)
- if (xp->inp_lport == head->inp_lport)
- goto again;
- lport = htons(head->inp_lport);
-gotport:
- inp->inp_socket = so;
+ if (lport == 0)
+ do {
+ if (head->inp_lport++ < 1024)
+ head->inp_lport = 1024;
+ lport = htons(head->inp_lport);
+ } while (in_pcblookup(head, zeroin_addr, 0, inp->inp_laddr, lport));