File tree Expand file tree Collapse file tree 1 file changed +29
-0
lines changed Expand file tree Collapse file tree 1 file changed +29
-0
lines changed Original file line number Diff line number Diff line change @@ -94,6 +94,20 @@ void appif_conn_opened(struct connection *c, int status)
94
94
kout -> data .conn_opened .flow_id = c -> flow_id ;
95
95
kout -> data .conn_opened .fn_core = c -> fn_core ;
96
96
} else {
97
+ /* remove from app connection list */
98
+ struct application * app = ctx -> app ;
99
+ if (app -> conns == c ) {
100
+ app -> conns = c -> app_next ;
101
+ } else {
102
+ struct connection * c_crwl ;
103
+ for (c_crwl = app -> conns ; c_crwl != NULL && c_crwl -> app_next != c ;
104
+ c_crwl = c_crwl -> app_next );
105
+ if (c_crwl == NULL ) {
106
+ fprintf (stderr , "appif_conn_closed: connection not found\n" );
107
+ abort ();
108
+ }
109
+ c_crwl -> app_next = c -> app_next ;
110
+ }
97
111
tcp_destroy (c );
98
112
}
99
113
@@ -215,6 +229,21 @@ void appif_accept_conn(struct connection *c, int status)
215
229
c -> app_next = app -> conns ;
216
230
app -> conns = c ;
217
231
} else {
232
+ /* remove from app connection list */
233
+ struct application * app = ctx -> app ;
234
+ if (app -> conns == c ) {
235
+ app -> conns = c -> app_next ;
236
+ } else {
237
+ struct connection * c_crwl ;
238
+ for (c_crwl = app -> conns ; c_crwl != NULL && c_crwl -> app_next != c ;
239
+ c_crwl = c_crwl -> app_next );
240
+ if (c_crwl == NULL ) {
241
+ fprintf (stderr , "appif_conn_closed: connection not found\n" );
242
+ abort ();
243
+ }
244
+ c_crwl -> app_next = c -> app_next ;
245
+ }
246
+
218
247
tcp_destroy (c );
219
248
}
220
249
You can’t perform that action at this time.
0 commit comments