]> git.sur5r.net Git - bacula/bacula/blobdiff - bacula/src/lib/bnet.c
- Add user supplied patch to add inet_aton() of old Solaris
[bacula/bacula] / bacula / src / lib / bnet.c
index df41939ec693b1daeabe700e8e25ed6f2da3c481..bf8fe9d457bdfdad2db0d42423f30bc4e108a3f7 100644 (file)
@@ -54,6 +54,19 @@ extern time_t watchdog_time;
 #endif
 
 
+#ifdef HAVE_OLD_SOCKOPT
+int inet_aton(const char *cp, struct in_addr *inp)
+{
+   struct in_addr inaddr;
+
+   if((inaddr.s_addr = inet_addr(cp)) != INADDR_NONE) {
+      inp->s_addr = inaddr.s_addr;
+      return 1;
+   }
+   return 0;
+}
+#endif
+
 /*
  * Read a nbytes from the network.
  * It is possible that the total bytes require in several
@@ -162,6 +175,7 @@ int32_t bnet_recv(BSOCK * bsock)
 
    ASSERT(bsock != NULL);
    bsock->msg[0] = 0;
+   bsock->msglen = 0;
    if (bsock->errors || bsock->terminated) {
       return BNET_HARDEOF;
    }
@@ -784,7 +798,11 @@ Retrying ...\n", name, host, port, be.strerror());
 const char *bnet_strerror(BSOCK * bsock)
 {
    berrno be;
-   return be.strerror(bsock->b_errno);
+   if (bsock->errmsg == NULL) {
+      bsock->errmsg = get_pool_memory(PM_MESSAGE);
+   }
+   pm_strcpy(bsock->errmsg, be.strerror(bsock->b_errno));
+   return bsock->errmsg;
 }
 
 /*