summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHavoc Pennington <hp@redhat.com>2007-06-18 16:24:03 +0000
committerHavoc Pennington <hp@redhat.com>2007-06-18 16:24:03 +0000
commit98f19852078cf03f8b50a93d49d83b85c0dd400b (patch)
tree908d078ac605cd6f27c2d1e104c9589b31dce01a
parentfb93e1faa875d6b1ca48b0e792a9b79aa7cbc517 (diff)
2007-06-18 Havoc Pennington <hp@redhat.com>
* dbus/dbus-watch.c (dbus_watch_get_socket) (dbus_watch_get_unix_fd): new API to match DBusConnection (dbus_watch_get_fd): deprecate this Throughout: just s/dbus_watch_get_fd/dbus_watch_get_socket/g for now since all the transports use sockets anyway
-rw-r--r--ChangeLog9
-rw-r--r--dbus/dbus-connection.c17
-rw-r--r--dbus/dbus-connection.h7
-rw-r--r--dbus/dbus-mainloop.c6
-rw-r--r--dbus/dbus-server-socket.c2
-rw-r--r--dbus/dbus-spawn.c2
-rw-r--r--dbus/dbus-transport-socket.c2
-rw-r--r--dbus/dbus-transport.c2
-rw-r--r--dbus/dbus-watch.c63
9 files changed, 84 insertions, 26 deletions
diff --git a/ChangeLog b/ChangeLog
index 93982b72..1af3af7e 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,12 @@
+2007-06-18 Havoc Pennington <hp@redhat.com>
+
+ * dbus/dbus-watch.c (dbus_watch_get_socket)
+ (dbus_watch_get_unix_fd): new API to match DBusConnection
+ (dbus_watch_get_fd): deprecate this
+
+ Throughout: just s/dbus_watch_get_fd/dbus_watch_get_socket/g for
+ now since all the transports use sockets anyway
+
2007-06-16 Ralf Habacker <ralf.habacker@freenet.de>
* dbus/dbus-macros.h, dbus/dbus-message.c,
diff --git a/dbus/dbus-connection.c b/dbus/dbus-connection.c
index 656f7502..484873e6 100644
--- a/dbus/dbus-connection.c
+++ b/dbus/dbus-connection.c
@@ -4475,12 +4475,13 @@ dbus_connection_dispatch (DBusConnection *connection)
* dbus_watch_get_enabled() every time anyway.
*
* The DBusWatch can be queried for the file descriptor to watch using
- * dbus_watch_get_fd(), and for the events to watch for using
- * dbus_watch_get_flags(). The flags returned by
- * dbus_watch_get_flags() will only contain DBUS_WATCH_READABLE and
- * DBUS_WATCH_WRITABLE, never DBUS_WATCH_HANGUP or DBUS_WATCH_ERROR;
- * all watches implicitly include a watch for hangups, errors, and
- * other exceptional conditions.
+ * dbus_watch_get_unix_fd() or dbus_watch_get_socket(), and for the
+ * events to watch for using dbus_watch_get_flags(). The flags
+ * returned by dbus_watch_get_flags() will only contain
+ * DBUS_WATCH_READABLE and DBUS_WATCH_WRITABLE, never
+ * DBUS_WATCH_HANGUP or DBUS_WATCH_ERROR; all watches implicitly
+ * include a watch for hangups, errors, and other exceptional
+ * conditions.
*
* Once a file descriptor becomes readable or writable, or an exception
* occurs, dbus_watch_handle() should be called to
@@ -4732,7 +4733,7 @@ dbus_connection_set_dispatch_status_function (DBusConnection *connec
* example. DO NOT read or write to the file descriptor, or try to
* select() on it; use DBusWatch for main loop integration. Not all
* connections will have a file descriptor. So for adding descriptors
- * to the main loop, use dbus_watch_get_fd() and so forth.
+ * to the main loop, use dbus_watch_get_unix_fd() and so forth.
*
* If the connection is socket-based, you can also use
* dbus_connection_get_socket(), which will work on Windows too.
@@ -4765,7 +4766,7 @@ dbus_connection_get_unix_fd (DBusConnection *connection,
* of the connection, if any. DO NOT read or write to the file descriptor, or try to
* select() on it; use DBusWatch for main loop integration. Not all
* connections will have a socket. So for adding descriptors
- * to the main loop, use dbus_watch_get_fd() and so forth.
+ * to the main loop, use dbus_watch_get_socket() and so forth.
*
* If the connection is not socket-based, this function will return FALSE,
* even if the connection does have a file descriptor of some kind.
diff --git a/dbus/dbus-connection.h b/dbus/dbus-connection.h
index 533ac98d..ec227604 100644
--- a/dbus/dbus-connection.h
+++ b/dbus/dbus-connection.h
@@ -352,7 +352,12 @@ dbus_bool_t dbus_connection_get_socket (DBusConnection
* @{
*/
-int dbus_watch_get_fd (DBusWatch *watch);
+#ifndef DBUS_DISABLE_DEPRECATED
+DBUS_DEPRECATED int dbus_watch_get_fd (DBusWatch *watch);
+#endif
+
+int dbus_watch_get_unix_fd (DBusWatch *watch);
+int dbus_watch_get_socket (DBusWatch *watch);
unsigned int dbus_watch_get_flags (DBusWatch *watch);
void* dbus_watch_get_data (DBusWatch *watch);
void dbus_watch_set_data (DBusWatch *watch,
diff --git a/dbus/dbus-mainloop.c b/dbus/dbus-mainloop.c
index 68284474..73d411e0 100644
--- a/dbus/dbus-mainloop.c
+++ b/dbus/dbus-mainloop.c
@@ -598,7 +598,7 @@ _dbus_loop_iterate (DBusLoop *loop,
#if MAINLOOP_SPEW
_dbus_verbose (" skipping watch on fd %d as it was out of memory last time\n",
- dbus_watch_get_fd (wcb->watch));
+ dbus_watch_get_socket (wcb->watch));
#endif
}
else if (dbus_watch_get_enabled (wcb->watch))
@@ -609,7 +609,7 @@ _dbus_loop_iterate (DBusLoop *loop,
flags = dbus_watch_get_flags (wcb->watch);
- fds[n_fds].fd = dbus_watch_get_fd (wcb->watch);
+ fds[n_fds].fd = dbus_watch_get_socket (wcb->watch);
fds[n_fds].revents = 0;
fds[n_fds].events = 0;
if (flags & DBUS_WATCH_READABLE)
@@ -628,7 +628,7 @@ _dbus_loop_iterate (DBusLoop *loop,
{
#if MAINLOOP_SPEW
_dbus_verbose (" skipping disabled watch on fd %d %s\n",
- dbus_watch_get_fd (wcb->watch),
+ dbus_watch_get_socket (wcb->watch),
watch_flags_to_string (dbus_watch_get_flags (wcb->watch)));
#endif
}
diff --git a/dbus/dbus-server-socket.c b/dbus/dbus-server-socket.c
index 3897f0db..1840e49f 100644
--- a/dbus/dbus-server-socket.c
+++ b/dbus/dbus-server-socket.c
@@ -161,7 +161,7 @@ socket_handle_watch (DBusWatch *watch,
int client_fd;
int listen_fd;
- listen_fd = dbus_watch_get_fd (watch);
+ listen_fd = dbus_watch_get_socket (watch);
client_fd = _dbus_accept (listen_fd);
diff --git a/dbus/dbus-spawn.c b/dbus/dbus-spawn.c
index 74358185..2c901c12 100644
--- a/dbus/dbus-spawn.c
+++ b/dbus/dbus-spawn.c
@@ -722,7 +722,7 @@ handle_watch (DBusWatch *watch,
if (condition & DBUS_WATCH_HANGUP)
revents |= _DBUS_POLLHUP;
- fd = dbus_watch_get_fd (watch);
+ fd = dbus_watch_get_socket (watch);
if (fd == sitter->error_pipe_from_child)
handle_error_pipe (sitter, revents);
diff --git a/dbus/dbus-transport-socket.c b/dbus/dbus-transport-socket.c
index 31a41e1f..5ef4e8bf 100644
--- a/dbus/dbus-transport-socket.c
+++ b/dbus/dbus-transport-socket.c
@@ -880,7 +880,7 @@ socket_handle_watch (DBusTransport *transport,
flags);
else
_dbus_verbose ("asked to handle watch %p on fd %d that we don't recognize\n",
- watch, dbus_watch_get_fd (watch));
+ watch, dbus_watch_get_socket (watch));
}
#endif /* DBUS_ENABLE_VERBOSE_MODE */
diff --git a/dbus/dbus-transport.c b/dbus/dbus-transport.c
index 0e27dd13..3edef937 100644
--- a/dbus/dbus-transport.c
+++ b/dbus/dbus-transport.c
@@ -812,7 +812,7 @@ _dbus_transport_handle_watch (DBusTransport *transport,
if (transport->disconnected)
return TRUE;
- if (dbus_watch_get_fd (watch) < 0)
+ if (dbus_watch_get_socket (watch) < 0)
{
_dbus_warn_check_failed ("Tried to handle an invalidated watch; this watch should have been removed\n");
return TRUE;
diff --git a/dbus/dbus-watch.c b/dbus/dbus-watch.c
index f2691c82..7ec0661c 100644
--- a/dbus/dbus-watch.c
+++ b/dbus/dbus-watch.c
@@ -286,7 +286,7 @@ _dbus_watch_list_set_functions (DBusWatchList *watch_list,
_dbus_verbose ("Adding a %s watch on fd %d using newly-set add watch function\n",
watch_type,
- dbus_watch_get_fd (link->data));
+ dbus_watch_get_socket (link->data));
}
#endif /* DBUS_ENABLE_VERBOSE_MODE */
@@ -302,7 +302,7 @@ _dbus_watch_list_set_functions (DBusWatchList *watch_list,
link2);
_dbus_verbose ("Removing watch on fd %d using newly-set remove function because initial add failed\n",
- dbus_watch_get_fd (link2->data));
+ dbus_watch_get_socket (link2->data));
(* remove_function) (link2->data, data);
@@ -359,7 +359,7 @@ _dbus_watch_list_add_watch (DBusWatchList *watch_list,
if (watch_list->add_watch_function != NULL)
{
_dbus_verbose ("Adding watch on fd %d\n",
- dbus_watch_get_fd (watch));
+ dbus_watch_get_socket (watch));
if (!(* watch_list->add_watch_function) (watch,
watch_list->watch_data))
@@ -390,7 +390,7 @@ _dbus_watch_list_remove_watch (DBusWatchList *watch_list,
if (watch_list->remove_watch_function != NULL)
{
_dbus_verbose ("Removing watch on fd %d\n",
- dbus_watch_get_fd (watch));
+ dbus_watch_get_socket (watch));
(* watch_list->remove_watch_function) (watch,
watch_list->watch_data);
@@ -422,7 +422,7 @@ _dbus_watch_list_toggle_watch (DBusWatchList *watch_list,
if (watch_list->watch_toggled_function != NULL)
{
_dbus_verbose ("Toggling watch %p on fd %d to %d\n",
- watch, dbus_watch_get_fd (watch), watch->enabled);
+ watch, dbus_watch_get_socket (watch), watch->enabled);
(* watch_list->watch_toggled_function) (watch,
watch_list->watch_data);
@@ -481,10 +481,7 @@ _dbus_watch_set_handler (DBusWatch *watch,
*/
/**
- * Gets the file descriptor that should be watched.
- *
- * On Windows, this will be a socket. On UNIX right now it will be a
- * socket but in principle it could be something else.
+ * Deprecated former name of dbus_watch_get_unix_fd().
*
* @param watch the DBusWatch object.
* @returns the file descriptor to watch.
@@ -492,6 +489,52 @@ _dbus_watch_set_handler (DBusWatch *watch,
int
dbus_watch_get_fd (DBusWatch *watch)
{
+ return dbus_watch_get_unix_fd (watch);
+}
+
+/**
+ * Returns a UNIX file descriptor to be watched,
+ * which may be a pipe, socket, or other type of
+ * descriptor. On UNIX this is preferred to
+ * dbus_watch_get_socket() since it works with
+ * more kinds of #DBusWatch.
+ *
+ * Always returns -1 on Windows. On Windows you use
+ * dbus_watch_get_socket() to get a Winsock socket to watch.
+ *
+ * @param watch the DBusWatch object.
+ * @returns the file descriptor to watch.
+ */
+int
+dbus_watch_get_unix_fd (DBusWatch *watch)
+{
+ /* FIXME remove #ifdef and do this on a lower level
+ * (watch should have set_socket and set_unix_fd and track
+ * which it has, and the transport should provide the
+ * appropriate watch type)
+ */
+#ifdef DBUS_UNIX
+ return watch->fd;
+#else
+ return -1;
+#endif
+}
+
+/**
+ * Returns a socket to be watched, on UNIX this will return -1 if our
+ * transport is not socket-based so dbus_watch_get_unix_fd() is
+ * preferred.
+ *
+ * On Windows, dbus_watch_get_unix_fd() returns -1 but this function
+ * returns a Winsock socket (assuming the transport is socket-based,
+ * as it always is for now).
+ *
+ * @param watch the DBusWatch object.
+ * @returns the socket to watch.
+ */
+int
+dbus_watch_get_socket (DBusWatch *watch)
+{
return watch->fd;
}
@@ -546,7 +589,7 @@ dbus_watch_set_data (DBusWatch *watch,
DBusFreeFunction free_data_function)
{
_dbus_verbose ("Setting watch fd %d data to data = %p function = %p from data = %p function = %p\n",
- dbus_watch_get_fd (watch),
+ dbus_watch_get_socket (watch),
data, free_data_function, watch->data, watch->free_data_function);
if (watch->free_data_function != NULL)