diff options
author | Andrew Tridgell <tridge@samba.org> | 2010-09-07 11:57:44 +1000 |
---|---|---|
committer | Andrew Tridgell <tridge@samba.org> | 2010-09-07 12:55:27 +1000 |
commit | 73c3932b2d0dac784a0605abf6e532dba5514a01 (patch) | |
tree | 14a8d7f2a514a4d2521c102cb13be67d11490ceb /source4/ldap_server/ldap_server.h | |
parent | a8bac4a09a4a81c280c62fb4dcdbd0e61c782479 (diff) | |
download | samba-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.h | 7 |
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" |