1
0
Fork 0
mirror of https://github.com/warmcat/libwebsockets.git synced 2025-03-23 00:00:06 +01:00

lws_remove_child_from_any_parent: clear parent pointer and fix failure message

This commit is contained in:
Andy Green 2017-03-30 08:31:36 +08:00
parent 73e12e7b93
commit db64bfcefa

View file

@ -146,23 +146,27 @@ static void
lws_remove_child_from_any_parent(struct lws *wsi) lws_remove_child_from_any_parent(struct lws *wsi)
{ {
struct lws **pwsi; struct lws **pwsi;
int seen = 0;
if (!wsi->parent)
return;
if (wsi->parent) {
/* detach ourselves from parent's child list */ /* detach ourselves from parent's child list */
pwsi = &wsi->parent->child_list; pwsi = &wsi->parent->child_list;
while (*pwsi) { while (*pwsi) {
if (*pwsi == wsi) { if (*pwsi == wsi) {
//lwsl_notice("%s: detach %p from parent %p\n", lwsl_info("%s: detach %p from parent %p\n",
// __func__, wsi, wsi->parent); __func__, wsi, wsi->parent);
*pwsi = wsi->sibling_list; *pwsi = wsi->sibling_list;
seen = 1;
break; break;
} }
pwsi = &(*pwsi)->sibling_list; pwsi = &(*pwsi)->sibling_list;
} }
if (*pwsi) if (!seen)
lwsl_err("%s: failed to detach from parent\n", lwsl_err("%s: failed to detach from parent\n", __func__);
__func__);
} wsi->parent = NULL;
} }
int int