--- lash-0.5.1-orig/lashd/conn_mgr.c 2005-10-01 23:09:29.000000000 -0700 +++ lash-0.5.1/lashd/conn_mgr.c 2006-05-07 15:21:55.000000000 -0700 @@ -187,6 +187,12 @@ err = getaddrinfo(NULL, "lash", &hints, &addrs); if (err) { + char* lashserv[256]; + sprintf(lashserv, "%d", LASH_DEFAULT_PORT); + hints.ai_flags |= AI_NUMERICSERV; + err = getaddrinfo (NULL, lashserv, &hints, &addrs); + } + if (err) { fprintf(stderr, "%s: could not look up service name: %s\n", __FUNCTION__, gai_strerror(err)); return -1; --- lash-0.5.1-orig/liblash/comm.c 2005-09-15 01:15:30.000000000 -0700 +++ lash-0.5.1/liblash/comm.c 2006-05-07 15:22:20.000000000 -0700 @@ -135,7 +135,12 @@ lash_comm_event_t connect_event; int err; - err = lash_open_socket(&client->socket, server, "lash"); + err = lash_open_socket(&client->socket, server, "lash", 0); + if (err) { + char* lashserv[256]; + sprintf(lashserv, "%d", LASH_DEFAULT_PORT); + err = lash_open_socket(&client->socket, server, lashserv, 1); + } if (err) { fprintf(stderr, "%s: could not create server connection\n", __FUNCTION__); --- lash-0.5.1-orig/liblash/socket.c 2005-10-03 20:26:41.000000000 -0700 +++ lash-0.5.1/liblash/socket.c 2006-05-07 14:55:25.000000000 -0700 @@ -154,7 +154,7 @@ } int -lash_open_socket(int *sockptr, const char *host, const char *service) +lash_open_socket(int *sockptr, const char *host, const char *service, int numericserv) { struct addrinfo hints; struct addrinfo *addrs; @@ -168,6 +168,7 @@ memset(&hints, 0, sizeof(hints)); hints.ai_socktype = SOCK_STREAM; + hints.ai_flags = (numericserv == 0)? 0 : AI_NUMERICSERV; err = getaddrinfo(host, service, &hints, &addrs); if (err) { --- lash-0.5.1-orig/lash/socket.h 2005-09-12 22:02:18.000000000 -0700 +++ lash-0.5.1/lash/socket.h 2006-05-07 14:55:25.000000000 -0700 @@ -26,7 +26,7 @@ int lash_recvall (int socket, void ** bufptr, size_t * buf_size, int flags); /* returns 0 on success, non-0 on error */ -int lash_open_socket (int * socket, const char * host, const char * service); +int lash_open_socket (int * socket, const char * host, const char * service, int numericserv); /* return hostname on success, or NULL on error */ const char * lash_lookup_peer_name (int sock);