svn commit: samba r6724 - in branches/SAMBA_4_0/source: libcli/cldap param

tridge at samba.org tridge at samba.org
Wed May 11 04:48:30 GMT 2005


Author: tridge
Date: 2005-05-11 04:48:30 +0000 (Wed, 11 May 2005)
New Revision: 6724

WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=6724

Log:
added "cldap port" smb.conf parameter

Modified:
   branches/SAMBA_4_0/source/libcli/cldap/cldap.c
   branches/SAMBA_4_0/source/libcli/cldap/cldap.h
   branches/SAMBA_4_0/source/param/loadparm.c


Changeset:
Modified: branches/SAMBA_4_0/source/libcli/cldap/cldap.c
===================================================================
--- branches/SAMBA_4_0/source/libcli/cldap/cldap.c	2005-05-11 04:43:52 UTC (rev 6723)
+++ branches/SAMBA_4_0/source/libcli/cldap/cldap.c	2005-05-11 04:48:30 UTC (rev 6724)
@@ -41,7 +41,6 @@
 #include "include/asn_1.h"
 
 #define CLDAP_MAX_PACKET_SIZE 2048
-const unsigned CLDAP_PORT = 389;
 
 /*
   destroy a pending request
@@ -112,8 +111,12 @@
 	/* find the pending request */
 	req = idr_find(cldap->idr, ldap_msg.messageid);
 	if (req == NULL) {
-		DEBUG(2,("Mismatched cldap reply %u from %s:%d\n",
-			 ldap_msg.messageid, src_addr, src_port));
+		if (cldap->incoming.handler) {
+			cldap->incoming.handler(cldap, &ldap_msg, src_addr, src_port);
+		} else {
+			DEBUG(2,("Mismatched cldap reply %u from %s:%d\n",
+				 ldap_msg.messageid, src_addr, src_port));
+		}
 		talloc_free(tmp_ctx);
 		return;
 	}
@@ -249,6 +252,7 @@
 				      cldap_socket_handler, cldap);
 
 	cldap->send_queue = NULL;
+	cldap->incoming.handler = NULL;
 	
 	return cldap;
 
@@ -259,6 +263,20 @@
 
 
 /*
+  setup a handler for incoming requests
+*/
+NTSTATUS cldap_set_incoming_handler(struct cldap_socket *cldap,
+				  void (*handler)(struct cldap_socket *, struct ldap_message *, 
+						  const char *, int ),
+				  void *private)
+{
+	cldap->incoming.handler = handler;
+	cldap->incoming.private = private;
+	EVENT_FD_READABLE(cldap->fde);
+	return NT_STATUS_OK;
+}
+
+/*
   queue a cldap request for send
 */
 struct cldap_request *cldap_search_send(struct cldap_socket *cldap, 
@@ -278,7 +296,7 @@
 
 	req->dest_addr = talloc_strdup(req, io->in.dest_address);
 	if (req->dest_addr == NULL) goto failed;
-	req->dest_port = CLDAP_PORT;
+	req->dest_port = lp_cldap_port();
 
 	req->message_id = idr_get_new_random(cldap->idr, req, UINT16_MAX);
 	if (req->message_id == -1) goto failed;

Modified: branches/SAMBA_4_0/source/libcli/cldap/cldap.h
===================================================================
--- branches/SAMBA_4_0/source/libcli/cldap/cldap.h	2005-05-11 04:43:52 UTC (rev 6723)
+++ branches/SAMBA_4_0/source/libcli/cldap/cldap.h	2005-05-11 04:48:30 UTC (rev 6724)
@@ -108,6 +108,10 @@
 
 struct cldap_socket *cldap_socket_init(TALLOC_CTX *mem_ctx, 
 				       struct event_context *event_ctx);
+NTSTATUS cldap_set_incoming_handler(struct cldap_socket *cldap,
+				    void (*handler)(struct cldap_socket *, struct ldap_message *, 
+						    const char *, int ),
+				    void *private);
 struct cldap_request *cldap_search_send(struct cldap_socket *cldap, 
 					struct cldap_search *io);
 NTSTATUS cldap_search_recv(struct cldap_request *req, TALLOC_CTX *mem_ctx, 

Modified: branches/SAMBA_4_0/source/param/loadparm.c
===================================================================
--- branches/SAMBA_4_0/source/param/loadparm.c	2005-05-11 04:43:52 UTC (rev 6723)
+++ branches/SAMBA_4_0/source/param/loadparm.c	2005-05-11 04:48:30 UTC (rev 6724)
@@ -237,6 +237,7 @@
 	int iLockSpinTime;
 	int nbt_port;
 	int dgram_port;
+	int cldap_port;
 	char *socket_options;
 	BOOL bDNSproxy;
 	BOOL bWINSsupport;
@@ -619,6 +620,7 @@
 	{"smb ports", P_LIST, P_GLOBAL, &Globals.smb_ports, NULL, NULL, FLAG_ADVANCED | FLAG_DEVELOPER},
 	{"nbt port", P_INTEGER, P_GLOBAL, &Globals.nbt_port, NULL, NULL, FLAG_ADVANCED | FLAG_DEVELOPER},
 	{"dgram port", P_INTEGER, P_GLOBAL, &Globals.dgram_port, NULL, NULL, FLAG_ADVANCED | FLAG_DEVELOPER},
+	{"cldap port", P_INTEGER, P_GLOBAL, &Globals.cldap_port, NULL, NULL, FLAG_ADVANCED | FLAG_DEVELOPER},
 	{"large readwrite", P_BOOL, P_GLOBAL, &Globals.bLargeReadwrite, NULL, NULL, FLAG_DEVELOPER},
 	{"max protocol", P_ENUM, P_GLOBAL, &Globals.maxprotocol, NULL, enum_protocol, FLAG_DEVELOPER},
 	{"min protocol", P_ENUM, P_GLOBAL, &Globals.minprotocol, NULL, enum_protocol, FLAG_DEVELOPER},
@@ -936,7 +938,7 @@
 	do_parameter("max connections", "-1");
 
 	do_parameter("dcerpc endpoint servers", "epmapper srvsvc wkssvc rpcecho samr netlogon lsarpc spoolss drsuapi winreg dssetup");
-	do_parameter("server services", "smb rpc nbt");
+	do_parameter("server services", "smb rpc nbt cldap");
 	do_parameter("auth methods", "anonymous sam_ignoredomain");
 	do_parameter("smb passwd file", dyn_SMB_PASSWD_FILE);
 	do_parameter("private dir", dyn_PRIVATE_DIR);
@@ -1054,6 +1056,7 @@
 	do_parameter("smb ports", SMB_PORTS);
 	do_parameter("nbt port", "137");
 	do_parameter("dgram port", "138");
+	do_parameter("cldap port", "389");
 
 	do_parameter("nt status support", "True");
 
@@ -1156,6 +1159,7 @@
 FN_GLOBAL_LIST(lp_smb_ports, &Globals.smb_ports)
 FN_GLOBAL_INTEGER(lp_nbt_port, &Globals.nbt_port)
 FN_GLOBAL_INTEGER(lp_dgram_port, &Globals.dgram_port)
+FN_GLOBAL_INTEGER(lp_cldap_port, &Globals.cldap_port)
 FN_GLOBAL_STRING(lp_dos_charset, &Globals.dos_charset)
 FN_GLOBAL_STRING(lp_unix_charset, &Globals.unix_charset)
 FN_GLOBAL_STRING(lp_display_charset, &Globals.display_charset)



More information about the samba-cvs mailing list