X-Git-Url: http://git.marmaro.de/?p=mmh;a=blobdiff_plain;f=zotnet%2Fmts%2Fclient.c;h=009595901fb9a5feaf0346381cd2b8fd78225deb;hp=2093374487033eb11ddaf67a37fae9f4a9fb4392;hb=0d1c5f533f3a6cd1c7f038f59585378f53b666c2;hpb=3d251965606d6a6e47897504594f84d12e3e292a diff --git a/zotnet/mts/client.c b/zotnet/mts/client.c index 2093374..0095959 100644 --- a/zotnet/mts/client.c +++ b/zotnet/mts/client.c @@ -92,8 +92,7 @@ client (char *args, char *protocol, char *service, int rproto, char *arguments[MAXARGS]; register struct hostent *hp; register struct servent *sp; -/* we assume netent and getnetbyaddr come with gethostbyname */ -#ifdef HAVE_GETHOSTBYNAME +#ifndef HAVE_GETHOSTBYNAME register struct netent *np; #endif @@ -209,6 +208,7 @@ rcaux (struct servent *sp, struct hostent *hp, int rproto, #ifdef KPOP int rem; + struct hostent *hp2; #endif /* KPOP */ for (ap = nets; ap < n1; ap++) @@ -257,7 +257,11 @@ rcaux (struct servent *sp, struct hostent *hp, int rproto, if (kservice) { /* "pop" */ char *instance; - if ((instance = strdup (hp->h_name)) == NULL) { + if (( hp2 = gethostbyaddr( hp->h_addr, hp->h_length, hp->h_addrtype )) + == NULL ) { + return NOTOK; + } + if ((instance = strdup (hp2->h_name)) == NULL) { close (sd); strncpy (response, "Out of memory.", len_response); return OOPS2;