svn commit: samba r10768 - in branches/SAMBA_4_0/source/smbd: .
metze at samba.org
metze at samba.org
Thu Oct 6 14:44:38 GMT 2005
Author: metze
Date: 2005-10-06 14:44:37 +0000 (Thu, 06 Oct 2005)
New Revision: 10768
WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=10768
Log:
add a function to create a stream_connection from an already
existing socket connection, that's used for protocols
which switch the client/server roles inside a session
metze
Modified:
branches/SAMBA_4_0/source/smbd/service_stream.c
Changeset:
Modified: branches/SAMBA_4_0/source/smbd/service_stream.c
===================================================================
--- branches/SAMBA_4_0/source/smbd/service_stream.c 2005-10-06 14:38:42 UTC (rev 10767)
+++ branches/SAMBA_4_0/source/smbd/service_stream.c 2005-10-06 14:44:37 UTC (rev 10768)
@@ -78,7 +78,40 @@
}
}
+/*
+ this creates a stream_connection from an already existing connection,
+ used for protocols, where a client connection needs to switched into
+ a server connection
+*/
+NTSTATUS stream_new_connection_merge(struct event_context *ev,
+ const struct model_ops *model_ops,
+ struct socket_context *sock,
+ const struct stream_server_ops *stream_ops,
+ struct messaging_context *msg_ctx,
+ void *private_data,
+ struct stream_connection **_srv_conn)
+{
+ struct stream_connection *srv_conn;
+ srv_conn = talloc_zero(ev, struct stream_connection);
+ NT_STATUS_HAVE_NO_MEMORY(srv_conn);
+
+ talloc_steal(srv_conn, sock);
+
+ srv_conn->private = private_data;
+ srv_conn->model_ops = model_ops;
+ srv_conn->socket = sock;
+ srv_conn->server_id = 0;
+ srv_conn->ops = stream_ops;
+ srv_conn->msg_ctx = msg_ctx;
+ srv_conn->event.ctx = ev;
+ srv_conn->event.fde = event_add_fd(ev, srv_conn, socket_get_fd(sock),
+ EVENT_FD_READ,
+ stream_io_handler, srv_conn);
+ *_srv_conn = srv_conn;
+ return NT_STATUS_OK;
+}
+
/*
called when a new socket connection has been established. This is called in the process
context of the new process (if appropriate)
More information about the samba-cvs
mailing list