X-Git-Url: http://git.tuebingen.mpg.de/?p=paraslash.git;a=blobdiff_plain;f=net.c;h=582fa04dad3c3f61c98fd975d551424123759da8;hp=5b754111ed54e892a5f6f0c26aa554414d3bfca1;hb=d7f72444e863fb5aae145d4e720cd71dc03578b0;hpb=198129e07ce4322b8f60c8e3b1062dc4ebabc083 diff --git a/net.c b/net.c index 5b754111..582fa04d 100644 --- a/net.c +++ b/net.c @@ -21,7 +21,6 @@ #include "para.h" #include "net.h" #include "string.h" -#include #include "error.h" extern void (*crypt_function_recv)(unsigned long len, const unsigned char *indata, unsigned char *outdata); @@ -189,8 +188,11 @@ int recv_buffer(int fd, char *buf, ssize_t size) { int n; - if ((n = recv_bin_buffer(fd, buf, size - 1)) >= 0) + n = recv_bin_buffer(fd, buf, size - 1); + if (n >= 0) buf[n] = '\0'; + else + *buf = '\0'; return n; } @@ -201,11 +203,12 @@ int recv_buffer(int fd, char *buf, ssize_t size) * \return The hostent structure or a NULL pointer if an error occurs * \sa gethostbyname(2) */ -struct hostent *get_host_info(char *host) +int get_host_info(char *host, struct hostent **ret) { PARA_INFO_LOG("getting host info of %s\n", host); /* FIXME: gethostbyname() is obsolete */ - return gethostbyname(host); + *ret = gethostbyname(host); + return *ret? 1 : -E_HOST_INFO; } /** @@ -344,7 +347,7 @@ int recv_cred_buffer(int fd, char *buf, size_t size) { return recv_buffer(fd, buf, size) > 0? 1 : -E_RECVMSG; } -#else HAVE_UCRED +#else /* HAVE_UCRED */ /** * send NULL terminated buffer and Unix credentials of the current process * @@ -514,8 +517,8 @@ int recv_pattern(int fd, const char *pattern, size_t bufsize) goto out; ret = 1; out: - free(buf); if (ret < 0) - PARA_NOTICE_LOG("did not receive pattern '%s'\n", buf); + PARA_NOTICE_LOG("did not receive pattern '%s'\n", pattern); + free(buf); return ret; }