fs: dlm: print cluster addr if non-cluster node connects
authorAlexander Aring <aahringo@redhat.com>
Tue, 4 Jan 2022 14:09:47 +0000 (09:09 -0500)
committerDavid Teigland <teigland@redhat.com>
Tue, 4 Jan 2022 15:40:24 +0000 (09:40 -0600)
This patch prints the cluster node address if a non-cluster node
(according to the dlm config setting) tries to connect. The current
hexdump call will print in a different loglevel and only available if
dynamic debug is enabled. Additional we using the ip address format
strings to print an IETF ip4/6 string represenation.

Signed-off-by: Alexander Aring <aahringo@redhat.com>
Signed-off-by: David Teigland <teigland@redhat.com>
fs/dlm/lowcomms.c

index 23a1ff690725237b852cea0a290cdf6e30ab5f59..e284d696c1fdc852f8eb92395ad03f1af31af844 100644 (file)
@@ -1028,10 +1028,28 @@ static int accept_from_sock(struct listen_connection *con)
        /* Get the new node's NODEID */
        make_sockaddr(&peeraddr, 0, &len);
        if (addr_to_nodeid(&peeraddr, &nodeid, &mark)) {
-               unsigned char *b=(unsigned char *)&peeraddr;
-               log_print("connect from non cluster node");
-               print_hex_dump_bytes("ss: ", DUMP_PREFIX_NONE, 
-                                    b, sizeof(struct sockaddr_storage));
+               switch (peeraddr.ss_family) {
+               case AF_INET: {
+                       struct sockaddr_in *sin = (struct sockaddr_in *)&peeraddr;
+
+                       log_print("connect from non cluster IPv4 node %pI4",
+                                 &sin->sin_addr);
+                       break;
+               }
+#if IS_ENABLED(CONFIG_IPV6)
+               case AF_INET6: {
+                       struct sockaddr_in6 *sin6 = (struct sockaddr_in6 *)&peeraddr;
+
+                       log_print("connect from non cluster IPv6 node %pI6c",
+                                 &sin6->sin6_addr);
+                       break;
+               }
+#endif
+               default:
+                       log_print("invalid family from non cluster node");
+                       break;
+               }
+
                sock_release(newsock);
                return -1;
        }