diff options
author | Christian Grothoff <christian@grothoff.org> | 2012-06-26 13:10:45 +0000 |
---|---|---|
committer | Christian Grothoff <christian@grothoff.org> | 2012-06-26 13:10:45 +0000 |
commit | 3a3e4c0f1b588f687ff98fcee4952fa02e97dfb2 (patch) | |
tree | 6bc8e191a4e8399f9a132e9ffc3eccdf0bd6d4be /src/util/server.c | |
parent | 5f80e27a31542a0a1f8c8eb862216aacfdb35312 (diff) | |
download | gnunet-3a3e4c0f1b588f687ff98fcee4952fa02e97dfb2.tar.gz gnunet-3a3e4c0f1b588f687ff98fcee4952fa02e97dfb2.zip |
-fix error message for unix paths starting with 0-termination
Diffstat (limited to 'src/util/server.c')
-rw-r--r-- | src/util/server.c | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/src/util/server.c b/src/util/server.c index 1f8c654b5..ff4584677 100644 --- a/src/util/server.c +++ b/src/util/server.c | |||
@@ -478,10 +478,17 @@ open_listen_socket (const struct sockaddr *serverAddr, socklen_t socklen) | |||
478 | "bind", port, | 478 | "bind", port, |
479 | (AF_INET == serverAddr->sa_family) ? "IPv4" : "IPv6"); | 479 | (AF_INET == serverAddr->sa_family) ? "IPv4" : "IPv6"); |
480 | else if (AF_UNIX == serverAddr->sa_family) | 480 | else if (AF_UNIX == serverAddr->sa_family) |
481 | LOG (GNUNET_ERROR_TYPE_WARNING, | 481 | { |
482 | _("`%s' failed for `%s': address already in use\n"), "bind", | 482 | const struct sockaddr_un *un = (const struct sockaddr_un *) serverAddr; |
483 | ((const struct sockaddr_un *) serverAddr)->sun_path); | 483 | unsigned int off = 0; |
484 | 484 | ||
485 | if ('\0' == un->sun_path[0]) | ||
486 | off = 1; /* some UNIXPATHs start with 0 */ | ||
487 | LOG (GNUNET_ERROR_TYPE_WARNING, | ||
488 | _("`%s' failed for `%.*s': address already in use\n"), "bind", | ||
489 | (int) ((sizeof (un->sun_path) - off)), | ||
490 | (&un->sun_path[off])); | ||
491 | } | ||
485 | } | 492 | } |
486 | GNUNET_break (GNUNET_OK == GNUNET_NETWORK_socket_close (sock)); | 493 | GNUNET_break (GNUNET_OK == GNUNET_NETWORK_socket_close (sock)); |
487 | errno = eno; | 494 | errno = eno; |