rendered paste bodysockaddr_in mkaddr(char *hostname, int port) {
unsigned int addr = inet_addr(hostname);
struct hostent *host;
struct sockaddr_in sockaddr;
if ((host = gethostbyaddr((char*)&addr, sizeof(addr), AF_INET)) != NULL) {
/* Resolved as address */
}
if (host == NULL) {
if ((host = gethostbyname(hostname)) == NULL) {
/* Could not resolve at all */
return sockaddr;
} else {
/* Resolved as hostname */
}
}
sockaddr.sin_family = AF_INET;
sockaddr.sin_port = htons(port);
memcpy(&sockaddr.sin_addr.s_addr, host->h_addr, host->h_length);
return sockaddr;
}