netns: Change the argument passed to client delete requests.

Directly pass a pointer to the containing VCmd struct.
This commit is contained in:
Tom Goff 2016-03-04 16:55:42 -05:00
parent b86881aba9
commit d40dae4e1c

View file

@ -433,14 +433,18 @@ static void async_newclientreq(struct ev_loop *loop, void *data)
} }
typedef struct { typedef struct {
vnode_client_t *client; VCmd *vcmd;
} vcmd_delclientreq_t; } vcmd_delclientreq_t;
static void async_delclientreq(struct ev_loop *loop, void *data) static void async_delclientreq(struct ev_loop *loop, void *data)
{ {
vcmd_delclientreq_t *delclreq = data; vcmd_delclientreq_t *delclreq = data;
vnode_delclient(delclreq->client); if (delclreq->vcmd->_client)
{
vnode_delclient(delclreq->vcmd->_client);
delclreq->vcmd->_client = NULL;
}
return; return;
} }
@ -483,10 +487,9 @@ static void VCmd_dealloc(VCmd *self)
self->_client_connected = 0; self->_client_connected = 0;
if (self->_client) if (self->_client)
{ {
vcmd_delclientreq_t delclreq = {.client = self->_client}; vcmd_delclientreq_t delclreq = {.vcmd = self};
call_asyncfunc(async_delclientreq, &delclreq); call_asyncfunc(async_delclientreq, &delclreq);
self->_client = NULL;
} }
self->ob_type->tp_free((PyObject *)self); self->ob_type->tp_free((PyObject *)self);