• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1From fc2a5b52f7d9f02eb43931414767635e5cf4c8c1 Mon Sep 17 00:00:00 2001
2From: jiangheng <jiangheng14@huawei.com>
3Date: Tue, 11 Oct 2022 21:47:24 +0800
4Subject: [PATCH] alloc socket fail clean sock
5
6---
7 src/api/sockets.c      | 3 +++
8 src/include/lwipsock.h | 1 +
9 2 files changed, 4 insertions(+)
10
11diff --git a/src/api/sockets.c b/src/api/sockets.c
12index 14f2b35..3552599 100644
13--- a/src/api/sockets.c
14+++ b/src/api/sockets.c
15@@ -598,6 +598,9 @@ alloc_socket(struct netconn *newconn, int accepted)
16     sockets[i].sendevent  = (NETCONNTYPE_GROUP(newconn->type) == NETCONN_TCP ? (accepted != 0) : 1);
17     sockets[i].errevent   = 0;
18     return i + LWIP_SOCKET_OFFSET;
19+  } else {
20+    lwip_close(i);
21+    gazelle_clean_sock(i);
22   }
23
24 err:
25diff --git a/src/include/lwipsock.h b/src/include/lwipsock.h
26index 912d471..2ffb077 100644
27--- a/src/include/lwipsock.h
28+++ b/src/include/lwipsock.h
29@@ -130,6 +130,7 @@ extern void add_recv_list(int32_t fd);
30 extern ssize_t read_lwip_data(struct lwip_sock *sock, int32_t flags, u8_t apiflags);
31 extern struct pbuf *write_lwip_data(struct lwip_sock *sock, uint16_t remain_size, uint8_t *apiflags);
32 extern void gazelle_init_sock(int32_t fd);
33+extern void gazelle_clean_sock(int32_t fd);
34 extern void write_lwip_over(struct lwip_sock *sock, uint32_t n);
35 #endif /* USE_LIBOS */
36
37--
382.23.0
39
40