port: shutdown(2) can return ENOTCONN on FreeBSD
[lttng-tools.git] / src / common / unix.cpp
index 0a1b1a5a54354beb1b759a7a95d6b6953d340ed2..0548aaccbab6fccce6f98093cf7c98cceca4ebf7 100644 (file)
@@ -379,7 +379,16 @@ int lttcomm_close_unix_sock(int sock)
        /* Shutdown receptions and transmissions */
        ret = shutdown(sock, SHUT_RDWR);
        if (ret < 0) {
-               PERROR("shutdown");
+               /*
+                * The socket is already disconnected, don't error out.
+                * This doesn't happen on Linux, but it does on FreeBSD, see:
+                * https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=227259
+                */
+               if (errno == ENOTCONN) {
+                       ret = 0;
+               } else {
+                       PERROR("shutdown");
+               }
        }
 
        closeret = close(sock);
This page took 0.022622 seconds and 4 git commands to generate.