diff options
author | Jean-François Micouleau <jfm@samba.org> | 2001-12-13 18:09:29 +0000 |
---|---|---|
committer | Jean-François Micouleau <jfm@samba.org> | 2001-12-13 18:09:29 +0000 |
commit | 9f59fc64b8c1772b6a73d1649013d2187c298868 (patch) | |
tree | f6ebbb3e764fc618b88092477a0ac96078ef823a /source3/passdb | |
parent | 037b40f01f8ec42250b33de08680d4f6a06eac64 (diff) | |
download | samba-9f59fc64b8c1772b6a73d1649013d2187c298868.tar.gz samba-9f59fc64b8c1772b6a73d1649013d2187c298868.tar.bz2 samba-9f59fc64b8c1772b6a73d1649013d2187c298868.zip |
update the ldap support code. it compiles.
Ignacio you can update your howto ;-)
samsync: a small patch to try chaning challenges.
J.F.
(This used to be commit c99bc305599698f2291efbfe20024355cb2bcde0)
Diffstat (limited to 'source3/passdb')
-rw-r--r-- | source3/passdb/secrets.c | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/source3/passdb/secrets.c b/source3/passdb/secrets.c index 198f557bd6..fd616c6841 100644 --- a/source3/passdb/secrets.c +++ b/source3/passdb/secrets.c @@ -245,3 +245,44 @@ void reset_globals_after_fork(void) */ generate_random_buffer( &dummy, 1, True); } + +BOOL secrets_store_ldap_pw(char* dn, char* pw) +{ + fstring key; + char *p; + + pstrcpy(key, dn); + for (p=key; *p; p++) + if (*p == ',') *p = '/'; + + return secrets_store(key, pw, strlen(pw)); +} + +BOOL fetch_ldap_pw(char *dn, char* pw, int len) +{ + fstring key; + char *p; + void *data = NULL; + size_t size; + + pstrcpy(key, dn); + for (p=key; *p; p++) + if (*p == ',') *p = '/'; + + data=secrets_fetch(key, &size); + if (!size) { + DEBUG(0,("fetch_ldap_pw: no ldap secret retrieved!\n")); + return False; + } + + if (size > len-1) + { + DEBUG(0,("fetch_ldap_pw: ldap secret is too long (%d > %d)!\n", size, len-1)); + return False; + } + + memcpy(pw, data, size); + pw[size] = '\0'; + + return True; +} |