Skip to content

Commit 5967a57

Browse files
committed
Simplify exception handling operations
1 parent 4ec81c3 commit 5967a57

File tree

1 file changed

+18
-29
lines changed

1 file changed

+18
-29
lines changed

main.c

+18-29
Original file line numberDiff line numberDiff line change
@@ -40,39 +40,24 @@ static int open_listen_socket(ushort port, ushort backlog, struct socket **res)
4040
}
4141

4242
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;
4845

4946
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;
5549

5650
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;
6253

6354
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;
6957

7058
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;
7661

7762
memset(&s, 0, sizeof(s));
7863
s.sin_family = AF_INET;
@@ -81,18 +66,22 @@ static int open_listen_socket(ushort port, ushort backlog, struct socket **res)
8166
err = kernel_bind(sock, (struct sockaddr *) &s, sizeof(s));
8267
if (err < 0) {
8368
pr_err("kernel_bind() failure, err=%d\n", err);
84-
sock_release(sock);
85-
return err;
69+
goto bail_sock;
8670
}
8771

8872
err = kernel_listen(sock, backlog);
8973
if (err < 0) {
9074
pr_err("kernel_listen() failure, err=%d\n", err);
91-
sock_release(sock);
92-
return err;
75+
goto bail_sock;
9376
}
9477
*res = sock;
9578
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;
9685
}
9786

9887
static void close_listen_socket(struct socket *socket)

0 commit comments

Comments
 (0)