]> asedeno.scripts.mit.edu Git - linux.git/blobdiff - net/sctp/protocol.c
sctp: reduce indent level in sctp_copy_local_addr_list
[linux.git] / net / sctp / protocol.c
index 7b523e3f551f1761d891b606f293b2b721a87ca8..da5d82bec1dc9aa6eacc141f5d35a49fcdd0f9ec 100644 (file)
@@ -205,26 +205,27 @@ int sctp_copy_local_addr_list(struct net *net, struct sctp_bind_addr *bp,
        list_for_each_entry_rcu(addr, &net->sctp.local_addr_list, list) {
                if (!addr->valid)
                        continue;
-               if (sctp_in_scope(net, &addr->a, scope)) {
-                       /* Now that the address is in scope, check to see if
-                        * the address type is really supported by the local
-                        * sock as well as the remote peer.
-                        */
-                       if ((((AF_INET == addr->a.sa.sa_family) &&
-                             (copy_flags & SCTP_ADDR4_PEERSUPP))) ||
-                           (((AF_INET6 == addr->a.sa.sa_family) &&
-                             (copy_flags & SCTP_ADDR6_ALLOWED) &&
-                             (copy_flags & SCTP_ADDR6_PEERSUPP)))) {
-                               error = sctp_add_bind_addr(bp, &addr->a,
-                                                   sizeof(addr->a),
-                                                   SCTP_ADDR_SRC, GFP_ATOMIC);
-                               if (error)
-                                       goto end_copy;
-                       }
-               }
+               if (!sctp_in_scope(net, &addr->a, scope))
+                       continue;
+
+               /* Now that the address is in scope, check to see if
+                * the address type is really supported by the local
+                * sock as well as the remote peer.
+                */
+               if (addr->a.sa.sa_family == AF_INET &&
+                   !(copy_flags & SCTP_ADDR4_PEERSUPP))
+                       continue;
+               if (addr->a.sa.sa_family == AF_INET6 &&
+                   (!(copy_flags & SCTP_ADDR6_ALLOWED) ||
+                    !(copy_flags & SCTP_ADDR6_PEERSUPP)))
+                       continue;
+
+               error = sctp_add_bind_addr(bp, &addr->a, sizeof(addr->a),
+                                          SCTP_ADDR_SRC, GFP_ATOMIC);
+               if (error)
+                       break;
        }
 
-end_copy:
        rcu_read_unlock();
        return error;
 }