summaryrefslogtreecommitdiffstats
path: root/src/responder/common
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/responder/common
parent4d81fe27ced3d2e96866aeaf61661a925cb8edf1 (diff)
downloadsssd_unused-405a06682b3772b70bb06d3adba780a062959641.tar.gz
sssd_unused-405a06682b3772b70bb06d3adba780a062959641.tar.xz
sssd_unused-405a06682b3772b70bb06d3adba780a062959641.zip
RESPONDERS: Provide a common sss_cmd_send_error function
The common function could be reused in new responders
Diffstat (limited to 'src/responder/common')
-rw-r--r--src/responder/common/responder.h1
-rw-r--r--src/responder/common/responder_cmd.c17
2 files changed, 18 insertions, 0 deletions
diff --git a/src/responder/common/responder.h b/src/responder/common/responder.h
index c60eeab2..1c85b9d2 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 bf0bb82b..bfac8f97 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;