r23039 - in /desktop/unstable/gnome-keyring/debian: changelog patches/03_kfreebsd.patch
joss at users.alioth.debian.org
joss at users.alioth.debian.org
Thu Feb 11 22:51:31 UTC 2010
Author: joss
Date: Thu Feb 11 22:51:30 2010
New Revision: 23039
URL: http://svn.debian.org/wsvn/pkg-gnome/?sc=1&rev=23039
Log:
03_kfreebsd.patch: new version of the patch. Closes: #558406 again.
Modified:
desktop/unstable/gnome-keyring/debian/changelog
desktop/unstable/gnome-keyring/debian/patches/03_kfreebsd.patch
Modified: desktop/unstable/gnome-keyring/debian/changelog
URL: http://svn.debian.org/wsvn/pkg-gnome/desktop/unstable/gnome-keyring/debian/changelog?rev=23039&op=diff
==============================================================================
--- desktop/unstable/gnome-keyring/debian/changelog [utf-8] (original)
+++ desktop/unstable/gnome-keyring/debian/changelog [utf-8] Thu Feb 11 22:51:30 2010
@@ -1,6 +1,7 @@
gnome-keyring (2.28.2-2) UNRELEASED; urgency=low
* The library only suggests the daemon. Closes: #563358.
+ * 03_kfreebsd.patch: new version of the patch. Closes: #558406 again.
-- Josselin Mouette <joss at debian.org> Mon, 04 Jan 2010 15:56:46 +0100
Modified: desktop/unstable/gnome-keyring/debian/patches/03_kfreebsd.patch
URL: http://svn.debian.org/wsvn/pkg-gnome/desktop/unstable/gnome-keyring/debian/patches/03_kfreebsd.patch?rev=23039&op=diff
==============================================================================
--- desktop/unstable/gnome-keyring/debian/patches/03_kfreebsd.patch [utf-8] (original)
+++ desktop/unstable/gnome-keyring/debian/patches/03_kfreebsd.patch [utf-8] Thu Feb 11 22:51:30 2010
@@ -1,58 +1,59 @@
---- a/egg/egg-unix-credentials.c
-+++ b/egg/egg-unix-credentials.c
-@@ -45,7 +45,7 @@
+--- gnome-keyring-2.28.1-orig/egg/egg-unix-credentials.c 2009-10-18 01:27:22.000000000 +0200
++++ gnome-keyring-2.28.1/egg/egg-unix-credentials.c 2009-12-07 01:13:17.000000000 +0100
+@@ -37,6 +37,10 @@
+ #include <ucred.h>
+ #endif
+
++#if defined(__FreeBSD_kernel__)
++#include <sys/ucred.h>
++#endif
++
+ int
+ egg_unix_credentials_read (int sock, pid_t *pid, uid_t *uid)
+ {
+@@ -45,7 +49,7 @@
char buf;
int ret;
-#if defined(HAVE_CMSGCRED) || defined(LOCAL_CREDS)
-+#if (defined(HAVE_CMSGCRED) || defined(LOCAL_CREDS)) && (!defined(__FreeBSD__) || !defined(__FreeBSD_kernel__))
++#if (defined(HAVE_CMSGCRED) || defined(LOCAL_CREDS)) && !defined(__FreeBSD_kernel__)
/* Prefer CMSGCRED over LOCAL_CREDS because the former provides the
* remote PID. */
#if defined(HAVE_CMSGCRED)
-@@ -73,7 +73,7 @@
+@@ -73,7 +77,7 @@
msg.msg_iov = &iov;
msg.msg_iovlen = 1;
-#if defined(HAVE_CMSGCRED) || defined(LOCAL_CREDS)
-+#if (defined(HAVE_CMSGCRED) || defined(LOCAL_CREDS)) && (!defined(__FreeBSD__) || !defined(__FreeBSD_kernel__))
++#if (defined(HAVE_CMSGCRED) || defined(LOCAL_CREDS)) && !defined(__FreeBSD_kernel__)
memset (&cmsg, 0, sizeof (cmsg));
msg.msg_control = (caddr_t) &cmsg;
msg.msg_controllen = CMSG_SPACE(sizeof *cred);
-@@ -96,8 +96,8 @@
- fprintf (stderr, "credentials byte was not nul\n");
+@@ -97,7 +101,7 @@
return -1;
}
--
+
-#if defined(HAVE_CMSGCRED) || defined(LOCAL_CREDS)
-+
-+#if (defined(HAVE_CMSGCRED) || defined(LOCAL_CREDS)) && (!defined(__FreeBSD__) || !defined(__FreeBSD_kernel__))
++#if (defined(HAVE_CMSGCRED) || defined(LOCAL_CREDS)) && !defined(__FreeBSD_kernel__)
if (cmsg.hdr.cmsg_len < CMSG_LEN (sizeof *cred) ||
cmsg.hdr.cmsg_type != SCM_CREDS) {
fprintf (stderr, "message from recvmsg() was not SCM_CREDS\n");
-@@ -164,7 +164,7 @@
- {
- char buf;
- int bytes_written;
--#if defined(HAVE_CMSGCRED) && (!defined(LOCAL_CREDS) || defined(__FreeBSD__))
-+#if defined(HAVE_CMSGCRED) && (!defined(LOCAL_CREDS) || defined(__FreeBSD__) || defined(__FreeBSD_kernel__))
- union {
- struct cmsghdr hdr;
- char cred[CMSG_SPACE (sizeof (struct cmsgcred))];
-@@ -175,7 +175,7 @@
-
- buf = 0;
-
--#if defined(HAVE_CMSGCRED) && (!defined(LOCAL_CREDS) || defined(__FreeBSD__))
-+#if defined(HAVE_CMSGCRED) && (!defined(LOCAL_CREDS) || defined(__FreeBSD__) || defined(__FreeBSD_kernel__))
- iov.iov_base = &buf;
- iov.iov_len = 1;
-
-@@ -193,7 +193,7 @@
-
- again:
-
--#if defined(HAVE_CMSGCRED) && (!defined(LOCAL_CREDS) || defined(__FreeBSD__))
-+#if defined(HAVE_CMSGCRED) && (!defined(LOCAL_CREDS) || defined(__FreeBSD__) || defined(__FreeBSD_kernel__))
- bytes_written = sendmsg (socket, &msg, 0);
- #else
- bytes_written = write (socket, &buf, 1);
+@@ -119,6 +123,18 @@
+ cr_len, (int) sizeof (cr));
+ return -1;
+ }
++#elif defined(LOCAL_PEERCRED) /* GNU/kFreeBSD */
++ struct xucred cr;
++ socklen_t cr_len = sizeof(cr);
++ *pid = 0;
++
++ if (getsockopt (sock, 0, LOCAL_PEERCRED, &cr, &cr_len) == 0) {
++ *uid = cr.cr_uid;
++ } else {
++ fprintf (stderr, "failed to getsockopt() credentials, returned len %d/%d\n",
++ cr_len, (int) sizeof (cr));
++ return -1;
++ }
+ #elif defined(HAVE_CMSGCRED)
+ cred = (struct cmsgcred *) CMSG_DATA (&cmsg.hdr);
+ *pid = cred->cmcred_pid;
More information about the pkg-gnome-commits
mailing list