summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSimo Sorce <simo@redhat.com>2012-10-16 17:16:54 -0400
committerSimo Sorce <simo@redhat.com>2013-01-04 14:40:17 -0500
commit2d468a06e14672a3012f2cf55720903000061c7d (patch)
treefd9efcc4b9c31c2e58be67ebd38d9b9db9d732f2
parentb5a99bebff5f7455d9b8bd89f0a81de587c5a9c0 (diff)
downloadsssd-2d468a06e14672a3012f2cf55720903000061c7d.tar.gz
sssd-2d468a06e14672a3012f2cf55720903000061c7d.tar.xz
sssd-2d468a06e14672a3012f2cf55720903000061c7d.zip
Add alias argument to mmap_cache account store fns
Basic plumbing to allow passing an alias down to mmap cache functions.
-rw-r--r--src/responder/nss/nsssrv_cmd.c5
-rw-r--r--src/responder/nss/nsssrv_mmap_cache.c6
-rw-r--r--src/responder/nss/nsssrv_mmap_cache.h2
3 files changed, 9 insertions, 4 deletions
diff --git a/src/responder/nss/nsssrv_cmd.c b/src/responder/nss/nsssrv_cmd.c
index 2ad9194c..387408a7 100644
--- a/src/responder/nss/nsssrv_cmd.c
+++ b/src/responder/nss/nsssrv_cmd.c
@@ -433,7 +433,7 @@ static int fill_pwent(struct sss_packet *packet,
if (pw_mmap_cache && nctx->pwd_mc_ctx) {
ret = sss_mmap_cache_pw_store(&nctx->pwd_mc_ctx,
- &fullname, &pwfield,
+ &fullname, NULL, &pwfield,
uid, gid,
&gecos, &homedir, &shell);
if (ret != EOK && ret != ENOMEM) {
@@ -2186,7 +2186,8 @@ static int fill_grent(struct sss_packet *packet,
* where body used to be, not where it is */
to_sized_string(&fullname, (const char *)&body[rzero+STRS_ROFFSET]);
ret = sss_mmap_cache_gr_store(&nctx->grp_mc_ctx,
- &fullname, &pwfield, gid, memnum,
+ &fullname, NULL, &pwfield,
+ gid, memnum,
(char *)&body[rzero] + STRS_ROFFSET +
fullname.len + pwfield.len,
rsize - STRS_ROFFSET -
diff --git a/src/responder/nss/nsssrv_mmap_cache.c b/src/responder/nss/nsssrv_mmap_cache.c
index cdedf47b..3823d065 100644
--- a/src/responder/nss/nsssrv_mmap_cache.c
+++ b/src/responder/nss/nsssrv_mmap_cache.c
@@ -517,6 +517,7 @@ static errno_t sss_mmap_cache_invalidate(struct sss_mc_ctx *mcc,
errno_t sss_mmap_cache_pw_store(struct sss_mc_ctx **_mcc,
struct sized_string *name,
+ struct sized_string *alias,
struct sized_string *pw,
uid_t uid, gid_t gid,
struct sized_string *gecos,
@@ -565,7 +566,7 @@ errno_t sss_mmap_cache_pw_store(struct sss_mc_ctx **_mcc,
/* header */
sss_mmap_set_rec_header(mcc, rec, rec_len, mcc->valid_time_slot,
name->str, name->len, uidkey.str, uidkey.len,
- NULL, 0);
+ alias ? alias->str:NULL, alias ? alias->len:0);
/* passwd struct */
data->name = MC_PTR_DIFF(data->strs, data);
@@ -655,6 +656,7 @@ done:
int sss_mmap_cache_gr_store(struct sss_mc_ctx **_mcc,
struct sized_string *name,
+ struct sized_string *alias,
struct sized_string *pw,
gid_t gid, size_t memnum,
char *membuf, size_t memsize)
@@ -701,7 +703,7 @@ int sss_mmap_cache_gr_store(struct sss_mc_ctx **_mcc,
/* header */
sss_mmap_set_rec_header(mcc, rec, rec_len, mcc->valid_time_slot,
name->str, name->len, gidkey.str, gidkey.len,
- NULL, 0);
+ alias ? alias->str:NULL, alias ? alias->len:0);
/* group struct */
data->name = MC_PTR_DIFF(data->strs, data);
diff --git a/src/responder/nss/nsssrv_mmap_cache.h b/src/responder/nss/nsssrv_mmap_cache.h
index 25cec40c..cf87e3b3 100644
--- a/src/responder/nss/nsssrv_mmap_cache.h
+++ b/src/responder/nss/nsssrv_mmap_cache.h
@@ -38,6 +38,7 @@ errno_t sss_mmap_cache_init(TALLOC_CTX *mem_ctx, const char *name,
errno_t sss_mmap_cache_pw_store(struct sss_mc_ctx **_mcc,
struct sized_string *name,
+ struct sized_string *alias,
struct sized_string *pw,
uid_t uid, gid_t gid,
struct sized_string *gecos,
@@ -46,6 +47,7 @@ errno_t sss_mmap_cache_pw_store(struct sss_mc_ctx **_mcc,
errno_t sss_mmap_cache_gr_store(struct sss_mc_ctx **_mcc,
struct sized_string *name,
+ struct sized_string *alias,
struct sized_string *pw,
gid_t gid, size_t memnum,
char *membuf, size_t memsize);