This new generic function will be used in the upcoming autofs and ssh
providers to reduce code duplication.
From d64f27b06b322f5f456e4b38b74252544b30299a Mon Sep 17 00:00:00 2001
From: Jakub Hrozek <[email protected]>
Date: Thu, 2 Feb 2012 08:44:08 +0100
Subject: [PATCH] RESPONDERS: Provide a common sss_cmd_send_error function

The common function could be reused in new responders
---
 src/responder/common/responder.h     |    1 +
 src/responder/common/responder_cmd.c |   17 +++++++++++++++++
 src/responder/nss/nsssrv_cmd.c       |   14 +-------------
 3 files changed, 19 insertions(+), 13 deletions(-)

diff --git a/src/responder/common/responder.h b/src/responder/common/responder.h
index 
c60eeab235a3757f3fd1b46310f211b91cdbe80d..1c85b9d28791e945e6397c6d80a2c94780f35433
 100644
--- a/src/responder/common/responder.h
+++ b/src/responder/common/responder.h
@@ -157,6 +157,7 @@ responder_get_domain(struct sss_domain_info *doms, const 
char *domain);
 /* responder_cmd.c */
 int sss_cmd_empty_packet(struct sss_packet *packet);
 int sss_cmd_send_empty(struct cli_ctx *cctx, TALLOC_CTX *freectx);
+int sss_cmd_send_error(struct cli_ctx *cctx, int err);
 int sss_cmd_execute(struct cli_ctx *cctx, struct sss_cmd_table *sss_cmds);
 void sss_cmd_done(struct cli_ctx *cctx, void *freectx);
 int sss_cmd_get_version(struct cli_ctx *cctx);
diff --git a/src/responder/common/responder_cmd.c 
b/src/responder/common/responder_cmd.c
index 
bf0bb82baced18df51ebc0c98bcf63d11e3f86ba..bfac8f9792a65470654316153c5e7d0dbebed8a1
 100644
--- a/src/responder/common/responder_cmd.c
+++ b/src/responder/common/responder_cmd.c
@@ -23,6 +23,23 @@
 #include "responder/common/responder.h"
 #include "responder/common/responder_packet.h"
 
+int sss_cmd_send_error(struct cli_ctx *cctx, int err)
+{
+    int ret;
+
+    /* create response packet */
+    ret = sss_packet_new(cctx->creq, 0,
+                         sss_packet_get_cmd(cctx->creq->in),
+                         &cctx->creq->out);
+    if (ret != EOK) {
+        DEBUG(SSSDBG_CRIT_FAILURE, ("Cannot create new packet: %d\n", ret));
+        return ret;
+    }
+
+    sss_packet_set_error(cctx->creq->out, err);
+    return EOK;
+}
+
 int sss_cmd_empty_packet(struct sss_packet *packet)
 {
     uint8_t *body;
diff --git a/src/responder/nss/nsssrv_cmd.c b/src/responder/nss/nsssrv_cmd.c
index 
bbb115c8ccc478e1ed52e1d3617fb0e76629c0cf..1dff829eea1fd813ce351cf3203e584f2b7fb1da
 100644
--- a/src/responder/nss/nsssrv_cmd.c
+++ b/src/responder/nss/nsssrv_cmd.c
@@ -31,19 +31,7 @@
 
 static int nss_cmd_send_error(struct nss_cmd_ctx *cmdctx, int err)
 {
-    struct cli_ctx *cctx = cmdctx->cctx;
-    int ret;
-
-    /* create response packet */
-    ret = sss_packet_new(cctx->creq, 0,
-                         sss_packet_get_cmd(cctx->creq->in),
-                         &cctx->creq->out);
-    if (ret != EOK) {
-        return ret;
-    }
-
-    sss_packet_set_error(cctx->creq->out, err);
-    return EOK;
+    return sss_cmd_send_error(cmdctx->cctx, err);
 }
 
 static int nss_cmd_send_empty(struct nss_cmd_ctx *cmdctx)
-- 
1.7.7.6

_______________________________________________
sssd-devel mailing list
[email protected]
https://fedorahosted.org/mailman/listinfo/sssd-devel

Reply via email to