Changeset 09f8cd1 for protocols


Ignore:
Timestamp:
2006-05-12T18:31:44Z (19 years ago)
Author:
Wilmer van der Gaast <wilmer@…>
Branches:
master
Children:
b642f381
Parents:
13cc96c
Message:

Stable, almost finished.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • protocols/events_libevent.c

    r13cc96c r09f8cd1  
    3939static GHashTable *id_hash;
    4040
    41 
    4241struct b_event_data
    4342{
     
    7372        struct b_event_data *b_ev = data;
    7473        b_input_condition cond = 0;
    75 
    76         if( event & EV_READ )
    77                 cond |= GAIM_INPUT_READ;
    78         if( event & EV_WRITE )
    79                 cond |= GAIM_INPUT_WRITE;
    80 
     74       
     75        if( fd >= 0 )
     76        {
     77                if( event & EV_READ )
     78                        cond |= GAIM_INPUT_READ;
     79                if( event & EV_WRITE )
     80                        cond |= GAIM_INPUT_WRITE;
     81        }
     82       
    8183        if( !b_ev->function( b_ev->data, fd, cond ) )
    8284                b_event_remove( b_ev->id );
     
    8890        GIOCondition cond;
    8991       
    90         b_ev->id == id_next++;
     92        b_ev->id = id_next++;
    9193        b_ev->function = function;
    9294        b_ev->data = data;
     
    106108}
    107109
     110/* TODO: Persistence for timers! */
    108111gint b_timeout_add( gint timeout, b_event_handler function, gpointer data )
    109112{
     
    111114        struct timeval tv;
    112115       
    113         b_ev->id == id_next++;
     116        b_ev->id = id_next++;
    114117        b_ev->function = function;
    115118        b_ev->data = data;
     
    119122       
    120123        evtimer_set( &b_ev->evinfo, b_event_passthrough, b_ev );
    121         evtimer_add( &b_ev->evinfo, &tv);
     124        evtimer_add( &b_ev->evinfo, &tv );
    122125       
    123126        g_hash_table_insert( id_hash, &b_ev->id, b_ev );
     
    133136        {
    134137                event_del( &b_ev->evinfo );
    135                 g_hash_table_remove( id_hash, &tag );
     138                g_hash_table_remove( id_hash, &b_ev->id );
    136139                g_free( b_ev );
    137140        }
Note: See TracChangeset for help on using the changeset viewer.