summaryrefslogtreecommitdiffstats
path: root/server/responder/common
diff options
context:
space:
mode:
authorSimo Sorce <ssorce@redhat.com>2009-03-27 13:53:16 -0400
committerSimo Sorce <ssorce@redhat.com>2009-03-27 13:54:25 -0400
commit11cd9b94e6fc6ce22387a49f146f875c03bf9b54 (patch)
tree077b708b35231700474e7eaed5f36c7ad7aea4cc /server/responder/common
parenta19c42b15aff752310a6a6bb43d0e62534e8d117 (diff)
downloadsssd-11cd9b94e6fc6ce22387a49f146f875c03bf9b54.tar.gz
sssd-11cd9b94e6fc6ce22387a49f146f875c03bf9b54.tar.xz
sssd-11cd9b94e6fc6ce22387a49f146f875c03bf9b54.zip
Make nsssrv use the common responder functions
Make nss_ctx a private pointer of the common resp_ctx Use sss_process_init and remove all duplicate functions from nsssrv.c
Diffstat (limited to 'server/responder/common')
-rw-r--r--server/responder/common/responder_cmd.c15
-rw-r--r--server/responder/common/responder_cmd.h22
-rw-r--r--server/responder/common/responder_common.c9
-rw-r--r--server/responder/common/responder_common.h2
4 files changed, 13 insertions, 35 deletions
diff --git a/server/responder/common/responder_cmd.c b/server/responder/common/responder_cmd.c
index f3fbf4794..a434b3e12 100644
--- a/server/responder/common/responder_cmd.c
+++ b/server/responder/common/responder_cmd.c
@@ -24,29 +24,22 @@
#include "responder/common/responder_packet.h"
-void sss_cmd_done(struct sss_cmd_ctx *nctx)
+void sss_cmd_done(struct cli_ctx *cctx, void *freectx)
{
/* now that the packet is in place, unlock queue
* making the event writable */
- TEVENT_FD_WRITEABLE(nctx->cctx->cfde);
+ TEVENT_FD_WRITEABLE(cctx->cfde);
/* free all request related data through the talloc hierarchy */
- talloc_free(nctx);
+ talloc_free(freectx);
}
int sss_cmd_get_version(struct cli_ctx *cctx)
{
- struct sss_cmd_ctx *nctx;
uint8_t *body;
size_t blen;
int ret;
- nctx = talloc(cctx, struct sss_cmd_ctx);
- if (!nctx) {
- return ENOMEM;
- }
- nctx->cctx = cctx;
-
/* create response packet */
ret = sss_packet_new(cctx->creq, sizeof(uint32_t),
sss_packet_get_cmd(cctx->creq->in),
@@ -57,7 +50,7 @@ int sss_cmd_get_version(struct cli_ctx *cctx)
sss_packet_get_body(cctx->creq->out, &body, &blen);
((uint32_t *)body)[0] = SSS_PROTOCOL_VERSION;
- sss_cmd_done(nctx);
+ sss_cmd_done(cctx, NULL);
return EOK;
}
diff --git a/server/responder/common/responder_cmd.h b/server/responder/common/responder_cmd.h
index b91fc23a1..eb3bd082e 100644
--- a/server/responder/common/responder_cmd.h
+++ b/server/responder/common/responder_cmd.h
@@ -28,9 +28,9 @@
#include "tevent.h"
#include "ldb.h"
#include "../sss_client/sss_cli.h"
+#include "util/btreemap.h"
/* needed until nsssrv.h is updated */
-#ifndef __NSSSRV_H__
struct cli_request {
/* original request from the wire */
@@ -52,18 +52,18 @@ struct resp_ctx {
const char *priv_sock_name;
struct service_sbus_ctx *ss_ctx;
struct service_sbus_ctx *dp_ctx;
+
struct btreemap *domain_map;
char *default_domain;
- int cache_timeout;
-
struct sbus_method *sss_sbus_methods;
struct sss_cmd_table *sss_cmds;
const char *sss_pipe_name;
- const char *confdb_socket_path;
+ const char *confdb_service_path;
struct sbus_method *dp_methods;
-};
+ void *pvt_ctx;
+};
struct cli_ctx {
struct tevent_context *ev;
@@ -72,18 +72,8 @@ struct cli_ctx {
struct tevent_fd *cfde;
struct sockaddr_un addr;
struct cli_request *creq;
- struct getent_ctx *gctx;
int priv;
};
-#endif
-
-struct sss_cmd_ctx {
- struct cli_ctx *cctx;
- const char *domain;
- const char *name;
- uid_t id;
- bool check_expiration;
-};
struct sss_cmd_table {
enum sss_cli_command cmd;
@@ -91,7 +81,7 @@ struct sss_cmd_table {
};
int sss_cmd_execute(struct cli_ctx *cctx, struct sss_cmd_table *sss_cmds);
-void sss_cmd_done(struct sss_cmd_ctx *nctx);
+void sss_cmd_done(struct cli_ctx *cctx, void *freectx);
int sss_cmd_get_version(struct cli_ctx *cctx);
#endif /* __SSSSRV_CMD_H__ */
diff --git a/server/responder/common/responder_common.c b/server/responder/common/responder_common.c
index 3b566b9c1..fa024d53e 100644
--- a/server/responder/common/responder_common.c
+++ b/server/responder/common/responder_common.c
@@ -455,11 +455,9 @@ failed:
static int sss_init_domains(struct resp_ctx *rctx)
{
- TALLOC_CTX *tmp_ctx;
int ret;
int retval;
- tmp_ctx = talloc_new(rctx);
ret = confdb_get_domains(rctx->cdb, rctx, &rctx->domain_map);
if (ret != EOK) {
retval = ret;
@@ -486,7 +484,6 @@ static int sss_init_domains(struct resp_ctx *rctx)
retval = EOK;
done:
- talloc_free(tmp_ctx);
return retval;
}
@@ -497,7 +494,7 @@ int sss_process_init(TALLOC_CTX *mem_ctx,
struct sss_cmd_table sss_cmds[],
const char *sss_pipe_name,
const char *sss_priv_pipe_name,
- const char *confdb_socket_path,
+ const char *confdb_service_path,
struct sbus_method dp_methods[],
struct resp_ctx **responder_ctx)
{
@@ -515,7 +512,7 @@ int sss_process_init(TALLOC_CTX *mem_ctx,
rctx->sss_cmds = sss_cmds;
rctx->sock_name = sss_pipe_name;
rctx->priv_sock_name = sss_priv_pipe_name;
- rctx->confdb_socket_path = confdb_socket_path;
+ rctx->confdb_service_path = confdb_service_path;
rctx->dp_methods = dp_methods;
ret = sss_init_domains(rctx);
@@ -549,8 +546,6 @@ int sss_process_init(TALLOC_CTX *mem_ctx,
return ret;
}
- rctx->cache_timeout = 600; /* FIXME: read from conf */
-
DEBUG(1, ("Responder Initialization complete\n"));
*responder_ctx = rctx;
diff --git a/server/responder/common/responder_common.h b/server/responder/common/responder_common.h
index 66e01f9d5..8a7af08ad 100644
--- a/server/responder/common/responder_common.h
+++ b/server/responder/common/responder_common.h
@@ -16,7 +16,7 @@ int sss_process_init(TALLOC_CTX *mem_ctx,
struct sss_cmd_table sss_cmds[],
const char *sss_pipe_name,
const char *sss_priv_pipe_name,
- const char *confdb_socket_path,
+ const char *confdb_service_path,
struct sbus_method dp_methods[],
struct resp_ctx **responder_ctx);