X-Git-Url: https://diplodocus.org/git/nmh/blobdiff_plain/5dd6771b28c257af405d7248639ed0e3bcdce38b..441ef14d0e5bc7f203dc93913bd503afdafaef76:/sbr/client.c?ds=sidebyside diff --git a/sbr/client.c b/sbr/client.c index c558536c..99788963 100644 --- a/sbr/client.c +++ b/sbr/client.c @@ -10,17 +10,10 @@ #include #include #include -#include #include #include #include - -#ifdef HAVE_ARPA_INET_H -# include -#endif - -#define TRUE 1 -#define FALSE 0 +#include #define MAXARGS 1000 @@ -32,7 +25,6 @@ static char **client_brkstring (char *, char *, char *); static int client_brkany (char, char *); static char **client_copyip (char **, char **, int); -static char *client_getcpy (char *); static void client_freelist(char **); @@ -45,15 +37,15 @@ client (char *args, char *service, char *response, int len_response, int debug) ap = arguments; if (args != NULL && *args != 0) { - ap = client_copyip (client_brkstring (client_getcpy (args), " ", "\n"), + ap = client_copyip (client_brkstring (mh_xstrdup(args), " ", "\n"), ap, MAXARGS); } else { if (servers != NULL && *servers != 0) - ap = client_copyip (client_brkstring (client_getcpy (servers), " ", "\n"), + ap = client_copyip (client_brkstring (mh_xstrdup(servers), " ", "\n"), ap, MAXARGS); } if (ap == arguments) { - *ap++ = client_getcpy ("localhost"); + *ap++ = mh_xstrdup("localhost"); *ap = NULL; } @@ -83,12 +75,15 @@ client (char *args, char *service, char *response, int len_response, int debug) for (ai = res; ai != NULL; ai = ai->ai_next) { if (debug) { char address[NI_MAXHOST]; + char port[NI_MAXSERV]; rc = getnameinfo(ai->ai_addr, ai->ai_addrlen, address, - sizeof(address), NULL, 0, NI_NUMERICHOST); + sizeof(address), port, sizeof port, + NI_NUMERICHOST | NI_NUMERICSERV); - fprintf(stderr, "Connecting to %s...\n", - rc ? "unknown" : address); + fprintf(stderr, "Connecting to %s:%s...\n", + rc ? "unknown" : address, + rc ? "--" : port); } sd = socket(ai->ai_family, ai->ai_socktype, ai->ai_protocol); @@ -101,7 +96,7 @@ client (char *args, char *service, char *response, int len_response, int debug) if (connect(sd, ai->ai_addr, ai->ai_addrlen) == 0) { freeaddrinfo(res); - client_freelist(ap); + client_freelist(arguments); return sd; } @@ -115,7 +110,7 @@ client (char *args, char *service, char *response, int len_response, int debug) freeaddrinfo(res); } - client_freelist(ap); + client_freelist(arguments); strncpy (response, "no servers available", len_response); return NOTOK; } @@ -128,8 +123,7 @@ client (char *args, char *service, char *response, int len_response, int debug) static void client_freelist(char **list) { - while (*list++ != NULL) - free(*list); + free(*list); } @@ -142,8 +136,8 @@ static char *broken[MAXARGS + 1]; static char ** client_brkstring (char *strg, char *brksep, char *brkterm) { - register int bi; - register char c, *sp; + int bi; + char c, *sp; sp = strg; @@ -172,8 +166,8 @@ client_brkstring (char *strg, char *brksep, char *brkterm) static int client_brkany (char chr, char *strg) { - register char *sp; - + char *sp; + if (strg) for (sp = strg; *sp; sp++) if (chr == *sp) @@ -195,18 +189,3 @@ client_copyip (char **p, char **q, int len_q) return q; } - - -static char * -client_getcpy (char *str) -{ - char *cp; - size_t len; - - len = strlen(str) + 1; - cp = mh_xmalloc(len); - - memcpy (cp, str, len); - return cp; -} -