cifs: reuse cifs_match_ipaddr for comparison of dstaddr too
authorShyam Prasad N <sprasad@microsoft.com>
Tue, 27 Dec 2022 14:09:32 +0000 (14:09 +0000)
committerSteve French <stfrench@microsoft.com>
Thu, 2 Mar 2023 00:18:24 +0000 (18:18 -0600)
We have two pieces of code that does pretty much the same
comparison. This change reuses cifs_match_ipaddr within
match_address.

Signed-off-by: Shyam Prasad N <sprasad@microsoft.com>
Signed-off-by: Steve French <stfrench@microsoft.com>
fs/cifs/connect.c

index 5dabd8d..5233f14 100644 (file)
@@ -1344,32 +1344,8 @@ match_port(struct TCP_Server_Info *server, struct sockaddr *addr)
 
 static bool match_server_address(struct TCP_Server_Info *server, struct sockaddr *addr)
 {
-       switch (addr->sa_family) {
-       case AF_INET: {
-               struct sockaddr_in *addr4 = (struct sockaddr_in *)addr;
-               struct sockaddr_in *srv_addr4 =
-                                       (struct sockaddr_in *)&server->dstaddr;
-
-               if (addr4->sin_addr.s_addr != srv_addr4->sin_addr.s_addr)
-                       return false;
-               break;
-       }
-       case AF_INET6: {
-               struct sockaddr_in6 *addr6 = (struct sockaddr_in6 *)addr;
-               struct sockaddr_in6 *srv_addr6 =
-                                       (struct sockaddr_in6 *)&server->dstaddr;
-
-               if (!ipv6_addr_equal(&addr6->sin6_addr,
-                                    &srv_addr6->sin6_addr))
-                       return false;
-               if (addr6->sin6_scope_id != srv_addr6->sin6_scope_id)
-                       return false;
-               break;
-       }
-       default:
-               WARN_ON(1);
-               return false; /* don't expect to be here */
-       }
+       if (!cifs_match_ipaddr(addr, (struct sockaddr *)&server->dstaddr))
+               return false;
 
        return true;
 }