aboutsummaryrefslogtreecommitdiffstats
path: root/src/interface.c
diff options
context:
space:
mode:
authorEric Wong <normalperson@yhbt.net>2008-01-03 10:03:34 +0000
committerEric Wong <normalperson@yhbt.net>2008-01-03 10:03:34 +0000
commit7d66859277280e48eb717756cd0b1f50b3ea2054 (patch)
treeb723f02f03da252c4e1dba6e6f7ca55e958e43fc /src/interface.c
parenta9b581f6c551e783030a8ce54008a772325f71b6 (diff)
downloadmpd-7d66859277280e48eb717756cd0b1f50b3ea2054.tar.gz
mpd-7d66859277280e48eb717756cd0b1f50b3ea2054.tar.xz
mpd-7d66859277280e48eb717756cd0b1f50b3ea2054.zip
ioops: make this zero-impact when compiling w/o zeroconf as well
This reduces the text size of the binary slightly when zeroconf support is not built, and keeps the interface code cleaner as well. git-svn-id: https://svn.musicpd.org/mpd/trunk@7133 09075e82-0dd4-0310-85a5-a0d7c8717e4f
Diffstat (limited to 'src/interface.c')
-rw-r--r--src/interface.c51
1 files changed, 2 insertions, 49 deletions
diff --git a/src/interface.c b/src/interface.c
index 76770a15f..289ed8066 100644
--- a/src/interface.c
+++ b/src/interface.c
@@ -49,9 +49,6 @@ static size_t interface_max_command_list_size =
static size_t interface_max_output_buffer_size =
INTERFACE_MAX_OUTPUT_BUFFER_SIZE_DEFAULT;
-/* List of registered external IO handlers */
-static struct ioOps *ioList;
-
/* maybe make conf option for this, or... 32 might be good enough */
static long int interface_list_cache_size = 32;
@@ -487,41 +484,18 @@ int doIOForInterfaces(void)
while (1) {
fdmax = 0;
- FD_ZERO( &rfds );
- FD_ZERO( &wfds );
FD_ZERO( &efds );
addInterfacesReadyToReadAndListenSocketToFdSet(&rfds, &fdmax);
addInterfacesForBufferFlushToFdSet(&wfds, &fdmax);
- /* Add fds for all registered IO handlers */
- if( ioList ) {
- struct ioOps *o = ioList;
- while( o ) {
- struct ioOps *current = o;
- int fdnum;
- assert( current->fdset );
- fdnum = current->fdset( &rfds, &wfds, &efds );
- if( fdmax < fdnum )
- fdmax = fdnum;
- o = o->next;
- }
- }
+ registered_IO_add_fds(&fdmax, &rfds, &wfds, &efds);
selret = select(fdmax + 1, &rfds, &wfds, &efds, &tv);
if (selret < 0 && errno == EINTR)
break;
- /* Consume fds for all registered IO handlers */
- if( ioList ) {
- struct ioOps *o = ioList;
- while( o ) {
- struct ioOps *current = o;
- assert( current->consume );
- selret = current->consume( selret, &rfds, &wfds, &efds );
- o = o->next;
- }
- }
+ registered_IO_consume_fds(&selret, &rfds, &wfds, &efds);
if (selret == 0)
break;
@@ -810,24 +784,3 @@ static void printInterfaceOutBuffer(Interface * interface)
interface->send_buf_used = 0;
}
-/* From ioops.h: */
-void registerIO(struct ioOps *ops)
-{
- assert(ops != NULL);
-
- ops->next = ioList;
- ioList = ops;
- ops->prev = NULL;
- if (ops->next)
- ops->next->prev = ops;
-}
-
-void deregisterIO(struct ioOps *ops)
-{
- assert(ops != NULL);
-
- if (ioList == ops)
- ioList = ops->next;
- else if (ops->prev != NULL)
- ops->prev->next = ops->next;
-}