- errcode = find_port(hd,port,&pr);
- switch (errcode) {
- case no_error: /* Port already used... */
- RAISE2(mismatch_error,
- "can't listen on address %s:%d: port already in use\n.",
- host,port);
-
- case mismatch_error: /* Port not used so far. Do it */
- pr.tochan = sock->raw ? pd->rawChan : pd->chan;
- pr.port = port;
- pr.raw = sock->raw;
- TRY(gras_dynar_push(hd->ports,&pr));
-
- if (sock->raw) {
- if (pd->rawSock)
- WARN1("asked to open two raw server sockets on %s, first one lost",
- MSG_host_get_name(MSG_host_self()));
- pd->rawSock = sock;
- } else {
- if (pd->sock)
- WARN1("asked to open two server sockets on %s, first one lost",
- MSG_host_get_name(MSG_host_self()));
- pd->sock = sock;
- }