diff options
author | Stefan Metzmacher <metze@samba.org> | 2010-09-22 14:24:03 +0200 |
---|---|---|
committer | Matthieu Patou <mat@sn-devel-104.sn.samba.org> | 2010-10-04 19:42:19 +0000 |
commit | b53fbc75acc525f2e2450370e704a62791271788 (patch) | |
tree | 31220ddd0fa7df3f507098116aba2387ed2ff1c6 /source4/ldap_server/ldap_server.h | |
parent | b5f2633f7aca375c597a88bcb061563c94efb7ca (diff) | |
download | samba-b53fbc75acc525f2e2450370e704a62791271788.tar.gz samba-b53fbc75acc525f2e2450370e704a62791271788.tar.bz2 samba-b53fbc75acc525f2e2450370e704a62791271788.zip |
s4:ldap_server: rewrite to socket layer to use tstream
This should make our sasl and tls handling much more robust
against partial sent pdus.
metze
Diffstat (limited to 'source4/ldap_server/ldap_server.h')
-rw-r--r-- | source4/ldap_server/ldap_server.h | 35 |
1 files changed, 18 insertions, 17 deletions
diff --git a/source4/ldap_server/ldap_server.h b/source4/ldap_server/ldap_server.h index 0fb8d2f4ac..4d5cae49fc 100644 --- a/source4/ldap_server/ldap_server.h +++ b/source4/ldap_server/ldap_server.h @@ -21,6 +21,7 @@ #include "libcli/ldap/libcli_ldap.h" #include "lib/socket/socket.h" #include "lib/stream/packet.h" +#include "system/network.h" struct ldapsrv_connection { struct loadparm_context *lp_ctx; @@ -32,26 +33,25 @@ struct ldapsrv_connection { struct ldb_context *ldb; struct { - struct socket_context *raw; - struct socket_context *tls; - struct socket_context *sasl; + struct tevent_queue *send_queue; + struct tstream_context *raw; + struct tstream_context *tls; + struct tstream_context *sasl; + struct tstream_context *active; } sockets; bool global_catalog; - struct packet_context *packet; - struct { int initial_timeout; int conn_idle_time; int max_page_size; int search_timeout; - - struct tevent_timer *ite; - struct tevent_timer *te; + struct timeval endtime; + const char *reason; } limits; - struct ldapsrv_packet_interfaces *packet_interface; + struct tevent_req *active_call; }; struct ldapsrv_call { @@ -61,18 +61,19 @@ struct ldapsrv_call { struct ldapsrv_reply *prev, *next; struct ldap_message *msg; } *replies; - packet_send_callback_fn_t send_callback; - void *send_private; + struct iovec out_iov; + + struct tevent_req *(*postprocess_send)(TALLOC_CTX *mem_ctx, + struct tevent_context *ev, + void *private_data); + NTSTATUS (*postprocess_recv)(struct tevent_req *req); + void *postprocess_private; }; struct ldapsrv_service { - struct tls_params *tls_params; + struct tstream_tls_params *tls_params; struct task_server *task; - struct ldapsrv_packet_interfaces { - struct ldapsrv_packet_interfaces *next, *prev; - struct packet_context *packet; - struct ldapsrv_service *service; - } *packet_interfaces; + struct tevent_queue *call_queue; }; #include "ldap_server/proto.h" |