Changes in / [92ad3d4:d990997]


Ignore:
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • bitlbee.c

    r92ad3d4 rd990997  
    200200        {
    201201                log_message( LOGLVL_INFO, "Destroying connection with fd %d.", irc->fd );
    202                 irc_abort( irc );
     202                irc_free( irc );
    203203                return FALSE;
    204204        }
     
    208208        {
    209209                log_message( LOGLVL_ERROR, "Maximum line length exceeded." );
    210                 irc_abort( irc );
     210                irc_free( irc );
    211211                return FALSE;
    212212        }
     
    227227        st = write( irc->fd, irc->sendbuffer, size );
    228228       
    229         if( st == 0 || ( st < 0 && !sockerr_again() ) )
    230         {
    231                 irc_free( irc );
    232                 return FALSE;
    233         }
    234         else if( st < 0 ) /* && sockerr_again() */
    235         {
    236                 return TRUE;
     229        if( st <= 0 )
     230        {
     231                if( sockerr_again() )
     232                {
     233                        return TRUE;
     234                }
     235                else
     236                {
     237                        irc_free( irc );
     238                        return FALSE;
     239                }
    237240        }
    238241       
     
    241244                g_free( irc->sendbuffer );
    242245                irc->sendbuffer = NULL;
     246               
    243247                irc->w_watch_source_id = 0;
    244                
    245                 if( irc->status == USTATUS_SHUTDOWN )
    246                         irc_free( irc );
    247                
    248248                return( FALSE );
    249249        }
  • irc.c

    r92ad3d4 rd990997  
    151151}
    152152
    153 void irc_abort( irc_t *irc )
    154 {
    155         irc->status = USTATUS_SHUTDOWN;
    156         if( irc->sendbuffer )
    157         {
    158                 g_source_remove( irc->r_watch_source_id );
    159                 irc->r_watch_source_id = g_timeout_add_full( G_PRIORITY_HIGH, 1000, (GSourceFunc) irc_free, irc, NULL );
    160         }
    161         else
    162         {
    163                 irc_free( irc );
    164         }
    165 }
    166 
    167153static gboolean irc_free_userhash( gpointer key, gpointer value, gpointer data )
    168154{
     
    173159
    174160/* Because we have no garbage collection, this is quite annoying */
    175 void irc_free( irc_t * irc )
     161void irc_free(irc_t * irc)
    176162{
    177163        account_t *account, *accounttmp;
     
    510496        {
    511497                irc_write( irc, "ERROR :%s%s", cmd[1]?"Quit: ":"", cmd[1]?cmd[1]:"Client Quit" );
    512                 /* g_io_channel_close( irc->io_channel ); */
     498                g_io_channel_close( irc->io_channel );
    513499                return( 0 );
    514500        }
  • irc.h

    r92ad3d4 rd990997  
    4444        USTATUS_AUTHORIZED,
    4545        USTATUS_LOGGED_IN,
    46         USTATUS_IDENTIFIED,
    47         USTATUS_SHUTDOWN
     46        USTATUS_IDENTIFIED
    4847} irc_status_t;
    4948
     
    105104
    106105irc_t *irc_new( int fd );
    107 void irc_abort( irc_t *irc );
    108106void irc_free( irc_t *irc );
    109107
  • log.c

    r92ad3d4 rd990997  
    3838        openlog("bitlbee", LOG_PID, LOG_DAEMON);       
    3939
    40         logoutput.informational = &log_null;
    41         logoutput.warning = &log_null;
    42         logoutput.error = &log_null;
     40        logoutput.informational=&log_null;
     41        logoutput.warning=&log_null;
     42        logoutput.error=&log_null;
    4343#ifdef DEBUG
    44         logoutput.debug = &log_null;
     44        logoutput.debug=&log_null;
    4545#endif
    4646
     
    5151        /* I know it's ugly, but it works and I didn't feel like messing with pointer to function pointers */
    5252
    53         if(level == LOGLVL_INFO) {
    54                 if(output == LOGOUTPUT_NULL)
    55                         logoutput.informational = &log_null;   
    56                 else if(output == LOGOUTPUT_IRC)
    57                         logoutput.informational = &log_irc;     
    58                 else if(output == LOGOUTPUT_SYSLOG)
    59                         logoutput.informational = &log_syslog; 
    60                 else if(output == LOGOUTPUT_CONSOLE)
    61                         logoutput.informational = &log_console;
     53        if(level==LOGLVL_INFO) {
     54                if(output==LOGOUTPUT_NULL)
     55                        logoutput.informational=&log_null;     
     56                else if(output==LOGOUTPUT_IRC)
     57                        logoutput.informational=&log_irc;       
     58                else if(output==LOGOUTPUT_SYSLOG)
     59                        logoutput.informational=&log_syslog;   
     60                else if(output==LOGOUTPUT_CONSOLE)
     61                        logoutput.informational=&log_console;   
    6262        }
    63         else if(level == LOGLVL_WARNING) {
    64                 if(output == LOGOUTPUT_NULL)
    65                         logoutput.warning = &log_null;
    66                 else if(output == LOGOUTPUT_IRC)
    67                         logoutput.warning = &log_irc;
    68                 else if(output == LOGOUTPUT_SYSLOG)
    69                         logoutput.warning = &log_syslog;
    70                 else if(output == LOGOUTPUT_CONSOLE)
    71                         logoutput.warning = &log_console;
     63        else if(level==LOGLVL_WARNING) {
     64                if(output==LOGOUTPUT_NULL)
     65                        logoutput.warning=&log_null;
     66                else if(output==LOGOUTPUT_IRC)
     67                        logoutput.warning=&log_irc;
     68                else if(output==LOGOUTPUT_SYSLOG)
     69                        logoutput.warning=&log_syslog;
     70                else if(output==LOGOUTPUT_CONSOLE)
     71                        logoutput.warning=&log_console;
    7272        }
    73         else if(level == LOGLVL_ERROR) {
    74                 if(output == LOGOUTPUT_NULL)
    75                         logoutput.error = &log_null;
    76                 else if(output == LOGOUTPUT_IRC)
    77                         logoutput.error = &log_irc;
    78                 else if(output == LOGOUTPUT_SYSLOG)
    79                         logoutput.error = &log_syslog;
    80                 else if(output == LOGOUTPUT_CONSOLE)
    81                         logoutput.error = &log_console;
     73        else if(level==LOGLVL_ERROR) {
     74                if(output==LOGOUTPUT_NULL)
     75                        logoutput.error=&log_null;
     76                else if(output==LOGOUTPUT_IRC)
     77                        logoutput.error=&log_irc;
     78                else if(output==LOGOUTPUT_SYSLOG)
     79                        logoutput.error=&log_syslog;
     80                else if(output==LOGOUTPUT_CONSOLE)
     81                        logoutput.error=&log_console;
    8282        }
    8383#ifdef DEBUG
    84         else if(level == LOGLVL_DEBUG) {
    85                 if(output == LOGOUTPUT_NULL)
    86                         logoutput.debug = &log_null;
    87                 else if(output == LOGOUTPUT_IRC)
    88                         logoutput.debug = &log_irc;
    89                 else if(output == LOGOUTPUT_SYSLOG)
    90                         logoutput.debug = &log_syslog;
    91                 else if(output == LOGOUTPUT_CONSOLE)
    92                         logoutput.debug = &log_console;
     84        else if(level==LOGLVL_DEBUG) {
     85                if(output==LOGOUTPUT_NULL)
     86                        logoutput.debug=&log_null;
     87                else if(output==LOGOUTPUT_IRC)
     88                        logoutput.debug=&log_irc;
     89                else if(output==LOGOUTPUT_SYSLOG)
     90                        logoutput.debug=&log_syslog;
     91                else if(output==LOGOUTPUT_CONSOLE)
     92                        logoutput.debug=&log_console;
    9393        }
    9494#endif
     
    106106        va_end(ap);
    107107
    108         if(level == LOGLVL_INFO)
     108        if(level==LOGLVL_INFO)
    109109                (*(logoutput.informational))(level, msgstring);
    110         if(level == LOGLVL_WARNING)
     110        if(level==LOGLVL_WARNING)
    111111                (*(logoutput.warning))(level, msgstring);
    112         if(level == LOGLVL_ERROR)
     112        if(level==LOGLVL_ERROR)
    113113                (*(logoutput.error))(level, msgstring);
    114114#ifdef DEBUG
    115         if(level == LOGLVL_DEBUG)
     115        if(level==LOGLVL_DEBUG)
    116116                (*(logoutput.debug))(level, msgstring);
    117117#endif
     
    133133
    134134static void log_irc(int level, char *message) {
    135         if(level == LOGLVL_ERROR)
     135        if(level==LOGLVL_ERROR)
    136136                irc_write_all(1, "ERROR :Error: %s", message);
    137         if(level == LOGLVL_WARNING)
     137        if(level==LOGLVL_WARNING)
    138138                irc_write_all(0, "ERROR :Warning: %s", message);
    139         if(level == LOGLVL_INFO)
     139        if(level==LOGLVL_INFO)
    140140                irc_write_all(0, "ERROR :Informational: %s", message); 
    141141#ifdef DEBUG
    142         if(level == LOGLVL_DEBUG)
     142        if(level==LOGLVL_DEBUG)
    143143                irc_write_all(0, "ERROR :Debug: %s", message); 
    144144#endif 
     
    148148
    149149static void log_syslog(int level, char *message) {
    150         if(level == LOGLVL_ERROR)
     150        if(level==LOGLVL_ERROR)
    151151                syslog(LOG_ERR, "%s", message);
    152         if(level == LOGLVL_WARNING)
     152        if(level==LOGLVL_WARNING)
    153153                syslog(LOG_WARNING, "%s", message);
    154         if(level == LOGLVL_INFO)
     154        if(level==LOGLVL_INFO)
    155155                syslog(LOG_INFO, "%s", message);
    156156#ifdef DEBUG
    157         if(level == LOGLVL_DEBUG)
     157        if(level==LOGLVL_DEBUG)
    158158                syslog(LOG_DEBUG, "%s", message);
    159159#endif
     
    162162
    163163static void log_console(int level, char *message) {
    164         if(level == LOGLVL_ERROR)
     164        if(level==LOGLVL_ERROR)
    165165                fprintf(stderr, "Error: %s\n", message);
    166         if(level == LOGLVL_WARNING)
     166        if(level==LOGLVL_WARNING)
    167167                fprintf(stderr, "Warning: %s\n", message);
    168         if(level == LOGLVL_INFO)
     168        if(level==LOGLVL_INFO)
    169169                fprintf(stdout, "Informational: %s\n", message);
    170170#ifdef DEBUG
    171         if(level == LOGLVL_DEBUG)
     171        if(level==LOGLVL_DEBUG)
    172172                fprintf(stdout, "Debug: %s\n", message);
    173173#endif
Note: See TracChangeset for help on using the changeset viewer.