#include #include /* various networking crud */ #include #include #include void getremotehostname(char *name, int nname) { struct sockaddr_in sock; struct hostent *hp; uint len; int on; strecpy(name, name+nname, "unknown"); len = sizeof sock; if(getpeername(0, (struct sockaddr*)&sock, (void*)&len) < 0) return; hp = gethostbyaddr((char *)&sock.sin_addr, sizeof (struct in_addr), sock.sin_family); if(hp == 0) return; strecpy(name, name+nname, hp->h_name); on = 1; setsockopt(0, SOL_SOCKET, SO_KEEPALIVE, (char*)&on, sizeof(on)); #ifdef TCP_NODELAY on = 1; setsockopt(0, IPPROTO_TCP, TCP_NODELAY, (char*)&on, sizeof(on)); #endif }