Changes in / [4c266f2:1ea13be]
- Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
bitlbee.c
r4c266f2 r1ea13be 170 170 { 171 171 log_message( LOGLVL_INFO, "Destroying connection with fd %d.", irc->fd ); 172 irc_ abort( irc );172 irc_free( irc ); 173 173 return FALSE; 174 174 } … … 178 178 { 179 179 log_message( LOGLVL_ERROR, "Maximum line length exceeded." ); 180 irc_ abort( irc );180 irc_free( irc ); 181 181 return FALSE; 182 182 } … … 197 197 st = write( irc->fd, irc->sendbuffer, size ); 198 198 199 if( st == 0 || ( st < 0 && !sockerr_again() ) ) 200 { 201 irc_free( irc ); 202 return FALSE; 203 } 204 else if( st < 0 ) /* && sockerr_again() */ 205 { 206 return TRUE; 199 if( st <= 0 ) 200 { 201 if( sockerr_again() ) 202 { 203 return TRUE; 204 } 205 else 206 { 207 irc_free( irc ); 208 return FALSE; 209 } 207 210 } 208 211 … … 211 214 g_free( irc->sendbuffer ); 212 215 irc->sendbuffer = NULL; 216 213 217 irc->w_watch_source_id = 0; 214 215 if( irc->status == USTATUS_SHUTDOWN )216 irc_free( irc );217 218 218 return( FALSE ); 219 219 } -
ipc.c
r4c266f2 r1ea13be 125 125 126 126 irc_write( irc, ":%s!%s@%s KILL %s :%s", irc->mynick, irc->mynick, irc->myhost, irc->nick, cmd[2] ); 127 irc_abort( irc ); 128 /* g_io_channel_close( irc->io_channel ); */ 127 g_io_channel_close( irc->io_channel ); 129 128 130 129 return 0; -
irc.c
r4c266f2 r1ea13be 149 149 150 150 return( irc ); 151 }152 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 else162 {163 irc_free( irc );164 }165 151 } 166 152 -
irc.h
r4c266f2 r1ea13be 44 44 USTATUS_AUTHORIZED, 45 45 USTATUS_LOGGED_IN, 46 USTATUS_IDENTIFIED, 47 USTATUS_SHUTDOWN 46 USTATUS_IDENTIFIED 48 47 } irc_status_t; 49 48 … … 105 104 106 105 irc_t *irc_new( int fd ); 107 void irc_abort( irc_t *irc );108 106 void irc_free( irc_t *irc ); 109 107 -
irc_commands.c
r4c266f2 r1ea13be 82 82 { 83 83 irc_write( irc, "ERROR :%s%s", cmd[1]?"Quit: ":"", cmd[1]?cmd[1]:"Client Quit" ); 84 /* g_io_channel_close( irc->io_channel ); */84 g_io_channel_close( irc->io_channel ); 85 85 86 86 return( 0 ); -
log.c
r4c266f2 r1ea13be 38 38 openlog("bitlbee", LOG_PID, LOG_DAEMON); 39 39 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; 43 43 #ifdef DEBUG 44 logoutput.debug =&log_null;44 logoutput.debug=&log_null; 45 45 #endif 46 46 … … 51 51 /* I know it's ugly, but it works and I didn't feel like messing with pointer to function pointers */ 52 52 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; 62 62 } 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; 72 72 } 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; 82 82 } 83 83 #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; 93 93 } 94 94 #endif … … 106 106 va_end(ap); 107 107 108 if(level ==LOGLVL_INFO)108 if(level==LOGLVL_INFO) 109 109 (*(logoutput.informational))(level, msgstring); 110 if(level ==LOGLVL_WARNING)110 if(level==LOGLVL_WARNING) 111 111 (*(logoutput.warning))(level, msgstring); 112 if(level ==LOGLVL_ERROR)112 if(level==LOGLVL_ERROR) 113 113 (*(logoutput.error))(level, msgstring); 114 114 #ifdef DEBUG 115 if(level ==LOGLVL_DEBUG)115 if(level==LOGLVL_DEBUG) 116 116 (*(logoutput.debug))(level, msgstring); 117 117 #endif … … 133 133 134 134 static void log_irc(int level, char *message) { 135 if(level ==LOGLVL_ERROR)135 if(level==LOGLVL_ERROR) 136 136 irc_write_all(1, "ERROR :Error: %s", message); 137 if(level ==LOGLVL_WARNING)137 if(level==LOGLVL_WARNING) 138 138 irc_write_all(0, "ERROR :Warning: %s", message); 139 if(level ==LOGLVL_INFO)139 if(level==LOGLVL_INFO) 140 140 irc_write_all(0, "ERROR :Informational: %s", message); 141 141 #ifdef DEBUG 142 if(level ==LOGLVL_DEBUG)142 if(level==LOGLVL_DEBUG) 143 143 irc_write_all(0, "ERROR :Debug: %s", message); 144 144 #endif … … 148 148 149 149 static void log_syslog(int level, char *message) { 150 if(level ==LOGLVL_ERROR)150 if(level==LOGLVL_ERROR) 151 151 syslog(LOG_ERR, "%s", message); 152 if(level ==LOGLVL_WARNING)152 if(level==LOGLVL_WARNING) 153 153 syslog(LOG_WARNING, "%s", message); 154 if(level ==LOGLVL_INFO)154 if(level==LOGLVL_INFO) 155 155 syslog(LOG_INFO, "%s", message); 156 156 #ifdef DEBUG 157 if(level ==LOGLVL_DEBUG)157 if(level==LOGLVL_DEBUG) 158 158 syslog(LOG_DEBUG, "%s", message); 159 159 #endif … … 162 162 163 163 static void log_console(int level, char *message) { 164 if(level ==LOGLVL_ERROR)164 if(level==LOGLVL_ERROR) 165 165 fprintf(stderr, "Error: %s\n", message); 166 if(level ==LOGLVL_WARNING)166 if(level==LOGLVL_WARNING) 167 167 fprintf(stderr, "Warning: %s\n", message); 168 if(level ==LOGLVL_INFO)168 if(level==LOGLVL_INFO) 169 169 fprintf(stdout, "Informational: %s\n", message); 170 170 #ifdef DEBUG 171 if(level ==LOGLVL_DEBUG)171 if(level==LOGLVL_DEBUG) 172 172 fprintf(stdout, "Debug: %s\n", message); 173 173 #endif
Note: See TracChangeset
for help on using the changeset viewer.