28 #include "dbus-internals.h" 29 #include "dbus-test.h" 30 #include "dbus-message-private.h" 31 #include "dbus-marshal-recursive.h" 32 #include "dbus-string.h" 33 #ifdef HAVE_UNIX_FD_PASSING 34 #include "dbus-sysdeps-unix.h" 36 #include <dbus/dbus-test-tap.h> 40 #include <sys/types.h> 60 #ifdef HAVE_UNIX_FD_PASSING 61 return message->n_unix_fds;
67 #ifdef DBUS_ENABLE_EMBEDDED_TESTS 70 struct DBusInitialFDs {
76 _dbus_check_fdleaks_enter (
void)
83 fds = malloc (
sizeof (DBusInitialFDs));
88 if ((d = opendir (
"/proc/self/fd")))
92 while ((de = readdir(d)))
98 if (de->d_name[0] ==
'.')
102 l = strtol (de->d_name, &e, 10);
113 if (fd >= FD_SETSIZE)
115 _dbus_verbose (
"FD %d unexpectedly large; cannot track whether " 116 "it is leaked\n", fd);
120 FD_SET (fd, &fds->set);
133 _dbus_check_fdleaks_leave (DBusInitialFDs *fds)
140 if ((d = opendir (
"/proc/self/fd")))
144 while ((de = readdir(d)))
150 if (de->d_name[0] ==
'.')
154 l = strtol (de->d_name, &e, 10);
165 if (fd >= FD_SETSIZE)
167 _dbus_verbose (
"FD %d unexpectedly large; cannot track whether " 168 "it is leaked\n", fd);
172 if (FD_ISSET (fd, &fds->set))
175 _dbus_test_fatal (
"file descriptor %i leaked in %s.", fd, __FILE__);
#define NULL
A null pointer, defined appropriately for C or C++.
#define _dbus_assert(condition)
Aborts with an error message if the condition is false.
Internals of DBusMessage.
unsigned int _dbus_message_get_n_unix_fds(DBusMessage *message)
Gets the number of unix fds attached to this message.