s3: Simplify the logic of check_access by an early return
authorVolker Lendecke <vl@samba.org>
Sat, 14 Aug 2010 12:30:07 +0000 (14:30 +0200)
committerVolker Lendecke <vl@samba.org>
Mon, 16 Aug 2010 19:33:22 +0000 (21:33 +0200)
source3/lib/access.c

index a7d2262d6b39c958113d6de63b60544c92142b64..98082184125ca8a1a195b77e939d2a644776ca07 100644 (file)
@@ -375,42 +375,40 @@ bool check_access(int sock, const char **allow_list, const char **deny_list)
 {
        bool ret = false;
        bool only_ip = false;
+       char addr[INET6_ADDRSTRLEN];
 
-       if ((!deny_list || *deny_list==0) && (!allow_list || *allow_list==0))
-               ret = true;
-
-       if (!ret) {
-               char addr[INET6_ADDRSTRLEN];
-
-               /* Bypass name resolution calls if the lists
-                * only contain IP addrs */
-               if (only_ipaddrs_in_list(allow_list) &&
-                               only_ipaddrs_in_list(deny_list)) {
-                       only_ip = true;
-                       DEBUG (3, ("check_access: no hostnames "
-                               "in host allow/deny list.\n"));
-                       ret = allow_access(deny_list,
-                                       allow_list,
-                                       "",
-                                       get_peer_addr(sock,addr,sizeof(addr)));
-               } else {
-                       DEBUG (3, ("check_access: hostnames in "
-                               "host allow/deny list.\n"));
-                       ret = allow_access(deny_list,
-                                       allow_list,
-                                       get_peer_name(sock,true),
-                                       get_peer_addr(sock,addr,sizeof(addr)));
-               }
+       if ((!deny_list || *deny_list==0) && (!allow_list || *allow_list==0)) {
+               return true;
+       }
 
-               if (ret) {
-                       DEBUG(2,("Allowed connection from %s (%s)\n",
-                                only_ip ? "" : get_peer_name(sock,true),
-                                get_peer_addr(sock,addr,sizeof(addr))));
-               } else {
-                       DEBUG(0,("Denied connection from %s (%s)\n",
-                                only_ip ? "" : get_peer_name(sock,true),
-                                get_peer_addr(sock,addr,sizeof(addr))));
-               }
+       /* Bypass name resolution calls if the lists
+        * only contain IP addrs */
+       if (only_ipaddrs_in_list(allow_list) &&
+           only_ipaddrs_in_list(deny_list)) {
+               only_ip = true;
+               DEBUG (3, ("check_access: no hostnames "
+                          "in host allow/deny list.\n"));
+               ret = allow_access(deny_list,
+                                  allow_list,
+                                  "",
+                                  get_peer_addr(sock,addr,sizeof(addr)));
+       } else {
+               DEBUG (3, ("check_access: hostnames in "
+                          "host allow/deny list.\n"));
+               ret = allow_access(deny_list,
+                                  allow_list,
+                                  get_peer_name(sock,true),
+                                  get_peer_addr(sock,addr,sizeof(addr)));
+       }
+
+       if (ret) {
+               DEBUG(2,("Allowed connection from %s (%s)\n",
+                        only_ip ? "" : get_peer_name(sock,true),
+                        get_peer_addr(sock,addr,sizeof(addr))));
+       } else {
+               DEBUG(0,("Denied connection from %s (%s)\n",
+                        only_ip ? "" : get_peer_name(sock,true),
+                        get_peer_addr(sock,addr,sizeof(addr))));
        }
 
        return(ret);