diff options
author | Pavel Emelyanov <xemul@openvz.org> | 2007-11-15 06:03:19 -0500 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2008-01-28 17:54:00 -0500 |
commit | c0ef877b2c9f543e9fb7953bfe1a0cd3a4eae362 (patch) | |
tree | 8e97df63b9e1b3cac8040461c263c0c938f8b994 /net/core/sock.c | |
parent | de0fa95c14bc4d4b545fae26439371ebfdcb8534 (diff) |
[NET]: Move sock_valbool_flag to socket.c
The sock_valbool_flag() helper is used in setsockopt to
set or reset some flag on the sock. This helper is required
in the net/socket.c only, so move it there.
Besides, patch two places in sys_setsockopt() that repeat
this helper functionality manually.
Since this is not a bugfix, but a trivial cleanup, I
prepared this patch against net-2.6.25, but it also
applies (with a single offset) to the latest net-2.6.
Signed-off-by: Pavel Emelyanov <xemul@openvz.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/core/sock.c')
-rw-r--r-- | net/core/sock.c | 20 |
1 files changed, 11 insertions, 9 deletions
diff --git a/net/core/sock.c b/net/core/sock.c index 2029d095b4c5..98b243a5b323 100644 --- a/net/core/sock.c +++ b/net/core/sock.c | |||
@@ -419,6 +419,14 @@ out: | |||
419 | return ret; | 419 | return ret; |
420 | } | 420 | } |
421 | 421 | ||
422 | static inline void sock_valbool_flag(struct sock *sk, int bit, int valbool) | ||
423 | { | ||
424 | if (valbool) | ||
425 | sock_set_flag(sk, bit); | ||
426 | else | ||
427 | sock_reset_flag(sk, bit); | ||
428 | } | ||
429 | |||
422 | /* | 430 | /* |
423 | * This is meant for all protocols to use and covers goings on | 431 | * This is meant for all protocols to use and covers goings on |
424 | * at the socket level. Everything here is generic. | 432 | * at the socket level. Everything here is generic. |
@@ -463,11 +471,8 @@ int sock_setsockopt(struct socket *sock, int level, int optname, | |||
463 | case SO_DEBUG: | 471 | case SO_DEBUG: |
464 | if (val && !capable(CAP_NET_ADMIN)) { | 472 | if (val && !capable(CAP_NET_ADMIN)) { |
465 | ret = -EACCES; | 473 | ret = -EACCES; |
466 | } | 474 | } else |
467 | else if (valbool) | 475 | sock_valbool_flag(sk, SOCK_DBG, valbool); |
468 | sock_set_flag(sk, SOCK_DBG); | ||
469 | else | ||
470 | sock_reset_flag(sk, SOCK_DBG); | ||
471 | break; | 476 | break; |
472 | case SO_REUSEADDR: | 477 | case SO_REUSEADDR: |
473 | sk->sk_reuse = valbool; | 478 | sk->sk_reuse = valbool; |
@@ -477,10 +482,7 @@ int sock_setsockopt(struct socket *sock, int level, int optname, | |||
477 | ret = -ENOPROTOOPT; | 482 | ret = -ENOPROTOOPT; |
478 | break; | 483 | break; |
479 | case SO_DONTROUTE: | 484 | case SO_DONTROUTE: |
480 | if (valbool) | 485 | sock_valbool_flag(sk, SOCK_LOCALROUTE, valbool); |
481 | sock_set_flag(sk, SOCK_LOCALROUTE); | ||
482 | else | ||
483 | sock_reset_flag(sk, SOCK_LOCALROUTE); | ||
484 | break; | 486 | break; |
485 | case SO_BROADCAST: | 487 | case SO_BROADCAST: |
486 | sock_valbool_flag(sk, SOCK_BROADCAST, valbool); | 488 | sock_valbool_flag(sk, SOCK_BROADCAST, valbool); |