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