summaryrefslogtreecommitdiffstats
path: root/source3/lib/system.c
diff options
context:
space:
mode:
authorJeremy Allison <jra@samba.org>2006-08-19 01:04:54 +0000
committerGerald (Jerry) Carter <jerry@samba.org>2007-10-10 11:38:43 -0500
commitb41e14abfdc7301d5ae26ad95c031aa36c190fc8 (patch)
tree132c80c91e9ac1a43da7584b48a4a8218a20b9f1 /source3/lib/system.c
parent986461b6be03eefd3bd9d9c5f5921e14189813b2 (diff)
downloadsamba-b41e14abfdc7301d5ae26ad95c031aa36c190fc8.tar.gz
samba-b41e14abfdc7301d5ae26ad95c031aa36c190fc8.tar.xz
samba-b41e14abfdc7301d5ae26ad95c031aa36c190fc8.zip
r17610: Added the ability for firefox to drive the winbindd
ntlm_auth module to allow it to use winbindd cached credentials.The credentials are currently only stored in a krb5 MIT environment - we need to add an option to winbindd to allow passwords to be stored even in an NTLM-only environment. Patch from Robert O'Callahan, modified with some fixes by me. Jeremy. (This used to be commit ae7cc298a113d8984557684bd6ad216cbb27cff3)
Diffstat (limited to 'source3/lib/system.c')
-rw-r--r--source3/lib/system.c25
1 files changed, 25 insertions, 0 deletions
diff --git a/source3/lib/system.c b/source3/lib/system.c
index 24c726b8f75..bd7e4b8a67f 100644
--- a/source3/lib/system.c
+++ b/source3/lib/system.c
@@ -2242,3 +2242,28 @@ int sys_aio_suspend(const SMB_STRUCT_AIOCB * const cblist[], int n, const struct
return -1;
}
#endif /* WITH_AIO */
+
+int getpeereid( int s, uid_t *uid)
+{
+#if defined(HAVE_PEERCRED)
+ struct ucred cred;
+ socklen_t cred_len = sizeof(struct ucred);
+ int ret;
+
+ ret = getsockopt(s, SOL_SOCKET, SO_PEERCRED, (void *)&cred, &cred_len);
+ if (ret != 0) {
+ return -1;
+ }
+
+ if (cred_len != sizeof(struct ucred)) {
+ errno = EINVAL;
+ return -1;
+ }
+
+ *uid = cred.uid;
+ return 0;
+#else
+ errno = ENOSYS;
+ return -1;
+#endif
+}