From a8ec371a61d5786f40ebb29f3e79b3ec45c3ffbe Mon Sep 17 00:00:00 2001 From: Stefan Metzmacher Date: Thu, 8 Sep 2005 11:26:05 +0000 Subject: r10078: - add a 'struct data_blob_list_item' - use this for the send_queue's of the different stream_servers to not redefine the same struct so often, and it maybe will be used in other places too metze (This used to be commit b6694f067ab7aff0ee303dbfe8a6e7fad801e7e9) --- source4/winbind/wb_server.c | 25 +++++++++++-------------- 1 file changed, 11 insertions(+), 14 deletions(-) (limited to 'source4/winbind/wb_server.c') diff --git a/source4/winbind/wb_server.c b/source4/winbind/wb_server.c index 375c88c72a..e35651c6e5 100644 --- a/source4/winbind/wb_server.c +++ b/source4/winbind/wb_server.c @@ -39,11 +39,8 @@ state of an open winbind connection */ struct wbserver_connection { - DATA_BLOB blob; - struct send_queue { - struct send_queue *next, *prev; - DATA_BLOB blob; - } *queue; + DATA_BLOB input; + struct data_blob_list_item *send_queue; }; @@ -55,7 +52,7 @@ static void winbind_accept(struct stream_connection *conn) struct wbserver_connection *wbconn; wbconn = talloc_zero(conn, struct wbserver_connection); - wbconn->blob = data_blob_talloc(wbconn, NULL, 1024); + wbconn->input = data_blob_talloc(wbconn, NULL, 1024); conn->private = wbconn; } @@ -68,9 +65,9 @@ static void winbind_recv(struct stream_connection *conn, uint16_t flags) struct wbserver_connection *wbconn = talloc_get_type(conn->private, struct wbserver_connection); NTSTATUS status; size_t nread; - struct send_queue *q; + struct data_blob_list_item *q; - status = socket_recv(conn->socket, wbconn->blob.data, wbconn->blob.length, &nread, 0); + status = socket_recv(conn->socket, wbconn->input.data, wbconn->input.length, &nread, 0); if (NT_STATUS_IS_ERR(status)) { DEBUG(10,("socket_recv: %s\n",nt_errstr(status))); stream_terminate_connection(conn, "socket_recv: failed\n"); @@ -78,19 +75,19 @@ static void winbind_recv(struct stream_connection *conn, uint16_t flags) } /* just reflect the data back down the socket */ - q = talloc(wbconn, struct send_queue); + q = talloc(wbconn, struct data_blob_list_item); if (q == NULL) { stream_terminate_connection(conn, "winbind_recv: out of memory\n"); return; } - q->blob = data_blob_talloc(q, wbconn->blob.data, nread); + q->blob = data_blob_talloc(q, wbconn->input.data, nread); if (q->blob.data == NULL) { stream_terminate_connection(conn, "winbind_recv: out of memory\n"); return; } - DLIST_ADD_END(wbconn->queue, q, struct send_queue *); + DLIST_ADD_END(wbconn->send_queue, q, struct data_blob_list_item *); EVENT_FD_WRITEABLE(conn->event.fde); } @@ -102,8 +99,8 @@ static void winbind_send(struct stream_connection *conn, uint16_t flags) { struct wbserver_connection *wbconn = talloc_get_type(conn->private, struct wbserver_connection); - while (wbconn->queue) { - struct send_queue *q = wbconn->queue; + while (wbconn->send_queue) { + struct data_blob_list_item *q = wbconn->send_queue; NTSTATUS status; size_t sendlen; @@ -121,7 +118,7 @@ static void winbind_send(struct stream_connection *conn, uint16_t flags) q->blob.data += sendlen; if (q->blob.length == 0) { - DLIST_REMOVE(wbconn->queue, q); + DLIST_REMOVE(wbconn->send_queue, q); talloc_free(q); } } -- cgit