X-Git-Url: https://git.distorted.org.uk/u/mdw/putty/blobdiff_plain/96d9eb896c2115f032379d4d1e2a7fc211408fdc..68a49acbf3f96fbbbc385620655dcb577e62c328:/winnet.c diff --git a/winnet.c b/winnet.c index 7cadf86f..430a47bb 100644 --- a/winnet.c +++ b/winnet.c @@ -370,7 +370,7 @@ void sk_getaddr(SockAddr addr, char *buf, int buflen) int sk_addrtype(SockAddr addr) { - return addr->family; + return (addr->family == AF_INET ? ADDRTYPE_IPV4 : ADDRTYPE_IPV6); } void sk_addrcopy(SockAddr addr, char *buf) @@ -833,7 +833,9 @@ void try_send(Actual_Socket s) s->pending_error = err; return; } else { - logevent(winsock_error_string(err)); + /* We're inside the Windows frontend here, so we know + * that the frontend handle is unnecessary. */ + logevent(NULL, winsock_error_string(err)); fatalbox("%s", winsock_error_string(err)); } } else { @@ -972,7 +974,9 @@ int select_result(WPARAM wParam, LPARAM lParam) if (ret <= 0) { char *str = (ret == 0 ? "Internal networking trouble" : winsock_error_string(WSAGetLastError())); - logevent(str); + /* We're inside the Windows frontend here, so we know + * that the frontend handle is unnecessary. */ + logevent(NULL, str); fatalbox("%s", str); } else { return plug_receive(s->plug, 2, buf, ret); @@ -1134,3 +1138,13 @@ SOCKET next_socket(int *state) Actual_Socket s = index234(sktree, (*state)++); return s ? s->s : INVALID_SOCKET; } + +int net_service_lookup(char *service) +{ + struct servent *se; + se = getservbyname(service, NULL); + if (se != NULL) + return ntohs(se->s_port); + else + return 0; +}