- /* Socket is on fd 0 */
- struct sockaddr_in client_addr;
- memset(&client_addr, 0, sizeof(client_addr));
- BSOCK *bs = init_bsock(NULL, 0, "client", "unknown client", me->FDport,
- &client_addr);
+ /* Socket is on fd 0 */
+ struct sockaddr client_addr;
+ int port = -1;
+ socklen_t client_addr_len = sizeof(client_addr);
+ if (getsockname(0, &client_addr, &client_addr_len) == 0) {
+ /* MA BUG 6 remove ifdefs */
+ port = sockaddr_get_port_net_order(&client_addr);
+ }
+ BSOCK *bs = init_bsock(NULL, 0, "client", "unknown client", port, &client_addr);