Changes in / [5898ef8:79e826a]


Ignore:
Files:
6 deleted
34 edited

Legend:

Unmodified
Added
Removed
  • Makefile

    r5898ef8 r79e826a  
    1010
    1111# Program variables
    12 objects = account.o bitlbee.o conf.o crypting.o help.o ini.o ipc.o irc.o irc_commands.o log.o nick.o query.o root_commands.o set.o storage.o storage_text.o storage_xml.o unix.o url.o user.o util.o
     12objects = account.o bitlbee.o conf.o crypting.o help.o ini.o ipc.o irc.o irc_commands.o log.o nick.o query.o root_commands.o set.o storage.o storage_text.o unix.o url.o user.o util.o
    1313headers = account.h bitlbee.h commands.h conf.h config.h crypting.h help.h ini.h ipc.h irc.h log.h nick.h query.h set.h sock.h storage.h url.h user.h protocols/http_client.h protocols/md5.h protocols/nogaim.h protocols/proxy.h protocols/sha.h protocols/ssl_client.h
    1414subdirs = protocols
    15 
    16 objects += $(LDAP_OBJ)
    1715
    1816# Expansion of variables
  • account.c

    r5898ef8 r79e826a  
    3535        {
    3636                for( a = irc->accounts; a->next; a = a->next );
    37                 a = a->next = g_new0( account_t, 1 );
     37                a = a->next = g_new0 ( account_t, 1 );
    3838        }
    3939        else
  • bitlbee.c

    r5898ef8 r79e826a  
    3434#include <errno.h>
    3535
    36 static gboolean bitlbee_io_new_client( gpointer data, gint fd, b_input_condition condition );
     36gboolean bitlbee_io_new_client( GIOChannel *source, GIOCondition condition, gpointer data );
    3737
    3838int bitlbee_daemon_init()
     
    4444#endif
    4545        int i;
     46        GIOChannel *ch;
    4647        FILE *fp;
    4748       
     
    9091        }
    9192       
    92         global.listen_watch_source_id = b_input_add( global.listen_socket, GAIM_INPUT_READ, bitlbee_io_new_client, NULL );
     93        ch = g_io_channel_unix_new( global.listen_socket );
     94        global.listen_watch_source_id = g_io_add_watch( ch, G_IO_IN, bitlbee_io_new_client, NULL );
    9395       
    9496#ifndef _WIN32
     
    145147}
    146148
    147 gboolean bitlbee_io_current_client_read( gpointer data, gint fd, b_input_condition cond )
     149gboolean bitlbee_io_current_client_read( GIOChannel *source, GIOCondition condition, gpointer data )
    148150{
    149151        irc_t *irc = data;
     
    151153        int st;
    152154       
     155        if( condition & G_IO_ERR || condition & G_IO_HUP )
     156        {
     157                irc_abort( irc, 1, "Read error" );
     158                return FALSE;
     159        }
     160       
    153161        st = read( irc->fd, line, sizeof( line ) - 1 );
    154162        if( st == 0 )
     
    186194        if( !g_slist_find( irc_connection_list, irc ) )
    187195        {
    188                 log_message( LOGLVL_WARNING, "Abnormal termination of connection with fd %d.", fd );
     196                log_message( LOGLVL_WARNING, "Abnormal termination of connection with fd %d.", irc->fd );
    189197                return FALSE;
    190198        }
     
    200208}
    201209
    202 gboolean bitlbee_io_current_client_write( gpointer data, gint fd, b_input_condition cond )
     210gboolean bitlbee_io_current_client_write( GIOChannel *source, GIOCondition condition, gpointer data )
    203211{
    204212        irc_t *irc = data;
     
    207215
    208216        if( irc->sendbuffer == NULL )
    209                 return FALSE;
     217                return( FALSE );
    210218       
    211219        size = strlen( irc->sendbuffer );
     
    231239                        irc_free( irc );
    232240               
    233                 return FALSE;
     241                return( FALSE );
    234242        }
    235243        else
     
    239247                irc->sendbuffer = temp;
    240248               
    241                 return TRUE;
    242         }
    243 }
    244 
    245 static gboolean bitlbee_io_new_client( gpointer data, gint fd, b_input_condition condition )
    246 {
    247         socklen_t size = sizeof( struct sockaddr_in );
     249                return( TRUE );
     250        }
     251}
     252
     253gboolean bitlbee_io_new_client( GIOChannel *source, GIOCondition condition, gpointer data )
     254{
     255        size_t size = sizeof( struct sockaddr_in );
    248256        struct sockaddr_in conn_info;
    249257        int new_socket = accept( global.listen_socket, (struct sockaddr *) &conn_info, &size );
     
    278286                        child->pid = client_pid;
    279287                        child->ipc_fd = fds[0];
    280                         child->ipc_inpa = b_input_add( child->ipc_fd, GAIM_INPUT_READ, ipc_master_read, child );
     288                        child->ipc_inpa = gaim_input_add( child->ipc_fd, GAIM_INPUT_READ, ipc_master_read, child );
    281289                        child_list = g_slist_append( child_list, child );
    282290                       
     
    293301                        /* Close the listening socket, we're a client. */
    294302                        close( global.listen_socket );
    295                         b_event_remove( global.listen_watch_source_id );
     303                        g_source_remove( global.listen_watch_source_id );
    296304                       
    297305                        /* Make the connection. */
     
    300308                        /* We can store the IPC fd there now. */
    301309                        global.listen_socket = fds[1];
    302                         global.listen_watch_source_id = b_input_add( fds[1], GAIM_INPUT_READ, ipc_child_read, irc );
     310                        global.listen_watch_source_id = gaim_input_add( fds[1], GAIM_INPUT_READ, ipc_child_read, irc );
    303311                       
    304312                        close( fds[0] );
     
    316324}
    317325
    318 gboolean bitlbee_shutdown( gpointer data, gint fd, b_input_condition cond )
     326void bitlbee_shutdown( gpointer data )
    319327{
    320328        /* Try to save data for all active connections (if desired). */
     
    323331       
    324332        /* We'll only reach this point when not running in inetd mode: */
    325         b_main_quit();
    326        
    327         return FALSE;
    328 }
     333        g_main_quit( global.loop );
     334}
  • bitlbee.h

    r5898ef8 r79e826a  
    5858/* The following functions should not be used if we want to maintain Windows compatibility... */
    5959#undef free
    60 #define free            __PLEASE_USE_THE_GLIB_MEMORY_ALLOCATION_SYSTEM__
     60#define free            __PLEASE_USE_THE_GLIB_MEMORY_ALLOCATION_SYSTEM_INSTEAD__
    6161#undef malloc
    62 #define malloc          __PLEASE_USE_THE_GLIB_MEMORY_ALLOCATION_SYSTEM__
     62#define malloc          __PLEASE_USE_THE_GLIB_MEMORY_ALLOCATION_SYSTEM_INSTEAD__
    6363#undef calloc
    64 #define calloc          __PLEASE_USE_THE_GLIB_MEMORY_ALLOCATION_SYSTEM__
     64#define calloc          __PLEASE_USE_THE_GLIB_MEMORY_ALLOCATION_SYSTEM_INSTEAD__
    6565#undef realloc
    66 #define realloc         __PLEASE_USE_THE_GLIB_MEMORY_ALLOCATION_SYSTEM__
     66#define realloc         __PLEASE_USE_THE_GLIB_MEMORY_ALLOCATION_SYSTEM_INSTEAD__
    6767#undef strdup
    68 #define strdup          __PLEASE_USE_THE_GLIB_STRDUP_FUNCTIONS_SYSTEM__
     68#define strdup          __PLEASE_USE_THE_GLIB_STRDUP_FUNCTIONS_SYSTEM_INSTEAD__
    6969#undef strndup
    70 #define strndup         __PLEASE_USE_THE_GLIB_STRDUP_FUNCTIONS_SYSTEM__
     70#define strndup         __PLEASE_USE_THE_GLIB_STRDUP_FUNCTIONS_SYSTEM_INSTEAD__
    7171#undef snprintf
    72 #define snprintf        __PLEASE_USE_G_SNPRINTF__
     72#define snprintf        __PLEASE_USE_G_SNPRINTF_INSTEAD__
    7373#undef strcasecmp
    74 #define strcasecmp      __PLEASE_USE_G_STRCASECMP__
     74#define strcasecmp      __PLEASE_USE_G_STRCASECMP_INSTEAD__
    7575#undef strncasecmp
    76 #define strncasecmp     __PLEASE_USE_G_STRNCASECMP__
    77 
    78 /* And the following functions shouldn't be used anymore to keep compatibility
    79    with other event handling libs than GLib. */
    80 #undef g_timeout_add
    81 #define g_timeout_add           __PLEASE_USE_B_TIMEOUT_ADD__
    82 #undef g_timeout_add_full
    83 #define g_timeout_add_full      __PLEASE_USE_B_TIMEOUT_ADD__
    84 #undef g_io_add_watch
    85 #define g_io_add_watch          __PLEASE_USE_B_INPUT_ADD__
    86 #undef g_io_add_watch_full
    87 #define g_io_add_watch_full     __PLEASE_USE_B_INPUT_ADD__
    88 #undef g_source_remove
    89 #define g_source_remove         __PLEASE_USE_B_EVENT_REMOVE__
    90 #undef g_source_remove_by_user_data
    91 #define g_source_remove_by_user_data    __PLEASE_USE_B_SOURCE_REMOVE_BY_USER_DATA__
    92 #undef g_main_run
    93 #define g_main_run              __PLEASE_USE_B_MAIN_RUN__
    94 #undef g_main_quit
    95 #define g_main_quit             __PLEASE_USE_B_MAIN_QUIT__
     76#define strncasecmp     __PLEASE_USE_G_STRNCASECMP_INSTEAD__
    9677
    9778#ifndef F_OK
     
    131112#include "sock.h"
    132113#include "util.h"
    133 #include "proxy.h"
    134114
    135115typedef struct global {
     
    141121        GList *storage; /* The first backend in the list will be used for saving */
    142122        char *helpfile;
     123        GMainLoop *loop;
    143124        int restart;
    144125} global_t;
     
    147128int bitlbee_inetd_init( void );
    148129
    149 gboolean bitlbee_io_current_client_read( gpointer data, gint source, b_input_condition cond );
    150 gboolean bitlbee_io_current_client_write( gpointer data, gint source, b_input_condition cond );
     130gboolean bitlbee_io_current_client_read( GIOChannel *source, GIOCondition condition, gpointer data );
     131gboolean bitlbee_io_current_client_write( GIOChannel *source, GIOCondition condition, gpointer data );
    151132
    152133void root_command_string( irc_t *irc, user_t *u, char *command, int flags );
    153134void root_command( irc_t *irc, char *command[] );
    154 gboolean bitlbee_shutdown( gpointer data, gint fd, b_input_condition cond );
     135void bitlbee_shutdown( gpointer data );
    155136
    156137extern global_t global;
  • conf.c

    r5898ef8 r79e826a  
    5555        conf->nofork = 0;
    5656        conf->verbose = 0;
    57         conf->primary_storage = "xml";
     57        conf->primary_storage = "text";
    5858        conf->runmode = RUNMODE_INETD;
    5959        conf->authmode = AUTHMODE_OPEN;
  • configure

    r5898ef8 r79e826a  
    1414datadir='$prefix/share/bitlbee/'
    1515config='/var/lib/bitlbee/'
    16 plugindir='$prefix/lib/bitlbee/'
    17 includedir='$prefix/include/bitlbee/'
    18 libevent='/usr/'
    1916pidfile='/var/run/bitlbee.pid'
    2017ipcsocket='/var/run/bitlbee'
     18plugindir='$prefix/lib/bitlbee'
    2119pcdir='$prefix/lib/pkgconfig'
     20includedir='$prefix/include/bitlbee'
    2221
    2322msn=1
     
    2928strip=1
    3029ipv6=1
    31 
    32 events=glib
    33 ldap=auto
    3430ssl=auto
    3531
     
    6864--ipv6=0/1      IPv6 socket support                     $ipv6
    6965
    70 --ldap=0/1/auto LDAP support                            $ldap
    71 
    72 --events=...    Event handler (glib, libevent)          $events
    7366--ssl=...       SSL library to use (gnutls, nss, openssl, bogus, auto)
    7467                                                        $ssl
     
    8780config=`eval echo "$config/" | sed 's/\/\{1,\}/\//g'`
    8881plugindir=`eval echo "$plugindir/" | sed 's/\/\{1,\}/\//g'`
    89 includedir=`eval echo "$includedir"/ | sed 's/\/\{1,\}/\//g'`
    90 libevent=`eval echo "$libevent"/ | sed 's/\/\{1,\}/\//g'`
    91 
    9282pidfile=`eval echo "$pidfile" | sed 's/\/\{1,\}/\//g'`
    9383ipcsocket=`eval echo "$ipcsocket" | sed 's/\/\{1,\}/\//g'`
     84includedir=`eval echo "$includedir" | sed 's/\/\{1,\}/\//g'`
    9485pcdir=`eval echo "$pcdir" | sed 's/\/\{1,\}/\//g'`
    9586
     
    149140
    150141if [ -n "$CC" ]; then
    151         CC=$CC
     142        echo "CC=$CC" >> Makefile.settings;
    152143elif type gcc > /dev/null 2> /dev/null; then
    153         CC=gcc
     144        echo "CC=gcc" >> Makefile.settings;
    154145elif type cc > /dev/null 2> /dev/null; then
    155         CC=cc
     146        echo "CC=cc" >> Makefile.settings;
    156147else
    157148        echo 'Cannot find a C compiler, aborting.'
    158149        exit 1;
    159150fi
    160 
    161 echo "CC=$CC" >> Makefile.settings;
    162151
    163152if [ -n "$LD" ]; then
     
    183172        exit 1;
    184173fi
    185 
    186 if [ "$events" = "libevent" ]; then
    187         if ! [ -e "${libevent}include/event.h" ]; then
    188                 echo
    189                 echo 'Warning: Could not find event.h, you might have to install it and/or specify'
    190                 echo 'its location using the --libevent= argument. (Example: If event.h is in'
    191                 echo '/usr/local/include and binaries are in /usr/local/lib: --libevent=/usr/local)'
    192         fi
    193        
    194         echo '#define EVENTS_LIBEVENT' >> config.h
    195         cat <<EOF>>Makefile.settings
    196 EFLAGS+=-levent -L${libevent}lib
    197 CFLAGS+=-I${libevent}include
    198 EOF
    199 elif [ "$events" = "glib" ]; then
    200         ## We already use glib anyway, so this is all we need (and in fact not even this, but just to be sure...):
    201         echo '#define EVENTS_GLIB' >> config.h
    202 else
    203         echo
    204         echo 'ERROR: Unknown event handler specified.'
    205         exit 1
    206 fi
    207 echo 'EVENT_HANDLER=events_'$events'.o' >> Makefile.settings
    208174
    209175detect_gnutls()
     
    235201                ret=0;
    236202        fi;
    237 }
    238 
    239 detect_ldap()
    240 {
    241         TMPFILE=`mktemp`
    242         if $CC -o $TMPFILE -shared -lldap 2>/dev/null >/dev/null; then
    243                 cat<<EOF>>Makefile.settings
    244 EFLAGS+=-lldap
    245 CFLAGS+=
    246 EOF
    247                 ldap=1
    248                 rm -f $TMPFILE
    249                 ret=1
    250         else
    251                 ldap=0
    252                 ret=0
    253         fi
    254203}
    255204
     
    314263fi
    315264
    316 if [ "$ldap" = "auto" ]; then
    317         detect_ldap
    318 fi
    319 
    320 if [ "$ldap" = 0 ]; then
    321         echo "LDAP_OBJ=\# no ldap" >> Makefile.settings
    322         echo "#undef WITH_LDAP" >> config.h
    323 elif [ "$ldap" = 1 ]; then
    324         echo "#define WITH_LDAP 1" >> config.h
    325         echo "LDAP_OBJ=storage_ldap.o" >> Makefile.settings
    326 fi
    327 
    328265if [ "$strip" = 0 ]; then
    329266        echo "STRIP=\# skip strip" >> Makefile.settings;
     
    464401fi
    465402
    466 echo '  Using event handler: '$events;
    467 echo '  Using SSL library: '$ssl;
     403if [ "$msn" = "1" ]; then
     404        echo '  Using SSL library: '$ssl;
     405fi
    468406
    469407#if [ "$flood" = "0" ]; then
     
    478416        echo '  Building without IM-protocol support. We wish you a lot of fun...';
    479417fi
    480 
    481 if [ "$ldap" = "0" ]; then
    482         echo "  LDAP storage backend disabled."
    483 else
    484         echo "  LDAP storage backend enabled."
    485 fi
  • ipc.c

    r5898ef8 r79e826a  
    6060                ipc_to_children_str( "DIE\r\n" );
    6161       
    62         bitlbee_shutdown( NULL, -1, 0 );
     62        bitlbee_shutdown( NULL );
    6363}
    6464
     
    9191       
    9292        global.restart = -1;
    93         bitlbee_shutdown( NULL, -1, 0 );
     93        bitlbee_shutdown( NULL );
    9494}
    9595
     
    115115static void ipc_child_cmd_wallops( irc_t *irc, char **cmd )
    116116{
    117         if( !( irc->status & USTATUS_LOGGED_IN ) )
     117        if( ! irc->status & USTATUS_LOGGED_IN )
    118118                return;
    119119       
     
    124124static void ipc_child_cmd_lilo( irc_t *irc, char **cmd )
    125125{
    126         if( !( irc->status & USTATUS_LOGGED_IN ) )
     126        if( ! irc->status & USTATUS_LOGGED_IN )
    127127                return;
    128128       
     
    133133static void ipc_child_cmd_opermsg( irc_t *irc, char **cmd )
    134134{
    135         if( !( irc->status & USTATUS_LOGGED_IN ) )
     135        if( ! irc->status & USTATUS_LOGGED_IN )
    136136                return;
    137137       
     
    154154static void ipc_child_cmd_kill( irc_t *irc, char **cmd )
    155155{
    156         if( !( irc->status & USTATUS_LOGGED_IN ) )
     156        if( ! irc->status & USTATUS_LOGGED_IN )
    157157                return;
    158158       
     
    166166static void ipc_child_cmd_hello( irc_t *irc, char **cmd )
    167167{
    168         if( !( irc->status & USTATUS_LOGGED_IN ) )
     168        if( ! irc->status & USTATUS_LOGGED_IN )
    169169                ipc_to_master_str( "HELLO\r\n" );
    170170        else
     
    246246}
    247247
    248 gboolean ipc_master_read( gpointer data, gint source, b_input_condition cond )
     248void ipc_master_read( gpointer data, gint source, GaimInputCondition cond )
    249249{
    250250        char *buf, **cmd;
     
    272272                }
    273273        }
    274        
    275         return TRUE;
    276 }
    277 
    278 gboolean ipc_child_read( gpointer data, gint source, b_input_condition cond )
     274}
     275
     276void ipc_child_read( gpointer data, gint source, GaimInputCondition cond )
    279277{
    280278        char *buf, **cmd;
     
    288286        else
    289287        {
    290                 b_event_remove( global.listen_watch_source_id );
     288                gaim_input_remove( global.listen_watch_source_id );
    291289                close( global.listen_socket );
    292290               
    293291                global.listen_socket = -1;
    294292        }
    295        
    296         return TRUE;
    297293}
    298294
     
    401397void ipc_master_free_one( struct bitlbee_child *c )
    402398{
    403         b_event_remove( c->ipc_inpa );
     399        gaim_input_remove( c->ipc_inpa );
    404400        closesocket( c->ipc_fd );
    405401       
     
    467463
    468464
    469 static gboolean new_ipc_client( gpointer data, gint serversock, b_input_condition cond )
     465static gboolean new_ipc_client (GIOChannel *gio, GIOCondition cond, gpointer data)
    470466{
    471467        struct bitlbee_child *child = g_new0( struct bitlbee_child, 1 );
    472        
    473         child->ipc_fd = accept( serversock, NULL, 0 );
    474        
    475         if( child->ipc_fd == -1 )
    476         {
     468        int serversock;
     469
     470        serversock = g_io_channel_unix_get_fd(gio);
     471
     472        child->ipc_fd = accept(serversock, NULL, 0);
     473
     474        if (child->ipc_fd == -1) {
    477475                log_message( LOGLVL_WARNING, "Unable to accept connection on UNIX domain socket: %s", strerror(errno) );
    478476                return TRUE;
    479477        }
    480478               
    481         child->ipc_inpa = b_input_add( child->ipc_fd, GAIM_INPUT_READ, ipc_master_read, child );
    482        
     479        child->ipc_inpa = gaim_input_add( child->ipc_fd, GAIM_INPUT_READ, ipc_master_read, child );
     480               
    483481        child_list = g_slist_append( child_list, child );
    484        
     482
    485483        return TRUE;
    486484}
     
    491489        struct sockaddr_un un_addr;
    492490        int serversock;
     491        GIOChannel *gio;
    493492
    494493        /* Clean up old socket files that were hanging around.. */
     
    518517        }
    519518       
    520         b_input_add( serversock, GAIM_INPUT_READ, new_ipc_client, NULL );
    521        
     519        gio = g_io_channel_unix_new(serversock);
     520       
     521        if (gio == NULL) {
     522                log_message( LOGLVL_WARNING, "Unable to create IO channel for unix socket" );
     523                return 0;
     524        }
     525
     526        g_io_add_watch(gio, G_IO_IN, new_ipc_client, NULL);
    522527        return 1;
    523528}
     
    558563                        return 0;
    559564                }
    560                 child->ipc_inpa = b_input_add( child->ipc_fd, GAIM_INPUT_READ, ipc_master_read, child );
     565                child->ipc_inpa = gaim_input_add( child->ipc_fd, GAIM_INPUT_READ, ipc_master_read, child );
    561566               
    562567                child_list = g_slist_append( child_list, child );
  • ipc.h

    r5898ef8 r79e826a  
    4040
    4141
    42 gboolean ipc_master_read( gpointer data, gint source, b_input_condition cond );
    43 gboolean ipc_child_read( gpointer data, gint source, b_input_condition cond );
     42void ipc_master_read( gpointer data, gint source, GaimInputCondition cond );
     43void ipc_child_read( gpointer data, gint source, GaimInputCondition cond );
    4444
    4545void ipc_master_free_one( struct bitlbee_child *child );
  • irc.c

    r5898ef8 r79e826a  
    2929#include "ipc.h"
    3030
    31 static gboolean irc_userping( gpointer _irc, int fd, b_input_condition cond );
     31static gboolean irc_userping( gpointer _irc );
    3232
    3333GSList *irc_connection_list = NULL;
     
    5454       
    5555        irc->fd = fd;
    56         sock_make_nonblocking( irc->fd );
    57        
    58         irc->r_watch_source_id = b_input_add( irc->fd, GAIM_INPUT_READ, bitlbee_io_current_client_read, irc );
     56        irc->io_channel = g_io_channel_unix_new( fd );
     57        g_io_channel_set_encoding (irc->io_channel, NULL, NULL);
     58        g_io_channel_set_buffered (irc->io_channel, FALSE);
     59        g_io_channel_set_flags( irc->io_channel, G_IO_FLAG_NONBLOCK, NULL );
     60        irc->r_watch_source_id = g_io_add_watch( irc->io_channel, G_IO_IN | G_IO_ERR | G_IO_HUP, bitlbee_io_current_client_read, irc );
    5961       
    6062        irc->status = USTATUS_OFFLINE;
     
    114116
    115117        if( global.conf->ping_interval > 0 && global.conf->ping_timeout > 0 )
    116                 irc->ping_source_id = b_timeout_add( global.conf->ping_interval * 1000, irc_userping, irc );
     118                irc->ping_source_id = g_timeout_add( global.conf->ping_interval * 1000, irc_userping, irc );
    117119       
    118120        irc_write( irc, ":%s NOTICE AUTH :%s", irc->myhost, "BitlBee-IRCd initialized, please go on" );
     
    184186                   bitlbee_.._write doesn't do it first. */
    185187               
    186                 b_event_remove( irc->r_watch_source_id );
    187                 irc->r_watch_source_id = b_timeout_add( 1000, (b_event_handler) irc_free, irc );
     188                g_source_remove( irc->r_watch_source_id );
     189                irc->r_watch_source_id = g_timeout_add_full( G_PRIORITY_HIGH, 1000, (GSourceFunc) irc_free, irc, NULL );
    188190        }
    189191        else
     
    218220       
    219221        if( irc->ping_source_id > 0 )
    220                 b_event_remove( irc->ping_source_id );
    221         b_event_remove( irc->r_watch_source_id );
     222                g_source_remove( irc->ping_source_id );
     223        g_source_remove( irc->r_watch_source_id );
    222224        if( irc->w_watch_source_id > 0 )
    223                 b_event_remove( irc->w_watch_source_id );
    224        
     225                g_source_remove( irc->w_watch_source_id );
     226       
     227        g_io_channel_unref( irc->io_channel );
    225228        irc_connection_list = g_slist_remove( irc_connection_list, irc );
    226229       
     
    272275                        if(user->host!=user->nick) g_free(user->host);
    273276                        if(user->realname!=user->nick) g_free(user->realname);
    274                         b_event_remove(user->sendbuf_timer);
     277                        gaim_input_remove(user->sendbuf_timer);
    275278                                       
    276279                        usertmp = user;
     
    322325       
    323326        if( global.conf->runmode == RUNMODE_INETD || global.conf->runmode == RUNMODE_FORKDAEMON )
    324                 b_main_quit();
     327                g_main_quit( global.loop );
    325328}
    326329
     
    576579        char line[IRC_MAX_LINE+1], *cs;
    577580               
    578         /* Don't try to write anything new anymore when shutting down. */
    579         if( irc->status & USTATUS_SHUTDOWN )
     581        if( irc->quit )
    580582                return;
    581583       
     
    594596        strcat( line, "\r\n" );
    595597       
    596         if( irc->sendbuffer != NULL )
    597         {
     598        if( irc->sendbuffer != NULL ) {
    598599                size = strlen( irc->sendbuffer ) + strlen( line );
    599600                irc->sendbuffer = g_renew ( char, irc->sendbuffer, size + 1 );
    600601                strcpy( ( irc->sendbuffer + strlen( irc->sendbuffer ) ), line );
    601602        }
    602         else
    603         {
    604                 irc->sendbuffer = g_strdup(line);
    605         }
     603        else
     604                irc->sendbuffer = g_strdup(line);       
    606605       
    607606        if( irc->w_watch_source_id == 0 )
    608607        {
    609                 /* If the buffer is empty we can probably write, so call the write event handler
    610                    immediately. If it returns TRUE, it should be called again, so add the event to
    611                    the queue. If it's FALSE, we emptied the buffer and saved ourselves some work
    612                    in the event queue. */
    613                 if( bitlbee_io_current_client_write( irc, irc->fd, GAIM_INPUT_WRITE ) )
    614                         irc->w_watch_source_id = b_input_add( irc->fd, GAIM_INPUT_WRITE, bitlbee_io_current_client_write, irc );
     608                irc->w_watch_source_id = g_io_add_watch( irc->io_channel, G_IO_OUT, bitlbee_io_current_client_write, irc );
    615609        }
    616610       
     
    638632                if( now )
    639633                {
    640                         bitlbee_io_current_client_write( irc, irc->fd, GAIM_INPUT_WRITE );
     634                        bitlbee_io_current_client_write( irc->io_channel, G_IO_OUT, irc );
    641635                }
    642636                temp = temp->next;
     
    707701        if( irc->user && irc->nick )
    708702        {
    709                 if( global.conf->authmode == AUTHMODE_CLOSED && !( irc->status & USTATUS_AUTHORIZED ) )
     703                if( global.conf->authmode == AUTHMODE_CLOSED && ! irc->status & USTATUS_AUTHORIZED )
    710704                {
    711705                        irc_reply( irc, 464, ":This server is password-protected." );
     
    10411035}
    10421036
    1043 static gboolean buddy_send_handler_delayed( gpointer data, gint fd, b_input_condition cond )
     1037gboolean buddy_send_handler_delayed( gpointer data )
    10441038{
    10451039        user_t *u = data;
     
    10721066                {
    10731067                        /* Flush the buffer */
    1074                         b_event_remove( u->sendbuf_timer );
    1075                         buddy_send_handler_delayed( u, -1, 0 );
     1068                        g_source_remove( u->sendbuf_timer );
     1069                        buddy_send_handler_delayed( u );
    10761070                }
    10771071
     
    10971091               
    10981092                if( u->sendbuf_timer > 0 )
    1099                         b_event_remove( u->sendbuf_timer );
    1100                 u->sendbuf_timer = b_timeout_add( delay, buddy_send_handler_delayed, u );
     1093                        g_source_remove( u->sendbuf_timer );
     1094                u->sendbuf_timer = g_timeout_add( delay, buddy_send_handler_delayed, u );
    11011095        }
    11021096        else
     
    11821176   pongs from the user. When not connected yet, we don't ping but drop the
    11831177   connection when the user fails to connect in IRC_LOGIN_TIMEOUT secs. */
    1184 static gboolean irc_userping( gpointer _irc, gint fd, b_input_condition cond )
     1178static gboolean irc_userping( gpointer _irc )
    11851179{
    11861180        irc_t *irc = _irc;
    11871181        int rv = 0;
    11881182       
    1189         if( !( irc->status & USTATUS_LOGGED_IN ) )
     1183        if( ! irc->status & USTATUS_LOGGED_IN )
    11901184        {
    11911185                if( gettime() > ( irc->last_pong + IRC_LOGIN_TIMEOUT ) )
  • irc.h

    r5898ef8 r79e826a  
    6161        char *sendbuffer;
    6262        char *readbuffer;
     63        int quit;
    6364
    6465        int sentbytes;
     
    9293        struct set *set;
    9394
     95        GIOChannel *io_channel;
    9496        gint r_watch_source_id;
    9597        gint w_watch_source_id;
  • irc_commands.c

    r5898ef8 r79e826a  
    614614                                irc_reply( irc, 462, ":Only allowed before logging in" );
    615615                        }
    616                         else if( irc_commands[i].flags & IRC_CMD_LOGGED_IN && !( irc->status & USTATUS_LOGGED_IN ) )
     616                        else if( irc_commands[i].flags & IRC_CMD_LOGGED_IN && ! irc->status & USTATUS_LOGGED_IN )
    617617                        {
    618618                                irc_reply( irc, 451, ":Register first" );
  • protocols/Makefile

    r5898ef8 r79e826a  
    1010
    1111# [SH] Program variables
    12 objects = $(EVENT_HANDLER) http_client.o md5.o nogaim.o proxy.o sha.o $(SSL_CLIENT)
     12objects = http_client.o md5.o nogaim.o proxy.o sha.o $(SSL_CLIENT)
    1313
    1414# [SH] The next two lines should contain the directory name (in $(subdirs))
  • protocols/http_client.c

    r5898ef8 r79e826a  
    3232
    3333
    34 static gboolean http_connected( gpointer data, int source, b_input_condition cond );
    35 static gboolean http_ssl_connected( gpointer data, void *source, b_input_condition cond );
    36 static gboolean http_incoming_data( gpointer data, int source, b_input_condition cond );
     34static void http_connected( gpointer data, int source, GaimInputCondition cond );
     35static void http_ssl_connected( gpointer data, void *source, GaimInputCondition cond );
     36static void http_incoming_data( gpointer data, int source, GaimInputCondition cond );
    3737
    3838
     
    104104/* This one is actually pretty simple... Might get more calls if we can't write
    105105   the whole request at once. */
    106 static gboolean http_connected( gpointer data, int source, b_input_condition cond )
     106static void http_connected( gpointer data, int source, GaimInputCondition cond )
    107107{
    108108        struct http_request *req = data;
     
    113113       
    114114        if( req->inpa > 0 )
    115                 b_event_remove( req->inpa );
     115                gaim_input_remove( req->inpa );
    116116       
    117117        sock_make_nonblocking( req->fd );
     
    148148       
    149149        if( req->bytes_written < req->request_length )
    150                 req->inpa = b_input_add( source,
    151                                          req->ssl ? ssl_getdirection( req->ssl ) : GAIM_INPUT_WRITE,
    152                                          http_connected, req );
    153         else
    154                 req->inpa = b_input_add( source, GAIM_INPUT_READ, http_incoming_data, req );
    155        
    156         return FALSE;
     150                req->inpa = gaim_input_add( source,
     151                                            req->ssl ? ssl_getdirection( req->ssl ) : GAIM_INPUT_WRITE,
     152                                            http_connected, req );
     153        else
     154                req->inpa = gaim_input_add( source, GAIM_INPUT_READ, http_incoming_data, req );
     155       
     156        return;
    157157       
    158158error:
     
    164164        g_free( req );
    165165       
    166         return FALSE;
     166        return;
    167167}
    168168
    169 static gboolean http_ssl_connected( gpointer data, void *source, b_input_condition cond )
     169static void http_ssl_connected( gpointer data, void *source, GaimInputCondition cond )
    170170{
    171171        struct http_request *req = data;
     
    179179}
    180180
    181 static gboolean http_incoming_data( gpointer data, int source, b_input_condition cond )
     181static void http_incoming_data( gpointer data, int source, GaimInputCondition cond )
    182182{
    183183        struct http_request *req = data;
     
    188188       
    189189        if( req->inpa > 0 )
    190                 b_event_remove( req->inpa );
     190                gaim_input_remove( req->inpa );
    191191       
    192192        if( req->ssl )
     
    236236       
    237237        /* There will be more! */
    238         req->inpa = b_input_add( req->fd,
    239                                  req->ssl ? ssl_getdirection( req->ssl ) : GAIM_INPUT_READ,
    240                                  http_incoming_data, req );
    241        
    242         return FALSE;
     238        req->inpa = gaim_input_add( req->fd,
     239                                    req->ssl ? ssl_getdirection( req->ssl ) : GAIM_INPUT_READ,
     240                                    http_incoming_data, req );
     241       
     242        return;
    243243
    244244got_reply:
     
    430430                req->reply_headers = req->reply_body = NULL;
    431431               
    432                 return FALSE;
     432                return;
    433433        }
    434434       
     
    449449        g_free( req->status_string );
    450450        g_free( req );
    451        
    452         return FALSE;
    453451}
  • protocols/jabber/jabber.c

    r5898ef8 r79e826a  
    471471}
    472472
    473 static gboolean jabber_callback(gpointer data, gint source, b_input_condition condition)
     473static void jabber_callback(gpointer data, gint source, GaimInputCondition condition)
    474474{
    475475        struct gaim_connection *gc = (struct gaim_connection *)data;
     
    477477
    478478        gjab_recv(jd->gjc);
    479        
    480         return TRUE;
    481479}
    482480
     
    489487}
    490488
    491 static gboolean gjab_connected(gpointer data, gint source, b_input_condition cond)
     489static void gjab_connected(gpointer data, gint source, GaimInputCondition cond)
    492490{
    493491        xmlnode x;
     
    499497        if (!g_slist_find(get_connections(), gc)) {
    500498                closesocket(source);
    501                 return FALSE;
     499                return;
    502500        }
    503501
     
    510508        if (source == -1) {
    511509                STATE_EVT(JCONN_STATE_OFF)
    512                 return FALSE;
     510                return;
    513511        }
    514512
     
    532530
    533531        gc = GJ_GC(gjc);
    534         gc->inpa = b_input_add(gjc->fd, GAIM_INPUT_READ, jabber_callback, gc);
    535        
    536         return FALSE;
    537 }
    538 
    539 static gboolean gjab_connected_ssl(gpointer data, void *source, b_input_condition cond)
     532        gc->inpa = gaim_input_add(gjc->fd, GAIM_INPUT_READ, jabber_callback, gc);
     533}
     534
     535static void gjab_connected_ssl(gpointer data, void *source, GaimInputCondition cond)
    540536{
    541537        struct gaim_connection *gc = data;
     
    548544        if (source == NULL) {
    549545                STATE_EVT(JCONN_STATE_OFF)
    550                 return FALSE;
     546                return;
    551547        }
    552548       
    553549        if (!g_slist_find(get_connections(), gc)) {
    554550                ssl_disconnect(source);
    555                 return FALSE;
     551                return;
    556552        }
    557553       
    558         return gjab_connected(data, gjc->fd, cond);
     554        gjab_connected(data, gjc->fd, cond);
    559555}
    560556
     
    15471543}
    15481544
    1549 static gboolean jabber_free(gpointer data, gint fd, b_input_condition cond)
     1545static gboolean jabber_free(gpointer data)
    15501546{
    15511547        struct jabber_data *jd = data;
     
    15921588        }
    15931589        if (gc->inpa)
    1594                 b_event_remove(gc->inpa);
     1590                gaim_input_remove(gc->inpa);
    15951591
    15961592        if(jd) {
    1597                 b_timeout_add(50, jabber_free, jd);
     1593                g_timeout_add(50, jabber_free, jd);
    15981594                if(jd->gjc != NULL)
    15991595                        xmlnode_free(jd->gjc->current);
  • protocols/msn/msn.h

    r5898ef8 r79e826a  
    146146
    147147/* ns.c */
    148 gboolean msn_ns_connected( gpointer data, gint source, b_input_condition cond );
     148void msn_ns_connected( gpointer data, gint source, GaimInputCondition cond );
    149149
    150150/* msn_util.c */
     
    173173void msn_sb_to_chat( struct msn_switchboard *sb );
    174174void msn_sb_destroy( struct msn_switchboard *sb );
    175 gboolean msn_sb_connected( gpointer data, gint source, b_input_condition cond );
     175void msn_sb_connected( gpointer data, gint source, GaimInputCondition cond );
  • protocols/msn/ns.c

    r5898ef8 r79e826a  
    3030#include "md5.h"
    3131
    32 static gboolean msn_ns_callback( gpointer data, gint source, b_input_condition cond );
     32static void msn_ns_callback( gpointer data, gint source, GaimInputCondition cond );
    3333static int msn_ns_command( gpointer data, char **cmd, int num_parts );
    3434static int msn_ns_message( gpointer data, char *msg, int msglen, char **cmd, int num_parts );
     
    3636static void msn_auth_got_passport_id( struct passport_reply *rep );
    3737
    38 gboolean msn_ns_connected( gpointer data, gint source, b_input_condition cond )
     38void msn_ns_connected( gpointer data, gint source, GaimInputCondition cond )
    3939{
    4040        struct gaim_connection *gc = data;
     
    4343       
    4444        if( !g_slist_find( msn_connections, gc ) )
    45                 return FALSE;
     45                return;
    4646       
    4747        if( source == -1 )
     
    4949                hide_login_progress( gc, "Could not connect to server" );
    5050                signoff( gc );
    51                 return FALSE;
     51                return;
    5252        }
    5353       
     
    7575        if( msn_write( gc, s, strlen( s ) ) )
    7676        {
    77                 gc->inpa = b_input_add( md->fd, GAIM_INPUT_READ, msn_ns_callback, gc );
     77                gc->inpa = gaim_input_add( md->fd, GAIM_INPUT_READ, msn_ns_callback, gc );
    7878                set_login_progress( gc, 1, "Connected to server, waiting for reply" );
    7979        }
    80        
    81         return FALSE;
    8280}
    8381
    84 static gboolean msn_ns_callback( gpointer data, gint source, b_input_condition cond )
     82void msn_ns_callback( gpointer data, gint source, GaimInputCondition cond )
    8583{
    8684        struct gaim_connection *gc = data;
     
    9189                hide_login_progress( gc, "Error while reading from server" );
    9290                signoff( gc );
    93                
    94                 return FALSE;
    95         }
    96         else
    97                 return TRUE;
     91        }
    9892}
    9993
     
    136130                if( num_parts == 6 && strcmp( cmd[2], "NS" ) == 0 )
    137131                {
    138                         b_event_remove( gc->inpa );
     132                        gaim_input_remove( gc->inpa );
    139133                        gc->inpa = 0;
    140134                        closesocket( md->fd );
  • protocols/msn/sb.c

    r5898ef8 r79e826a  
    3030#include "md5.h"
    3131
    32 static gboolean msn_sb_callback( gpointer data, gint source, b_input_condition cond );
     32static void msn_sb_callback( gpointer data, gint source, GaimInputCondition cond );
    3333static int msn_sb_command( gpointer data, char **cmd, int num_parts );
    3434static int msn_sb_message( gpointer data, char *msg, int msglen, char **cmd, int num_parts );
     
    237237        }
    238238       
    239         if( sb->inp ) b_event_remove( sb->inp );
     239        if( sb->inp ) gaim_input_remove( sb->inp );
    240240        closesocket( sb->fd );
    241241       
     
    245245}
    246246
    247 gboolean msn_sb_connected( gpointer data, gint source, b_input_condition cond )
     247void msn_sb_connected( gpointer data, gint source, GaimInputCondition cond )
    248248{
    249249        struct msn_switchboard *sb = data;
     
    254254        /* Are we still alive? */
    255255        if( !g_slist_find( msn_switchboards, sb ) )
    256                 return FALSE;
     256                return;
    257257       
    258258        gc = sb->gc;
     
    263263                debug( "ERROR %d while connecting to switchboard server", 1 );
    264264                msn_sb_destroy( sb );
    265                 return FALSE;
     265                return;
    266266        }
    267267       
     
    280280       
    281281        if( msn_sb_write( sb, buf, strlen( buf ) ) )
    282                 sb->inp = b_input_add( sb->fd, GAIM_INPUT_READ, msn_sb_callback, sb );
     282                sb->inp = gaim_input_add( sb->fd, GAIM_INPUT_READ, msn_sb_callback, sb );
    283283        else
    284284                debug( "ERROR %d while connecting to switchboard server", 2 );
    285        
    286         return FALSE;
    287 }
    288 
    289 static gboolean msn_sb_callback( gpointer data, gint source, b_input_condition cond )
     285}
     286
     287static void msn_sb_callback( gpointer data, gint source, GaimInputCondition cond )
    290288{
    291289        struct msn_switchboard *sb = data;
     
    295293                debug( "ERROR: Switchboard died" );
    296294                msn_sb_destroy( sb );
    297                
    298                 return FALSE;
    299         }
    300         else
    301                 return TRUE;
     295        }
    302296}
    303297
  • protocols/nogaim.c

    r5898ef8 r79e826a  
    22  * BitlBee -- An IRC to other IM-networks gateway                     *
    33  *                                                                    *
    4   * Copyright 2002-2006 Wilmer van der Gaast and others                *
     4  * Copyright 2002-2004 Wilmer van der Gaast and others                *
    55  \********************************************************************/
    66
     
    1313 * from scratch for BitlBee and doesn't contain any code from Gaim anymore
    1414 * (except for the function names).
     15 *
     16 * Copyright 2002-2006 Wilmer van der Gaast <wilmer@gaast.net> and others
    1517 */
    1618
     
    158160         * This fixes daemon mode breakage where IRC doesn't point to the currently active connection.
    159161         */
    160         gc->irc = user->irc;
     162        gc->irc=user->irc;
    161163       
    162164        connections = g_slist_append( connections, gc );
     
    238240}
    239241
    240 static gboolean send_keepalive( gpointer d, gint fd, b_input_condition cond )
     242static gboolean send_keepalive( gpointer d )
    241243{
    242244        struct gaim_connection *gc = d;
     
    262264        serv_got_crap( gc, "Logged in" );
    263265       
    264         gc->keepalive = b_timeout_add( 60000, send_keepalive, gc );
     266        gc->keepalive = g_timeout_add( 60000, send_keepalive, gc );
    265267        gc->flags |= OPT_LOGGED_IN;
    266268       
     
    270272}
    271273
    272 gboolean auto_reconnect( gpointer data, gint fd, b_input_condition cond )
     274gboolean auto_reconnect( gpointer data )
    273275{
    274276        account_t *a = data;
     
    282284void cancel_auto_reconnect( account_t *a )
    283285{
    284         /* while( b_event_remove_by_data( (gpointer) a ) ); */
    285         b_event_remove( a->reconnect );
     286        while( g_source_remove_by_user_data( (gpointer) a ) );
    286287        a->reconnect = 0;
    287288}
     
    296297        gc->flags |= OPT_LOGGING_OUT;
    297298       
    298         b_event_remove( gc->keepalive );
     299        gaim_input_remove( gc->keepalive );
    299300        gc->keepalive = 0;
    300301        gc->prpl->close( gc );
    301         b_event_remove( gc->inpa );
     302        gaim_input_remove( gc->inpa );
    302303       
    303304        while( u )
     
    326327        {
    327328                int delay = set_getint( irc, "auto_reconnect_delay" );
    328                
    329329                serv_got_crap( gc, "Reconnecting in %d seconds..", delay );
    330                 a->reconnect = b_timeout_add( delay * 1000, auto_reconnect, a );
     330               
     331                a->reconnect = 1;
     332                g_timeout_add( delay * 1000, auto_reconnect, a );
    331333        }
    332334       
  • protocols/nogaim.h

    r5898ef8 r79e826a  
    208208char *set_eval_away_devoice( irc_t *irc, set_t *set, char *value );
    209209
    210 gboolean auto_reconnect( gpointer data, gint fd, b_input_condition cond );
     210gboolean auto_reconnect( gpointer data );
    211211void cancel_auto_reconnect( struct account *a );
    212212
  • protocols/oscar/oscar.c

    r5898ef8 r79e826a  
    255255static int msgerrreasonlen = 25;
    256256
    257 static gboolean oscar_callback(gpointer data, gint source,
    258                                 b_input_condition condition) {
     257static void oscar_callback(gpointer data, gint source,
     258                                GaimInputCondition condition) {
    259259        aim_conn_t *conn = (aim_conn_t *)data;
    260260        aim_session_t *sess = aim_conn_getsess(conn);
     
    264264        if (!gc) {
    265265                /* gc is null. we return, else we seg SIGSEG on next line. */
    266                 return FALSE;
     266                return;
    267267        }
    268268     
     
    270270                /* oh boy. this is probably bad. i guess the only thing we
    271271                 * can really do is return? */
    272                 return FALSE;
     272                return;
    273273        }
    274274
     
    290290                                c->conn = NULL;
    291291                                if (c->inpa > 0)
    292                                         b_event_remove(c->inpa);
     292                                        gaim_input_remove(c->inpa);
    293293                                c->inpa = 0;
    294294                                c->fd = -1;
     
    298298                        } else if (conn->type == AIM_CONN_TYPE_CHATNAV) {
    299299                                if (odata->cnpa > 0)
    300                                         b_event_remove(odata->cnpa);
     300                                        gaim_input_remove(odata->cnpa);
    301301                                odata->cnpa = 0;
    302302                                while (odata->create_rooms) {
     
    312312                        } else if (conn->type == AIM_CONN_TYPE_AUTH) {
    313313                                if (odata->paspa > 0)
    314                                         b_event_remove(odata->paspa);
     314                                        gaim_input_remove(odata->paspa);
    315315                                odata->paspa = 0;
    316316                                aim_conn_kill(odata->sess, &conn);
     
    319319                        }
    320320                }
    321         } else {
    322                 /* WTF??? */
    323                 return FALSE;
    324         }
    325                
    326         return TRUE;
    327 }
    328 
    329 static gboolean oscar_login_connect(gpointer data, gint source, b_input_condition cond)
     321        }
     322}
     323
     324static void oscar_login_connect(gpointer data, gint source, GaimInputCondition cond)
    330325{
    331326        struct gaim_connection *gc = data;
     
    336331        if (!g_slist_find(get_connections(), gc)) {
    337332                closesocket(source);
    338                 return FALSE;
     333                return;
    339334        }
    340335
     
    346341                hide_login_progress(gc, _("Couldn't connect to host"));
    347342                signoff(gc);
    348                 return FALSE;
     343                return;
    349344        }
    350345
    351346        aim_conn_completeconnect(sess, conn);
    352         gc->inpa = b_input_add(conn->fd, GAIM_INPUT_READ,
     347        gc->inpa = gaim_input_add(conn->fd, GAIM_INPUT_READ,
    353348                        oscar_callback, conn);
    354        
    355         return FALSE;
    356349}
    357350
     
    421414                struct chat_connection *n = odata->oscar_chats->data;
    422415                if (n->inpa > 0)
    423                         b_event_remove(n->inpa);
     416                        gaim_input_remove(n->inpa);
    424417                g_free(n->name);
    425418                g_free(n->show);
     
    440433                g_free(odata->oldp);
    441434        if (gc->inpa > 0)
    442                 b_event_remove(gc->inpa);
     435                gaim_input_remove(gc->inpa);
    443436        if (odata->cnpa > 0)
    444                 b_event_remove(odata->cnpa);
     437                gaim_input_remove(odata->cnpa);
    445438        if (odata->paspa > 0)
    446                 b_event_remove(odata->paspa);
     439                gaim_input_remove(odata->paspa);
    447440        aim_session_kill(odata->sess);
    448441        g_free(odata->sess);
     
    452445}
    453446
    454 static gboolean oscar_bos_connect(gpointer data, gint source, b_input_condition cond) {
     447static void oscar_bos_connect(gpointer data, gint source, GaimInputCondition cond) {
    455448        struct gaim_connection *gc = data;
    456449        struct oscar_data *odata;
     
    460453        if (!g_slist_find(get_connections(), gc)) {
    461454                closesocket(source);
    462                 return FALSE;
     455                return;
    463456        }
    464457
     
    470463                hide_login_progress(gc, _("Could Not Connect"));
    471464                signoff(gc);
    472                 return FALSE;
     465                return;
    473466        }
    474467
    475468        aim_conn_completeconnect(sess, bosconn);
    476         gc->inpa = b_input_add(bosconn->fd, GAIM_INPUT_READ,
     469        gc->inpa = gaim_input_add(bosconn->fd, GAIM_INPUT_READ,
    477470                        oscar_callback, bosconn);
    478471        set_login_progress(gc, 4, _("Connection established, cookie sent"));
    479        
    480         return FALSE;
    481472}
    482473
     
    581572        }
    582573        aim_sendcookie(sess, bosconn, info->cookie);
    583         b_event_remove(gc->inpa);
     574        gaim_input_remove(gc->inpa);
    584575
    585576        return 1;
     
    596587};
    597588
    598 static gboolean damn_you(gpointer data, gint source, b_input_condition c)
     589static void damn_you(gpointer data, gint source, GaimInputCondition c)
    599590{
    600591        struct pieceofcrap *pos = data;
     
    616607                do_error_dialog(pos->gc, "Gaim was unable to get a valid hash for logging into AIM."
    617608                                " You may be disconnected shortly.", "Login Error");
    618                 b_event_remove(pos->inpa);
     609                gaim_input_remove(pos->inpa);
    619610                closesocket(pos->fd);
    620611                g_free(pos);
    621                 return FALSE;
     612                return;
    622613        }
    623614        /* [WvG] Wheeeee! Who needs error checking anyway? ;-) */
    624615        read(pos->fd, m, 16);
    625616        m[16] = '\0';
    626         b_event_remove(pos->inpa);
     617        gaim_input_remove(pos->inpa);
    627618        closesocket(pos->fd);
    628619        aim_sendmemblock(od->sess, pos->conn, 0, 16, m, AIM_SENDMEMBLOCK_FLAG_ISHASH);
    629620        g_free(pos);
    630        
    631         return FALSE;
    632 }
    633 
    634 static gboolean straight_to_hell(gpointer data, gint source, b_input_condition cond) {
     621}
     622
     623static void straight_to_hell(gpointer data, gint source, GaimInputCondition cond) {
    635624        struct pieceofcrap *pos = data;
    636625        char buf[BUF_LONG];
     
    642631                        g_free(pos->modname);
    643632                g_free(pos);
    644                 return FALSE;
     633                return;
    645634        }
    646635
     
    651640        if (pos->modname)
    652641                g_free(pos->modname);
    653         pos->inpa = b_input_add(pos->fd, GAIM_INPUT_READ, damn_you, pos);
    654         return FALSE;
     642        pos->inpa = gaim_input_add(pos->fd, GAIM_INPUT_READ, damn_you, pos);
     643        return;
    655644}
    656645
     
    774763}
    775764
    776 static gboolean oscar_chatnav_connect(gpointer data, gint source, b_input_condition cond) {
     765static void oscar_chatnav_connect(gpointer data, gint source, GaimInputCondition cond) {
    777766        struct gaim_connection *gc = data;
    778767        struct oscar_data *odata;
     
    782771        if (!g_slist_find(get_connections(), gc)) {
    783772                closesocket(source);
    784                 return FALSE;
     773                return;
    785774        }
    786775
     
    791780        if (source < 0) {
    792781                aim_conn_kill(sess, &tstconn);
    793                 return FALSE;
     782                return;
    794783        }
    795784
    796785        aim_conn_completeconnect(sess, tstconn);
    797         odata->cnpa = b_input_add(tstconn->fd, GAIM_INPUT_READ,
     786        odata->cnpa = gaim_input_add(tstconn->fd, GAIM_INPUT_READ,
    798787                                        oscar_callback, tstconn);
    799        
    800         return FALSE;
    801 }
    802 
    803 static gboolean oscar_auth_connect(gpointer data, gint source, b_input_condition cond)
     788}
     789
     790static void oscar_auth_connect(gpointer data, gint source, GaimInputCondition cond)
    804791{
    805792        struct gaim_connection *gc = data;
     
    810797        if (!g_slist_find(get_connections(), gc)) {
    811798                closesocket(source);
    812                 return FALSE;
     799                return;
    813800        }
    814801
     
    819806        if (source < 0) {
    820807                aim_conn_kill(sess, &tstconn);
    821                 return FALSE;
     808                return;
    822809        }
    823810
    824811        aim_conn_completeconnect(sess, tstconn);
    825         odata->paspa = b_input_add(tstconn->fd, GAIM_INPUT_READ,
     812        odata->paspa = gaim_input_add(tstconn->fd, GAIM_INPUT_READ,
    826813                                oscar_callback, tstconn);
    827        
    828         return FALSE;
    829 }
    830 
    831 static gboolean oscar_chat_connect(gpointer data, gint source, b_input_condition cond)
     814}
     815
     816static void oscar_chat_connect(gpointer data, gint source, GaimInputCondition cond)
    832817{
    833818        struct chat_connection *ccon = data;
     
    842827                g_free(ccon->name);
    843828                g_free(ccon);
    844                 return FALSE;
     829                return;
    845830        }
    846831
     
    854839                g_free(ccon->name);
    855840                g_free(ccon);
    856                 return FALSE;
     841                return;
    857842        }
    858843
    859844        aim_conn_completeconnect(sess, ccon->conn);
    860         ccon->inpa = b_input_add(tstconn->fd,
     845        ccon->inpa = gaim_input_add(tstconn->fd,
    861846                        GAIM_INPUT_READ,
    862847                        oscar_callback, tstconn);
    863848        odata->oscar_chats = g_slist_append(odata->oscar_chats, ccon);
    864        
    865         return FALSE;
    866849}
    867850
     
    25822565        od->oscar_chats = g_slist_remove(od->oscar_chats, cc);
    25832566        if (cc->inpa > 0)
    2584                 b_event_remove(cc->inpa);
     2567                gaim_input_remove(cc->inpa);
    25852568        aim_conn_kill(od->sess, &cc->conn);
    25862569        g_free(cc->name);
  • protocols/proxy.c

    r5898ef8 r79e826a  
    2121 */
    2222
     23/* this is a little piece of code to handle proxy connection */
     24/* it is intended to : 1st handle http proxy, using the CONNECT command
     25 , 2nd provide an easy way to add socks support */
     26
    2327#define BITLBEE_CORE
    2428#include <stdio.h>
     
    4246#include "proxy.h"
    4347
     48#define GAIM_READ_COND  (G_IO_IN | G_IO_HUP | G_IO_ERR)
     49#define GAIM_WRITE_COND (G_IO_OUT | G_IO_HUP | G_IO_ERR | G_IO_NVAL)
     50#define GAIM_ERR_COND   (G_IO_HUP | G_IO_ERR | G_IO_NVAL)
     51
    4452char proxyhost[128] = "";
    4553int proxyport = 0;
     
    4957
    5058struct PHB {
    51         b_event_handler func, proxy_func;
     59        GaimInputFunction func, proxy_func;
    5260        gpointer data, proxy_data;
    5361        char *host;
     
    5664        gint inpa;
    5765};
     66
     67typedef struct _GaimIOClosure {
     68        GaimInputFunction function;
     69        guint result;
     70        gpointer data;
     71} GaimIOClosure;
    5872
    5973
     
    7892}
    7993
    80 static gboolean gaim_io_connected(gpointer data, gint source, b_input_condition cond)
     94static void gaim_io_destroy(gpointer data)
     95{
     96        g_free(data);
     97}
     98
     99static gboolean gaim_io_invoke(GIOChannel *source, GIOCondition condition, gpointer data)
     100{
     101        GaimIOClosure *closure = data;
     102        GaimInputCondition gaim_cond = 0;
     103
     104        if (condition & GAIM_READ_COND)
     105                gaim_cond |= GAIM_INPUT_READ;
     106        if (condition & GAIM_WRITE_COND)
     107                gaim_cond |= GAIM_INPUT_WRITE;
     108
     109        closure->function(closure->data, g_io_channel_unix_get_fd(source), gaim_cond);
     110
     111        return TRUE;
     112}
     113
     114static void gaim_io_connected(gpointer data, gint source, GaimInputCondition cond)
    81115{
    82116        struct PHB *phb = data;
     
    88122        if (getsockopt(source, SOL_SOCKET, SO_ERROR, &error, &len) < 0) {
    89123                closesocket(source);
    90                 b_event_remove(phb->inpa);
     124                gaim_input_remove(phb->inpa);
    91125                if( phb->proxy_func )
    92126                        phb->proxy_func(phb->proxy_data, -1, GAIM_INPUT_READ);
     
    95129                        g_free(phb);
    96130                }
    97                 return FALSE;
     131                return;
    98132        }
    99133#endif
    100134        sock_make_blocking(source);
    101         b_event_remove(phb->inpa);
     135        gaim_input_remove(phb->inpa);
    102136        if( phb->proxy_func )
    103137                phb->proxy_func(phb->proxy_data, source, GAIM_INPUT_READ);
     
    106140                g_free(phb);
    107141        }
    108        
    109         return FALSE;
    110142}
    111143
     
    126158
    127159        sock_make_nonblocking(fd);
    128        
    129         event_debug("proxy_connect_none( \"%s\", %d ) = %d\n", host, port, fd);
    130        
     160
    131161        if (connect(fd, (struct sockaddr *)sin, sizeof(*sin)) < 0) {
    132162                if (sockerr_again()) {
    133                         phb->inpa = b_input_add(fd, GAIM_INPUT_WRITE, gaim_io_connected, phb);
     163                        phb->inpa = gaim_input_add(fd, GAIM_INPUT_WRITE, gaim_io_connected, phb);
    134164                        phb->fd = fd;
    135165                } else {
     
    149179#define HTTP_GOODSTRING2 "HTTP/1.1 200 Connection established"
    150180
    151 static gboolean http_canread(gpointer data, gint source, b_input_condition cond)
     181static void http_canread(gpointer data, gint source, GaimInputCondition cond)
    152182{
    153183        int nlc = 0;
     
    156186        char inputline[8192];
    157187
    158         b_event_remove(phb->inpa);
     188        gaim_input_remove(phb->inpa);
    159189
    160190        while ((pos < sizeof(inputline)-1) && (nlc != 2) && (read(source, &inputline[pos++], 1) == 1)) {
     
    171201                g_free(phb->host);
    172202                g_free(phb);
    173                 return FALSE;
     203                return;
    174204        }
    175205
     
    178208        g_free(phb->host);
    179209        g_free(phb);
    180        
    181         return FALSE;
    182 }
    183 
    184 static gboolean http_canwrite(gpointer data, gint source, b_input_condition cond)
     210        return;
     211}
     212
     213static void http_canwrite(gpointer data, gint source, GaimInputCondition cond)
    185214{
    186215        char cmd[384];
     
    189218        int error = ETIMEDOUT;
    190219        if (phb->inpa > 0)
    191                 b_event_remove(phb->inpa);
     220                gaim_input_remove(phb->inpa);
    192221        len = sizeof(error);
    193222        if (getsockopt(source, SOL_SOCKET, SO_ERROR, &error, &len) < 0) {
     
    196225                g_free(phb->host);
    197226                g_free(phb);
    198                 return FALSE;
     227                return;
    199228        }
    200229        sock_make_blocking(source);
     
    207236                g_free(phb->host);
    208237                g_free(phb);
    209                 return FALSE;
     238                return;
    210239        }
    211240
     
    222251                        g_free(phb->host);
    223252                        g_free(phb);
    224                         return FALSE;
     253                        return;
    225254                }
    226255        }
     
    232261                g_free(phb->host);
    233262                g_free(phb);
    234                 return FALSE;
    235         }
    236 
    237         phb->inpa = b_input_add(source, GAIM_INPUT_READ, http_canread, phb);
    238        
    239         return FALSE;
     263                return;
     264        }
     265
     266        phb->inpa = gaim_input_add(source, GAIM_INPUT_READ, http_canread, phb);
    240267}
    241268
     
    253280/* Connecting to SOCKS4 proxies */
    254281
    255 static gboolean s4_canread(gpointer data, gint source, b_input_condition cond)
     282static void s4_canread(gpointer data, gint source, GaimInputCondition cond)
    256283{
    257284        unsigned char packet[12];
    258285        struct PHB *phb = data;
    259286
    260         b_event_remove(phb->inpa);
     287        gaim_input_remove(phb->inpa);
    261288
    262289        memset(packet, 0, sizeof(packet));
     
    265292                g_free(phb->host);
    266293                g_free(phb);
    267                 return FALSE;
     294                return;
    268295        }
    269296
     
    272299        g_free(phb->host);
    273300        g_free(phb);
    274        
    275         return FALSE;
    276 }
    277 
    278 static gboolean s4_canwrite(gpointer data, gint source, b_input_condition cond)
     301}
     302
     303static void s4_canwrite(gpointer data, gint source, GaimInputCondition cond)
    279304{
    280305        unsigned char packet[12];
     
    284309        int error = ETIMEDOUT;
    285310        if (phb->inpa > 0)
    286                 b_event_remove(phb->inpa);
     311                gaim_input_remove(phb->inpa);
    287312        len = sizeof(error);
    288313        if (getsockopt(source, SOL_SOCKET, SO_ERROR, &error, &len) < 0) {
     
    291316                g_free(phb->host);
    292317                g_free(phb);
    293                 return FALSE;
     318                return;
    294319        }
    295320        sock_make_blocking(source);
     
    301326                g_free(phb->host);
    302327                g_free(phb);
    303                 return FALSE;
     328                return;
    304329        }
    305330
     
    318343                g_free(phb->host);
    319344                g_free(phb);
    320                 return FALSE;
    321         }
    322 
    323         phb->inpa = b_input_add(source, GAIM_INPUT_READ, s4_canread, phb);
    324        
    325         return FALSE;
     345                return;
     346        }
     347
     348        phb->inpa = gaim_input_add(source, GAIM_INPUT_READ, s4_canread, phb);
    326349}
    327350
     
    339362/* Connecting to SOCKS5 proxies */
    340363
    341 static gboolean s5_canread_again(gpointer data, gint source, b_input_condition cond)
     364static void s5_canread_again(gpointer data, gint source, GaimInputCondition cond)
    342365{
    343366        unsigned char buf[512];
    344367        struct PHB *phb = data;
    345368
    346         b_event_remove(phb->inpa);
     369        gaim_input_remove(phb->inpa);
    347370
    348371        if (read(source, buf, 10) < 10) {
     
    351374                g_free(phb->host);
    352375                g_free(phb);
    353                 return FALSE;
     376                return;
    354377        }
    355378        if ((buf[0] != 0x05) || (buf[1] != 0x00)) {
     
    358381                g_free(phb->host);
    359382                g_free(phb);
    360                 return FALSE;
     383                return;
    361384        }
    362385
     
    364387        g_free(phb->host);
    365388        g_free(phb);
    366        
    367         return FALSE;
     389        return;
    368390}
    369391
     
    373395        struct PHB *phb = data;
    374396        int hlen = strlen(phb->host);
    375        
     397
    376398        buf[0] = 0x05;
    377399        buf[1] = 0x01;          /* CONNECT */
     
    391413        }
    392414
    393         phb->inpa = b_input_add(source, GAIM_INPUT_READ, s5_canread_again, phb);
    394 }
    395 
    396 static gboolean s5_readauth(gpointer data, gint source, b_input_condition cond)
     415        phb->inpa = gaim_input_add(source, GAIM_INPUT_READ, s5_canread_again, phb);
     416}
     417
     418static void s5_readauth(gpointer data, gint source, GaimInputCondition cond)
    397419{
    398420        unsigned char buf[512];
    399421        struct PHB *phb = data;
    400422
    401         b_event_remove(phb->inpa);
     423        gaim_input_remove(phb->inpa);
    402424
    403425        if (read(source, buf, 2) < 2) {
     
    406428                g_free(phb->host);
    407429                g_free(phb);
    408                 return FALSE;
     430                return;
    409431        }
    410432
     
    414436                g_free(phb->host);
    415437                g_free(phb);
    416                 return FALSE;
     438                return;
    417439        }
    418440
    419441        s5_sendconnect(phb, source);
    420        
    421         return FALSE;
    422 }
    423 
    424 static gboolean s5_canread(gpointer data, gint source, b_input_condition cond)
     442}
     443
     444static void s5_canread(gpointer data, gint source, GaimInputCondition cond)
    425445{
    426446        unsigned char buf[512];
    427447        struct PHB *phb = data;
    428448
    429         b_event_remove(phb->inpa);
     449        gaim_input_remove(phb->inpa);
    430450
    431451        if (read(source, buf, 2) < 2) {
     
    434454                g_free(phb->host);
    435455                g_free(phb);
    436                 return FALSE;
     456                return;
    437457        }
    438458
     
    442462                g_free(phb->host);
    443463                g_free(phb);
    444                 return FALSE;
     464                return;
    445465        }
    446466
     
    457477                        g_free(phb->host);
    458478                        g_free(phb);
    459                         return FALSE;
     479                        return;
    460480                }
    461481
    462                 phb->inpa = b_input_add(source, GAIM_INPUT_READ, s5_readauth, phb);
     482                phb->inpa = gaim_input_add(source, GAIM_INPUT_READ, s5_readauth, phb);
    463483        } else {
    464484                s5_sendconnect(phb, source);
    465485        }
    466        
    467         return FALSE;
    468 }
    469 
    470 static gboolean s5_canwrite(gpointer data, gint source, b_input_condition cond)
     486}
     487
     488static void s5_canwrite(gpointer data, gint source, GaimInputCondition cond)
    471489{
    472490        unsigned char buf[512];
     
    476494        int error = ETIMEDOUT;
    477495        if (phb->inpa > 0)
    478                 b_event_remove(phb->inpa);
     496                gaim_input_remove(phb->inpa);
    479497        len = sizeof(error);
    480498        if (getsockopt(source, SOL_SOCKET, SO_ERROR, &error, &len) < 0) {
     
    483501                g_free(phb->host);
    484502                g_free(phb);
    485                 return FALSE;
     503                return;
    486504        }
    487505        sock_make_blocking(source);
     
    505523                g_free(phb->host);
    506524                g_free(phb);
    507                 return FALSE;
    508         }
    509 
    510         phb->inpa = b_input_add(source, GAIM_INPUT_READ, s5_canread, phb);
    511        
    512         return FALSE;
     525                return;
     526        }
     527
     528        phb->inpa = gaim_input_add(source, GAIM_INPUT_READ, s5_canread, phb);
    513529}
    514530
     
    526542/* Export functions */
    527543
    528 int proxy_connect(const char *host, int port, b_event_handler func, gpointer data)
     544gint gaim_input_add(gint source, GaimInputCondition condition, GaimInputFunction function, gpointer data)
     545{
     546        GaimIOClosure *closure = g_new0(GaimIOClosure, 1);
     547        GIOChannel *channel;
     548        GIOCondition cond = 0;
     549       
     550        closure->function = function;
     551        closure->data = data;
     552       
     553        if (condition & GAIM_INPUT_READ)
     554                cond |= GAIM_READ_COND;
     555        if (condition & GAIM_INPUT_WRITE)
     556                cond |= GAIM_WRITE_COND;
     557       
     558        channel = g_io_channel_unix_new(source);
     559        closure->result = g_io_add_watch_full(channel, G_PRIORITY_DEFAULT, cond,
     560                                              gaim_io_invoke, closure, gaim_io_destroy);
     561       
     562        g_io_channel_unref(channel);
     563        return closure->result;
     564}
     565
     566void gaim_input_remove(gint tag)
     567{
     568        if (tag > 0)
     569                g_source_remove(tag);
     570}
     571
     572int proxy_connect(const char *host, int port, GaimInputFunction func, gpointer data)
    529573{
    530574        struct PHB *phb;
  • protocols/proxy.h

    r5898ef8 r79e826a  
    11/*
    2  * nogaim
     2 * gaim
    33 *
    44 * Copyright (C) 1998-1999, Mark Spencer <markster@marko.net>
     
    3636#include <gmodule.h>
    3737
    38 #include "events.h"
    39 
    4038#define PROXY_NONE 0
    4139#define PROXY_HTTP 1
     
    4947extern char proxypass[128];
    5048
    51 G_MODULE_EXPORT int proxy_connect(const char *host, int port, b_event_handler func, gpointer data);
     49typedef enum {
     50        GAIM_INPUT_READ = 1 << 0,
     51        GAIM_INPUT_WRITE = 1 << 1
     52} GaimInputCondition;
     53typedef void (*GaimInputFunction)(gpointer, gint, GaimInputCondition);
     54
     55G_MODULE_EXPORT gint gaim_input_add(int, GaimInputCondition, GaimInputFunction, gpointer);
     56G_MODULE_EXPORT void gaim_input_remove(gint);
     57
     58G_MODULE_EXPORT int proxy_connect(const char *host, int port, GaimInputFunction func, gpointer data);
    5259
    5360#endif /* _PROXY_H_ */
  • protocols/ssl_bogus.c

    r5898ef8 r79e826a  
    5252}
    5353
    54 b_input_condition ssl_getdirection( void *conn )
     54GaimInputCondition ssl_getdirection( void *conn )
    5555{
    5656        return GAIM_INPUT_READ;
  • protocols/ssl_client.h

    r5898ef8 r79e826a  
    3333extern int ssl_errno;
    3434
    35 typedef gboolean (*ssl_input_function)(gpointer, void*, b_input_condition);
     35typedef void (*ssl_input_function)(gpointer, void*, GaimInputCondition);
    3636
    3737G_MODULE_EXPORT void *ssl_connect( char *host, int port, ssl_input_function func, gpointer data );
     
    4040G_MODULE_EXPORT void ssl_disconnect( void *conn_ );
    4141G_MODULE_EXPORT int ssl_getfd( void *conn );
    42 G_MODULE_EXPORT b_input_condition ssl_getdirection( void *conn );
     42G_MODULE_EXPORT GaimInputCondition ssl_getdirection( void *conn );
  • protocols/ssl_gnutls.c

    r5898ef8 r79e826a  
    4848};
    4949
    50 static gboolean ssl_connected( gpointer data, gint source, b_input_condition cond );
     50static void ssl_connected( gpointer data, gint source, GaimInputCondition cond );
    5151
    5252
     
    8181}
    8282
    83 static gboolean ssl_handshake( gpointer data, gint source, b_input_condition cond );
    84 
    85 static gboolean ssl_connected( gpointer data, gint source, b_input_condition cond )
     83static void ssl_handshake( gpointer data, gint source, GaimInputCondition cond );
     84
     85static void ssl_connected( gpointer data, gint source, GaimInputCondition cond )
    8686{
    8787        struct scd *conn = data;
     
    9696                g_free( conn );
    9797               
    98                 return FALSE;
     98                return;
    9999        }
    100100       
     
    102102        gnutls_transport_set_ptr( conn->session, (gnutls_transport_ptr) conn->fd );
    103103       
    104         return ssl_handshake( data, source, cond );
    105 }
    106 
    107 static gboolean ssl_handshake( gpointer data, gint source, b_input_condition cond )
     104        ssl_handshake( data, source, cond );
     105}
     106
     107static void ssl_handshake( gpointer data, gint source, GaimInputCondition cond )
    108108{
    109109        struct scd *conn = data;
    110110        int st;
    111111       
     112        if( conn->inpa != -1 )
     113        {
     114                gaim_input_remove( conn->inpa );
     115                conn->inpa = -1;
     116        }
     117       
    112118        if( ( st = gnutls_handshake( conn->session ) ) < 0 )
    113119        {
    114120                if( st == GNUTLS_E_AGAIN || st == GNUTLS_E_INTERRUPTED )
    115121                {
    116                         conn->inpa = b_input_add( conn->fd, ssl_getdirection( conn ),
    117                                                   ssl_handshake, data );
     122                        conn->inpa = gaim_input_add( conn->fd, ssl_getdirection( conn ),
     123                                                     ssl_handshake, data );
    118124                }
    119125                else
     
    136142                conn->func( conn->data, conn, cond );
    137143        }
    138        
    139         return FALSE;
    140144}
    141145
     
    183187       
    184188        if( conn->inpa != -1 )
    185                 b_event_remove( conn->inpa );
     189                gaim_input_remove( conn->inpa );
    186190       
    187191        if( conn->established )
     
    200204}
    201205
    202 b_input_condition ssl_getdirection( void *conn )
     206GaimInputCondition ssl_getdirection( void *conn )
    203207{
    204208        return( gnutls_record_get_direction( ((struct scd*)conn)->session ) ?
  • protocols/ssl_nss.c

    r5898ef8 r79e826a  
    5252};
    5353
    54 static gboolean ssl_connected( gpointer data, gint source, b_input_condition cond );
     54static void ssl_connected( gpointer data, gint source, GaimInputCondition cond );
    5555
    5656
     
    116116}
    117117
    118 static gboolean ssl_connected( gpointer data, gint source, b_input_condition cond )
     118static void ssl_connected( gpointer data, gint source, GaimInputCondition cond )
    119119{
    120120        struct scd *conn = data;
     
    140140        conn->established = TRUE;
    141141        conn->func( conn->data, conn, cond );
    142         return FALSE;
     142        return;
    143143       
    144144        ssl_connected_failure:
     
    149149        if( source >= 0 ) closesocket( source );
    150150        g_free( conn );
    151        
    152         return FALSE;
    153151}
    154152
     
    184182}
    185183
    186 b_input_condition ssl_getdirection( void *conn )
     184GaimInputCondition ssl_getdirection( void *conn )
    187185{
    188186        /* Just in case someone calls us, let's return the most likely case: */
  • protocols/ssl_openssl.c

    r5898ef8 r79e826a  
    5252};
    5353
    54 static gboolean ssl_connected( gpointer data, gint source, b_input_condition cond );
     54static void ssl_connected( gpointer data, gint source, GaimInputCondition cond );
     55
    5556
    5657
     
    9495}
    9596
    96 static gboolean ssl_handshake( gpointer data, gint source, b_input_condition cond );
    97 
    98 static gboolean ssl_connected( gpointer data, gint source, b_input_condition cond )
     97static void ssl_handshake( gpointer data, gint source, GaimInputCondition cond );
     98
     99static void ssl_connected( gpointer data, gint source, GaimInputCondition cond )
    99100{
    100101        struct scd *conn = data;
     
    103104                return ssl_handshake( data, -1, cond );
    104105       
    105         /* We can do at least the handshake with non-blocking I/O */
     106        /* Make it non-blocking at least during the handshake... */
    106107        sock_make_nonblocking( conn->fd );
    107108        SSL_set_fd( conn->ssl, conn->fd );
     
    110111}       
    111112
    112 static gboolean ssl_handshake( gpointer data, gint source, b_input_condition cond )
     113static void ssl_handshake( gpointer data, gint source, GaimInputCondition cond )
    113114{
    114115        struct scd *conn = data;
    115116        int st;
     117       
     118        if( conn->inpa != -1 )
     119        {
     120                gaim_input_remove( conn->inpa );
     121                conn->inpa = -1;
     122        }
    116123       
    117124        if( ( st = SSL_connect( conn->ssl ) ) < 0 )
     
    121128                        goto ssl_connected_failure;
    122129               
    123                 conn->inpa = b_input_add( conn->fd, ssl_getdirection( conn ), ssl_handshake, data );
    124                 return FALSE;
     130                conn->inpa = gaim_input_add( conn->fd, ssl_getdirection( conn ), ssl_handshake, data );
     131                return;
    125132        }
    126133       
     
    128135        sock_make_blocking( conn->fd );         /* For now... */
    129136        conn->func( conn->data, conn, cond );
    130         return FALSE;
     137        return;
    131138       
    132139ssl_connected_failure:
     
    144151        if( source >= 0 ) closesocket( source );
    145152        g_free( conn );
    146        
    147         return FALSE;
    148153}
    149154
     
    199204       
    200205        if( conn->inpa != -1 )
    201                 b_event_remove( conn->inpa );
     206                gaim_input_remove( conn->inpa );
    202207       
    203208        if( conn->established )
     
    216221}
    217222
    218 b_input_condition ssl_getdirection( void *conn )
     223GaimInputCondition ssl_getdirection( void *conn )
    219224{
    220225        return( ((struct scd*)conn)->lasterr == SSL_ERROR_WANT_WRITE ? GAIM_INPUT_WRITE : GAIM_INPUT_READ );
  • protocols/yahoo/yahoo.c

    r5898ef8 r79e826a  
    443443};
    444444
    445 void byahoo_connect_callback( gpointer data, gint source, b_input_condition cond )
     445void byahoo_connect_callback( gpointer data, gint source, GaimInputCondition cond )
    446446{
    447447        struct byahoo_connect_callback_data *d = data;
     
    465465};
    466466
    467 gboolean byahoo_read_ready_callback( gpointer data, gint source, b_input_condition cond )
     467void byahoo_read_ready_callback( gpointer data, gint source, GaimInputCondition cond )
    468468{
    469469        struct byahoo_read_ready_data *d = data;
    470470       
    471471        if( !byahoo_get_gc_by_id( d->id ) )
     472        {
    472473                /* WTF doesn't libyahoo clean this up? */
    473                 return FALSE;
     474                ext_yahoo_remove_handler( d->id, d->tag );
     475                return;
     476        }
    474477       
    475478        yahoo_read_ready( d->id, d->fd, d->data );
    476        
    477         return TRUE;
    478479}
    479480
     
    486487};
    487488
    488 gboolean byahoo_write_ready_callback( gpointer data, gint source, b_input_condition cond )
     489void byahoo_write_ready_callback( gpointer data, gint source, GaimInputCondition cond )
    489490{
    490491        struct byahoo_write_ready_data *d = data;
    491492       
    492493        if( !byahoo_get_gc_by_id( d->id ) )
     494        {
    493495                /* WTF doesn't libyahoo clean this up? */
    494                 return FALSE;
     496                ext_yahoo_remove_handler( d->id, d->tag );
     497                return;
     498        }
    495499       
    496500        yahoo_write_ready( d->id, d->fd, d->data );
    497        
    498         return FALSE;
    499501}
    500502
     
    685687               
    686688                inp->d = d;
    687                 d->tag = inp->h = b_input_add( fd, GAIM_INPUT_READ, (b_event_handler) byahoo_read_ready_callback, (gpointer) d );
     689                d->tag = inp->h = gaim_input_add( fd, GAIM_INPUT_READ, (GaimInputFunction) byahoo_read_ready_callback, (gpointer) d );
    688690        }
    689691        else if( cond == YAHOO_INPUT_WRITE )
     
    696698               
    697699                inp->d = d;
    698                 d->tag = inp->h = b_input_add( fd, GAIM_INPUT_WRITE, (b_event_handler) byahoo_write_ready_callback, (gpointer) d );
     700                d->tag = inp->h = gaim_input_add( fd, GAIM_INPUT_WRITE, (GaimInputFunction) byahoo_write_ready_callback, (gpointer) d );
    699701        }
    700702        else
     
    727729        }
    728730       
    729         b_event_remove( tag );
     731        gaim_input_remove( tag );
    730732}
    731733
     
    736738       
    737739        d = g_new0( struct byahoo_connect_callback_data, 1 );
    738         if( ( fd = proxy_connect( host, port, (b_event_handler) byahoo_connect_callback, (gpointer) d ) ) < 0 )
     740        if( ( fd = proxy_connect( host, port, (GaimInputFunction) byahoo_connect_callback, (gpointer) d ) ) < 0 )
    739741        {
    740742                g_free( d );
  • root_commands.c

    r5898ef8 r79e826a  
    142142                irc_umode_set( irc, "+R", 1 );
    143143                break;
    144         case STORAGE_OTHER_ERROR:
    145144        default:
    146                 irc_usermsg( irc, "Unknown error while loading configuration" );
     145                irc_usermsg( irc, "Something very weird happened" );
    147146                break;
    148147        }
     
    202201        account_t *a;
    203202       
    204         if( global.conf->authmode == AUTHMODE_REGISTERED && !( irc->status & USTATUS_IDENTIFIED ) )
     203        if( global.conf->authmode == AUTHMODE_REGISTERED && ! irc->status & USTATUS_IDENTIFIED )
    205204        {
    206205                irc_usermsg( irc, "This server only accepts registered users" );
  • sock.h

    r5898ef8 r79e826a  
    1818#define sock_make_blocking(fd) fcntl(fd, F_SETFL, 0)
    1919#define sockerr_again() (errno == EINPROGRESS || errno == EINTR)
    20 #ifndef EVENTS_LIBEVENT
    2120#define closesocket(a) close(a)
    22 #endif
    2321#else
    2422# include <winsock2.h>
  • storage.c

    r5898ef8 r79e826a  
    66
    77/* Support for multiple storage backends */
    8 
    9 /* Copyright (C) 2005 Jelmer Vernooij <jelmer@samba.org> */
    108
    119/*
     
    3129
    3230extern storage_t storage_text;
    33 extern storage_t storage_xml;
    3431
    35 static GList *storage_backends = NULL;
     32static GList text_entry = { &storage_text, NULL, NULL };
     33static GList *storage_backends = &text_entry;
    3634
    3735void register_storage_backend(storage_t *backend)
     
    6563        int i;
    6664        storage_t *storage;
    67        
    68         register_storage_backend(&storage_text);
    69         register_storage_backend(&storage_xml);
    70        
     65
    7166        storage = storage_init_single(primary);
    7267        if (storage == NULL)
  • storage.h

    r5898ef8 r79e826a  
    3333        STORAGE_ALREADY_EXISTS,
    3434        STORAGE_OTHER_ERROR /* Error that isn't caused by user input, such as
    35                                a database that is unreachable. log() will be
    36                                used for the exact error message */
     35                                                   a database that is unreachable. log() will be
     36                                                   used for the exact error message */
    3737} storage_status_t;
    3838
  • unix.c

    r5898ef8 r79e826a  
    4747        memset( &global, 0, sizeof( global_t ) );
    4848       
    49         b_main_init();
     49        global.loop = g_main_new( FALSE );
    5050       
    5151        log_init();
     
    117117                log_message( LOGLVL_WARNING, "Error opening helpfile %s.", HELP_FILE );
    118118       
    119         b_main_run();
     119        g_main_run( global.loop );
    120120       
    121121        if( global.restart )
     
    165165                       
    166166                        log_message( LOGLVL_ERROR, "SIGTERM received, cleaning up process." );
    167                         b_timeout_add( 1, (b_event_handler) bitlbee_shutdown, NULL );
     167                        g_timeout_add_full( G_PRIORITY_LOW, 1, (GSourceFunc) bitlbee_shutdown, NULL, NULL );
    168168                       
    169169                        first = 0;
  • user.c

    r5898ef8 r79e826a  
    109109                        if( u->handle ) g_free( u->handle );
    110110                        if( u->sendbuf ) g_free( u->sendbuf );
    111                         if( u->sendbuf_timer ) b_event_remove( u->sendbuf_timer );
     111                        if( u->sendbuf_timer ) g_source_remove( u->sendbuf_timer );
    112112                        g_free( u );
    113113                       
Note: See TracChangeset for help on using the changeset viewer.