rem: myaddr.sin_port = htons(port); memcpy(&myaddr.sin_addr, host, sizeof(myaddr.sin_addr));
add: myaddr.sin_port = htons(ncsock->local_port.num); memcpy(&myaddr.sin_addr, &ncsock->local_host.iaddrs[0], sizeof(myaddr.sin_addr));  if (myaddr.sin_port || myaddr.sin_addr.s_addr) { ret = bind(sock, (struct sockaddr *)&myaddr, sizeof(myaddr)); if (ret < 0) goto err; }
context: int core_udp_connect(struct in_addr *host, unsigned short port){  int sock;  struct sockaddr_in myaddr;  debug_v("core_udp_connect(host=%p, port=%hu)", (void *)host, port);  sock = netcat_socket_new(PF_INET, SOCK_DGRAM);  myaddr.sin_family = AF_INET;  myaddr.sin_port = htons(port);  memcpy(&myaddr.sin_addr, host, sizeof(myaddr.sin_addr));  connect(sock, (struct sockaddr *)&myaddr, sizeof(myaddr));  return sock;}				/* end of core_udp_connect() */