summaryrefslogtreecommitdiff
path: root/source4/ldap_server/ldap_server.h
diff options
context:
space:
mode:
authorAndrew Tridgell <tridge@samba.org>2010-09-07 11:57:44 +1000
committerAndrew Tridgell <tridge@samba.org>2010-09-07 12:55:27 +1000
commit73c3932b2d0dac784a0605abf6e532dba5514a01 (patch)
tree14a8d7f2a514a4d2521c102cb13be67d11490ceb /source4/ldap_server/ldap_server.h
parenta8bac4a09a4a81c280c62fb4dcdbd0e61c782479 (diff)
downloadsamba-73c3932b2d0dac784a0605abf6e532dba5514a01.tar.gz
samba-73c3932b2d0dac784a0605abf6e532dba5514a01.tar.bz2
samba-73c3932b2d0dac784a0605abf6e532dba5514a01.zip
s4-ldapserver: serialise ldap server operations
This ensures that two ldap server operations cannot happen in parallel by using packet_recv_disable() and packet_recv_enable() to disable other interfaces during ldap calls. This prevents problems caused by parallel ldap operations where transactions could overlap.
Diffstat (limited to 'source4/ldap_server/ldap_server.h')
-rw-r--r--source4/ldap_server/ldap_server.h7
1 files changed, 7 insertions, 0 deletions
diff --git a/source4/ldap_server/ldap_server.h b/source4/ldap_server/ldap_server.h
index 8b45285463..0fb8d2f4ac 100644
--- a/source4/ldap_server/ldap_server.h
+++ b/source4/ldap_server/ldap_server.h
@@ -50,6 +50,8 @@ struct ldapsrv_connection {
struct tevent_timer *ite;
struct tevent_timer *te;
} limits;
+
+ struct ldapsrv_packet_interfaces *packet_interface;
};
struct ldapsrv_call {
@@ -66,6 +68,11 @@ struct ldapsrv_call {
struct ldapsrv_service {
struct 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;
};
#include "ldap_server/proto.h"