+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
{
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)
{
{
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;
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);
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