diff options
author | John (J5) Palmieri <johnp@redhat.com> | 2006-10-26 19:01:10 +0000 |
---|---|---|
committer | John (J5) Palmieri <johnp@redhat.com> | 2006-10-26 19:01:10 +0000 |
commit | caae991f97ce1b09595d3229f2868268678b8de6 (patch) | |
tree | f0c8b8244742ca1c251c42de345bb80af099f3b0 | |
parent | 82c9cd05cd19a397043db94025c7a80e75386e8a (diff) |
* dbus-sysdeps-unix.c (_dbus_set_local_creds): Clean up the
LOCAL_CREDS vs CMSGCRED stuff a bit. Prefer CMSGCRED. This
needs to be cleaned up more.
* doc/TODO: Add a todo that *BSD hackers should look at cleaning
up the CREDS issue.
-rw-r--r-- | ChangeLog | 9 | ||||
-rw-r--r-- | dbus/dbus-sysdeps-unix.c | 13 | ||||
-rw-r--r-- | doc/TODO | 4 |
3 files changed, 20 insertions, 6 deletions
@@ -1,5 +1,14 @@ 2006-10-26 John (J5) Palmieri <johnp@redhat.com> + * dbus-sysdeps-unix.c (_dbus_set_local_creds): Clean up the + LOCAL_CREDS vs CMSGCRED stuff a bit. Prefer CMSGCRED. This + needs to be cleaned up more. + + * doc/TODO: Add a todo that *BSD hackers should look at cleaning + up the CREDS issue. + +2006-10-26 John (J5) Palmieri <johnp@redhat.com> + * configure.in, dbus-1.pc.in: Check to see if thread methods are in glibc or libpthread and add -lpthread to the link stage if it is the latter diff --git a/dbus/dbus-sysdeps-unix.c b/dbus/dbus-sysdeps-unix.c index 45764050..75848b71 100644 --- a/dbus/dbus-sysdeps-unix.c +++ b/dbus/dbus-sysdeps-unix.c @@ -515,7 +515,11 @@ _dbus_set_local_creds (int fd, dbus_bool_t on) { dbus_bool_t retval = TRUE; -#if defined(LOCAL_CREDS) && !defined(HAVE_CMSGCRED) +#if defined(HAVE_CMSGCRED) + /* NOOP just to make sure only one codepath is used + * and to prefer CMSGCRED + */ +#elif defined(LOCAL_CREDS) int val = on ? 1 : 0; if (setsockopt (fd, 0, LOCAL_CREDS, &val, sizeof (val)) < 0) { @@ -828,16 +832,13 @@ write_credentials_byte (int server_fd, { int bytes_written; char buf[1] = { '\0' }; -#if defined(HAVE_CMSGCRED) && !defined(LOCAL_CREDS) +#if defined(HAVE_CMSGCRED) struct { struct cmsghdr hdr; struct cmsgcred cred; } cmsg; struct iovec iov; struct msghdr msg; -#endif - -#if defined(HAVE_CMSGCRED) && !defined(LOCAL_CREDS) iov.iov_base = buf; iov.iov_len = 1; @@ -857,7 +858,7 @@ write_credentials_byte (int server_fd, again: -#if defined(HAVE_CMSGCRED) && !defined(LOCAL_CREDS) +#if defined(HAVE_CMSGCRED) bytes_written = sendmsg (server_fd, &msg, 0); #else bytes_written = write (server_fd, buf, 1); @@ -42,6 +42,10 @@ Might as Well for 1.0 Can Be Post 1.0 === + - clean up the creds issue on *BSD's in dbus/dbus-sysdeps-unix.c. + They should work as is but we need to rearange it to make it + clearer which method is being used. configure.in should + be fixed up to make that decition. - _dbus_connection_unref_unlocked() is essentially always broken because the connection finalizer calls non-unlocked functions. One fix is to make |