summaryrefslogtreecommitdiff
path: root/source4/winbind/wb_server.c
diff options
context:
space:
mode:
authorStefan Metzmacher <metze@samba.org>2005-09-08 11:26:05 +0000
committerGerald (Jerry) Carter <jerry@samba.org>2007-10-10 13:37:51 -0500
commita8ec371a61d5786f40ebb29f3e79b3ec45c3ffbe (patch)
tree2b8a8bfcd176631bc0c7e8ce778baa51a4d8b71b /source4/winbind/wb_server.c
parenta302b79a37cd2c9f80f2470f09f7d430f084641f (diff)
downloadsamba-a8ec371a61d5786f40ebb29f3e79b3ec45c3ffbe.tar.gz
samba-a8ec371a61d5786f40ebb29f3e79b3ec45c3ffbe.tar.bz2
samba-a8ec371a61d5786f40ebb29f3e79b3ec45c3ffbe.zip
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)
Diffstat (limited to 'source4/winbind/wb_server.c')
-rw-r--r--source4/winbind/wb_server.c25
1 files changed, 11 insertions, 14 deletions
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);
}
}