Changes in / [55ec2d6:b8c2ace]


Ignore:
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • bitlbee.c

    r55ec2d6 rb8c2ace  
    133133        if( condition & G_IO_ERR || condition & G_IO_HUP )
    134134        {
    135                 irc_abort( irc, 1, "Read error" );
     135                irc_free( irc );
    136136                return FALSE;
    137137        }
     
    140140        if( st == 0 )
    141141        {
    142                 irc_abort( irc, 1, "Connection reset by peer" );
     142                irc_free( irc );
    143143                return FALSE;
    144144        }
     
    151151                else
    152152                {
    153                         irc_abort( irc, 1, "Read error: %s", strerror( errno ) );
     153                        irc_free( irc );
    154154                        return FALSE;
    155155                }
     
    177177        if( irc->readbuffer && ( strlen( irc->readbuffer ) > 1024 ) )
    178178        {
    179                 irc_abort( irc, 0, "Maximum line length exceeded" );
     179                log_message( LOGLVL_ERROR, "Maximum line length exceeded." );
     180                irc_abort( irc );
    180181                return FALSE;
    181182        }
     
    198199        if( st == 0 || ( st < 0 && !sockerr_again() ) )
    199200        {
    200                 irc_abort( irc, 1, "Write error: %s", strerror( errno ) );
     201                irc_free( irc );
    201202                return FALSE;
    202203        }
  • irc.c

    r55ec2d6 rb8c2ace  
    152152}
    153153
    154 void irc_abort( irc_t *irc, int immed, char *format, ... )
    155 {
    156         va_list params;
    157        
    158         if( format != NULL )
    159         {
    160                 char *reason;
    161                
    162                 va_start( params, format );
    163                 reason = g_strdup_printf( format, params );
    164                 va_end( params );
    165                
    166                 if( !immed )
    167                         irc_write( irc, "ERROR :Closing link: %s", reason );
    168                
    169                 ipc_to_master_str( "OPERMSG :Client exiting: %s@%s [%s]\r\n",
    170                                    irc->nick, irc->host, reason" );
    171                
    172                 g_free( reason );
    173         }
    174         else
    175         {
    176                 if( !immed )
    177                         irc_write( irc, "ERROR :Closing link" );
    178                
    179                 ipc_to_master_str( "OPERMSG :Client exiting: %s@%s [%s]\r\n",
    180                                    irc->nick, irc->host, "No reason given" );
    181         }
    182        
     154void irc_abort( irc_t *irc )
     155{
    183156        irc->status = USTATUS_SHUTDOWN;
    184         if( irc->sendbuffer && !immed )
    185         {
    186                 /* We won't read from this socket anymore. Instead, we'll connect a timer
    187                    to it that should shut down the connection in a second, just in case
    188                    bitlbee_.._write doesn't do it first. */
    189                
     157        if( irc->sendbuffer )
     158        {
    190159                g_source_remove( irc->r_watch_source_id );
    191160                irc->r_watch_source_id = g_timeout_add_full( G_PRIORITY_HIGH, 1000, (GSourceFunc) irc_free, irc, NULL );
     
    11461115        if( rv > 0 )
    11471116        {
    1148                 irc_abort( irc, "ERROR :Closing Link: Ping Timeout: %d seconds", rv );
     1117                irc_write( irc, "ERROR :Closing Link: Ping Timeout: %d seconds", rv );
     1118                irc_free( irc );
    11491119                return FALSE;
    11501120        }
  • irc.h

    r55ec2d6 rb8c2ace  
    105105
    106106irc_t *irc_new( int fd );
    107 void irc_abort( irc_t *irc, int immed, char *format, ... );
     107void irc_abort( irc_t *irc );
    108108void irc_free( irc_t *irc );
    109109
Note: See TracChangeset for help on using the changeset viewer.