summaryrefslogtreecommitdiff
path: root/source4/ldap_server/ldap_server.h
diff options
context:
space:
mode:
authorStefan Metzmacher <metze@samba.org>2010-09-22 14:24:03 +0200
committerStefan Metzmacher <metze@samba.org>2010-10-08 11:55:26 +0000
commit61c7b67df9ba484c0e810c07c8da852edf1ef2fc (patch)
tree3ee039f28f60d23abb5ced22b90c76c77db3a6bf /source4/ldap_server/ldap_server.h
parent9300f922ae570756651c6f9979dd3e490ce2fd4e (diff)
downloadsamba-61c7b67df9ba484c0e810c07c8da852edf1ef2fc.tar.gz
samba-61c7b67df9ba484c0e810c07c8da852edf1ef2fc.tar.bz2
samba-61c7b67df9ba484c0e810c07c8da852edf1ef2fc.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 Autobuild-User: Stefan Metzmacher <metze@samba.org> Autobuild-Date: Fri Oct 8 11:55:26 UTC 2010 on sn-devel-104
Diffstat (limited to 'source4/ldap_server/ldap_server.h')
-rw-r--r--source4/ldap_server/ldap_server.h35
1 files changed, 18 insertions, 17 deletions
diff --git a/source4/ldap_server/ldap_server.h b/source4/ldap_server/ldap_server.h
index 980c02dc9e..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"