summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorJakub Hrozek <jhrozek@redhat.com>2012-02-02 08:44:08 +0100
committerStephen Gallagher <sgallagh@redhat.com>2012-02-02 21:43:03 -0500
commit405a06682b3772b70bb06d3adba780a062959641 (patch)
tree9c5f47b96b04f9820a76144280cbae3bdf605721 /src
parent4d81fe27ced3d2e96866aeaf61661a925cb8edf1 (diff)
downloadsssd-405a06682b3772b70bb06d3adba780a062959641.tar.gz
sssd-405a06682b3772b70bb06d3adba780a062959641.tar.xz
sssd-405a06682b3772b70bb06d3adba780a062959641.zip
RESPONDERS: Provide a common sss_cmd_send_error function
The common function could be reused in new responders
Diffstat (limited to 'src')
-rw-r--r--src/responder/common/responder.h1
-rw-r--r--src/responder/common/responder_cmd.c17
-rw-r--r--src/responder/nss/nsssrv_cmd.c14
3 files changed, 19 insertions, 13 deletions
diff --git a/src/responder/common/responder.h b/src/responder/common/responder.h
index c60eeab23..1c85b9d28 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 bf0bb82ba..bfac8f979 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 bbb115c8c..1dff829ee 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)