@@ -40,39 +40,24 @@ static int open_listen_socket(ushort port, ushort backlog, struct socket **res)
40
40
}
41
41
42
42
err = setsockopt (sock , SOL_SOCKET , SO_REUSEADDR , 1 );
43
- if (err < 0 ) {
44
- pr_err ("kernel_setsockopt() failure, err=%d\n" , err );
45
- sock_release (sock );
46
- return err ;
47
- }
43
+ if (err < 0 )
44
+ goto bail_setsockopt ;
48
45
49
46
err = setsockopt (sock , SOL_TCP , TCP_NODELAY , 1 );
50
- if (err < 0 ) {
51
- pr_err ("kernel_setsockopt() failure, err=%d\n" , err );
52
- sock_release (sock );
53
- return err ;
54
- }
47
+ if (err < 0 )
48
+ goto bail_setsockopt ;
55
49
56
50
err = setsockopt (sock , SOL_TCP , TCP_CORK , 0 );
57
- if (err < 0 ) {
58
- pr_err ("kernel_setsockopt() failure, err=%d\n" , err );
59
- sock_release (sock );
60
- return err ;
61
- }
51
+ if (err < 0 )
52
+ goto bail_setsockopt ;
62
53
63
54
err = setsockopt (sock , SOL_SOCKET , SO_RCVBUF , 1024 * 1024 );
64
- if (err < 0 ) {
65
- pr_err ("kernel_setsockopt() failure, err=%d\n" , err );
66
- sock_release (sock );
67
- return err ;
68
- }
55
+ if (err < 0 )
56
+ goto bail_setsockopt ;
69
57
70
58
err = setsockopt (sock , SOL_SOCKET , SO_SNDBUF , 1024 * 1024 );
71
- if (err < 0 ) {
72
- pr_err ("kernel_setsockopt() failure, err=%d\n" , err );
73
- sock_release (sock );
74
- return err ;
75
- }
59
+ if (err < 0 )
60
+ goto bail_setsockopt ;
76
61
77
62
memset (& s , 0 , sizeof (s ));
78
63
s .sin_family = AF_INET ;
@@ -81,18 +66,22 @@ static int open_listen_socket(ushort port, ushort backlog, struct socket **res)
81
66
err = kernel_bind (sock , (struct sockaddr * ) & s , sizeof (s ));
82
67
if (err < 0 ) {
83
68
pr_err ("kernel_bind() failure, err=%d\n" , err );
84
- sock_release (sock );
85
- return err ;
69
+ goto bail_sock ;
86
70
}
87
71
88
72
err = kernel_listen (sock , backlog );
89
73
if (err < 0 ) {
90
74
pr_err ("kernel_listen() failure, err=%d\n" , err );
91
- sock_release (sock );
92
- return err ;
75
+ goto bail_sock ;
93
76
}
94
77
* res = sock ;
95
78
return 0 ;
79
+
80
+ bail_setsockopt :
81
+ pr_err ("kernel_setsockopt() failure, err=%d\n" , err );
82
+ bail_sock :
83
+ sock_release (sock );
84
+ return err ;
96
85
}
97
86
98
87
static void close_listen_socket (struct socket * socket )
0 commit comments