r19724: add a helper functions to return an CLDAP error
authorStefan Metzmacher <metze@samba.org>
Wed, 15 Nov 2006 17:08:45 +0000 (17:08 +0000)
committerGerald (Jerry) Carter <jerry@samba.org>
Wed, 10 Oct 2007 19:28:14 +0000 (14:28 -0500)
metze
(This used to be commit 0a1ecb911656f8170708ce13e1183557fe118794)

source4/libcli/cldap/cldap.c
source4/libcli/cldap/cldap.h

index 1b09272f04a4bf9e4a9cec73d8026927b6469bef..94887ef6971e5e5f207483f7059a5070c1ae3724 100644 (file)
@@ -636,6 +636,34 @@ NTSTATUS cldap_empty_reply(struct cldap_socket *cldap,
        return status;
 }
 
+/*
+  send an error reply (used on any error, so the client doesn't keep waiting
+  or send the bad request again)
+*/
+NTSTATUS cldap_error_reply(struct cldap_socket *cldap, 
+                          uint32_t message_id,
+                          struct socket_address *src,
+                          int resultcode,
+                          const char *errormessage)
+{
+       NTSTATUS status;
+       struct cldap_reply reply;
+       struct ldap_Result result;
+
+       reply.messageid    = message_id;
+       reply.dest         = src;
+       reply.response     = NULL;
+       reply.result       = &result;
+
+       ZERO_STRUCT(result);
+       result.resultcode       = resultcode;
+       result.errormessage     = errormessage;
+
+       status = cldap_reply_send(cldap, &reply);
+
+       return status;
+}
+
 
 /*
   send a netlogon reply 
index 98cb54ddedb1a2f903fff427e4141eb73069f32c..8bae2aa41b37632a9602560b644cb429fd464e54 100644 (file)
@@ -135,6 +135,15 @@ struct cldap_reply {
 
 NTSTATUS cldap_reply_send(struct cldap_socket *cldap, struct cldap_reply *io);
 
+NTSTATUS cldap_empty_reply(struct cldap_socket *cldap, 
+                          uint32_t message_id,
+                          struct socket_address *src);
+NTSTATUS cldap_error_reply(struct cldap_socket *cldap, 
+                          uint32_t message_id,
+                          struct socket_address *src,
+                          int resultcode,
+                          const char *errormessage);
+
 /*
   a netlogon cldap request  
 */
@@ -161,11 +170,6 @@ NTSTATUS cldap_netlogon_recv(struct cldap_request *req,
                             struct cldap_netlogon *io);
 NTSTATUS cldap_netlogon(struct cldap_socket *cldap, 
                        TALLOC_CTX *mem_ctx, struct cldap_netlogon *io);
-
-
-NTSTATUS cldap_empty_reply(struct cldap_socket *cldap, 
-                          uint32_t message_id,
-                          struct socket_address *src);
 NTSTATUS cldap_netlogon_reply(struct cldap_socket *cldap, 
                              uint32_t message_id,
                              struct socket_address *src,