rem: int netcat_socket_new_listen(const struct in_addr *addr, unsigned short port)
add: int netcat_socket_new_listen(const struct in_addr *addr, in_port_t port)
context: int netcat_socket_new_listen(const struct in_addr *addr, unsigned short port){  int sock, ret;  struct sockaddr_in my_addr;  debug_dv("netcat_socket_new_listen(addr=%p, port=%hu)", (void *)addr, port);  /* Reset the sockaddr structure */  my_addr.sin_family = AF_INET;				/* FIXME */  my_addr.sin_port = htons(port);  memcpy(&my_addr.sin_addr, addr, sizeof(my_addr.sin_addr));  /* create the socket and fix the options */  sock = netcat_socket_new(PF_INET, SOCK_STREAM);  if (sock < 0)    return sock;		/* just forward the error code */  /* bind it to the specified address (could be INADDY_ANY as well) */  ret = bind(sock, (struct sockaddr *)&my_addr, sizeof(my_addr));  if (ret < 0) {    ret = -3;    goto err;  }  /* actually make it listening, with a reasonable backlog value */  ret = listen(sock, 4);  if (ret < 0) {    ret = -4;    goto err;  }  return sock; err:  if (ret < 0) {    int saved_errno = errno;    /* the close() call SHOULD NOT fail, but don't risk losing the original       errno caused by some previous syscall. */    close(sock);    /* restore the original errno */    errno = saved_errno;  }  return ret;}