Changeset ebb95b6
- Timestamp:
- 2007-11-14T23:42:07Z (17 years ago)
- Branches:
- master
- Children:
- 50e1776
- Parents:
- a6df0b5 (diff), 1bf1ae6 (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the(diff)
links above to see all the changes relative to each parent. - Files:
-
- 18 edited
Legend:
- Unmodified
- Added
- Removed
-
bitlbee.c
ra6df0b5 rebb95b6 38 38 int bitlbee_daemon_init() 39 39 { 40 #ifdef IPV6 41 int use_ipv6 = 1; 42 struct sockaddr_in6 listen_addr6; 43 #endif 44 struct sockaddr_in listen_addr; 40 struct addrinfo *res, hints, *addrinfo_bind; 45 41 int i; 46 42 FILE *fp; … … 49 45 log_link( LOGLVL_WARNING, LOGOUTPUT_SYSLOG ); 50 46 51 #ifdef IPV6 52 if( ( global.listen_socket = socket( AF_INET6, SOCK_STREAM, 0 ) ) == -1 ) 53 { 54 use_ipv6 = 0; 55 #endif 56 global.listen_socket = socket( AF_INET, SOCK_STREAM, 0 ); 57 #ifdef IPV6 58 } 59 #endif 60 if( global.listen_socket == -1 ) 61 { 62 log_error( "socket" ); 63 return( -1 ); 64 } 65 66 /* TIME_WAIT (?) sucks.. */ 67 i = 1; 68 setsockopt( global.listen_socket, SOL_SOCKET, SO_REUSEADDR, &i, sizeof( i ) ); 69 70 #ifdef IPV6 71 memset( &listen_addr6, 0, sizeof( listen_addr6 ) ); 72 memset( &listen_addr, 0, sizeof( listen_addr ) ); 73 listen_addr6.sin6_family = AF_INET6; 74 listen_addr6.sin6_port = htons( global.conf->port ); 75 if( ( i = inet_pton( AF_INET6, ipv6_wrap( global.conf->iface ), &listen_addr6.sin6_addr ) ) != 1 ) 76 { 77 /* Forget about IPv6 in this function. */ 78 use_ipv6 = 0; 79 #endif 80 listen_addr.sin_family = AF_INET; 81 listen_addr.sin_port = htons( global.conf->port ); 82 if( strcmp( global.conf->iface, "::" ) == 0 ) 83 i = inet_pton( AF_INET, "0.0.0.0", &listen_addr.sin_addr ); 84 else 85 i = inet_pton( AF_INET, global.conf->iface, &listen_addr.sin_addr ); 86 #ifdef IPV6 87 } 88 #endif 89 90 if( i != 1 ) 91 { 92 log_message( LOGLVL_ERROR, "Couldn't parse address `%s'", global.conf->iface ); 93 return( -1 ); 94 } 95 96 #ifdef IPV6 97 if( !use_ipv6 || ( i = bind( global.listen_socket, (struct sockaddr *) &listen_addr6, sizeof( listen_addr6 ) ) ) == -1 ) 98 #endif 99 i = bind( global.listen_socket, (struct sockaddr *) &listen_addr, sizeof( listen_addr ) ); 100 if( i == -1 ) 101 { 102 log_error( "bind" ); 103 return( -1 ); 104 } 105 47 memset( &hints, 0, sizeof( hints ) ); 48 hints.ai_family = PF_UNSPEC; 49 hints.ai_socktype = SOCK_STREAM; 50 hints.ai_flags = AI_ADDRCONFIG | AI_PASSIVE; 51 52 i = getaddrinfo( global.conf->iface, global.conf->port, &hints, 53 &addrinfo_bind ); 54 if( i ) 55 { 56 log_message( LOGLVL_ERROR, "Couldn't parse address `%s': %s", 57 global.conf->iface, gai_strerror(i) ); 58 return -1; 59 } 60 61 global.listen_socket = -1; 62 63 for( res = addrinfo_bind; res; res = res->ai_next ) 64 { 65 global.listen_socket = socket( res->ai_family, res->ai_socktype, 66 res->ai_protocol ); 67 if( global.listen_socket < 0 ) 68 continue; 69 70 /* TIME_WAIT (?) sucks.. */ 71 i = 1; 72 setsockopt( global.listen_socket, SOL_SOCKET, SO_REUSEADDR, &i, 73 sizeof( i ) ); 74 75 i = bind( global.listen_socket, res->ai_addr, res->ai_addrlen ); 76 if( i == -1 ) 77 { 78 log_error( "bind" ); 79 return( -1 ); 80 } 81 82 break; 83 } 84 85 freeaddrinfo( addrinfo_bind ); 86 106 87 i = listen( global.listen_socket, 10 ); 107 88 if( i == -1 ) … … 125 106 exit( 0 ); 126 107 127 //chdir( "/" );108 chdir( "/" ); 128 109 129 110 /* Sometimes std* are already closed (for example when we're in a RESTARTed -
conf.c
ra6df0b5 rebb95b6 47 47 conf = g_new0( conf_t, 1 ); 48 48 49 #ifdef IPV6 50 conf->iface = "::"; 51 #else 52 conf->iface = "0.0.0.0"; 53 #endif 54 conf->port = 6667; 49 conf->iface = NULL; 50 conf->port = "6667"; 55 51 conf->nofork = 0; 56 52 conf->verbose = 0; … … 89 85 else if( opt == 'p' ) 90 86 { 91 if( ( sscanf( optarg, "%d", &i ) != 1 ) || ( i <= 0 ) || ( i > 65535 ) ) 92 { 93 fprintf( stderr, "Invalid port number: %s\n", optarg ); 94 return( NULL ); 95 } 96 conf->port = i; 87 g_free( conf->port ); 88 conf->port = g_strdup( optarg ); 97 89 } 98 90 else if( opt == 'P' ) … … 204 196 else if( g_strcasecmp( ini->key, "daemonport" ) == 0 ) 205 197 { 206 if( ( sscanf( ini->value, "%d", &i ) != 1 ) || ( i <= 0 ) || ( i > 65535 ) ) 207 { 208 fprintf( stderr, "Invalid port number: %s\n", ini->value ); 209 return( 0 ); 210 } 211 conf->port = i; 198 conf->port = g_strdup( ini->value ); 212 199 } 213 200 else if( g_strcasecmp( ini->key, "authmode" ) == 0 ) -
conf.h
ra6df0b5 rebb95b6 33 33 { 34 34 char *iface; 35 signed intport;35 char *port; 36 36 int nofork; 37 37 int verbose; … … 51 51 } conf_t; 52 52 53 conf_t *conf_load( int argc, char *argv[] );53 G_GNUC_MALLOC conf_t *conf_load( int argc, char *argv[] ); 54 54 void conf_loaddefaults( irc_t *irc ); 55 55 -
configure
ra6df0b5 rebb95b6 30 30 gcov=0 31 31 plugins=1 32 ipv6=133 32 34 33 events=glib … … 71 70 --gcov=0/1 Disable/enable test coverage reporting $gcov 72 71 --plugins=0/1 Disable/enable plugins support $plugins 73 74 --ipv6=0/1 IPv6 socket support $ipv675 72 76 73 --events=... Event handler (glib, libevent) $events … … 134 131 #define CPU "$cpu" 135 132 EOF 136 137 if [ "$ipv6" = "1" ]; then138 echo '#define IPV6' >> config.h139 fi140 133 141 134 if [ "$debug" = "1" ]; then -
crypting.h
ra6df0b5 rebb95b6 25 25 26 26 int checkpass (const char *password, const char *md5sum); 27 char *hashpass (const char *password);28 char *obfucrypt (char *line, const char *password);29 char *deobfucrypt (char *line, const char *password);27 G_GNUC_MALLOC char *hashpass (const char *password); 28 G_GNUC_MALLOC char *obfucrypt (char *line, const char *password); 29 G_GNUC_MALLOC char *deobfucrypt (char *line, const char *password); -
debian/postinst
ra6df0b5 rebb95b6 46 46 db_stop 47 47 48 ## Restore the helpfile in case we weren't upgrading but just reconfiguring: 49 if [ -e /usr/share/bitlbee/help.upgrading ]; then 50 if [ -e /usr/share/bitlbee/help.txt ]; then 51 rm -f /usr/share/bitlbee/help.upgrading 52 else 53 mv /usr/share/bitlbee/help.upgrading /usr/share/bitlbee/help.txt 54 fi 55 fi 56 48 57 if [ -n "$2" -a "$BITLBEE_UPGRADE_DONT_RESTART" != "1" ]; then 49 58 /etc/init.d/bitlbee restart -
debian/prerm
ra6df0b5 rebb95b6 2 2 3 3 if [ "$1" = "upgrade" ]; then 4 ## To prevent the help function from breaking in currently running BitlBee processes 5 rm -f /usr/share/bitlbee/help.txt 4 ## To prevent the help function from breaking in currently running 5 ## BitlBee processes. Have to do it like this because dpkg-reconfigure 6 ## looks a lot like an upgrade and we don't want to lose help.txt... 7 if [ -e /usr/share/bitlbee/help.txt ]; then 8 rm -f /usr/share/bitlbee/help.upgrading 9 mv /usr/share/bitlbee/help.txt /usr/share/bitlbee/help.upgrading 10 fi 6 11 else 7 12 /etc/init.d/bitlbee stop || exit 0 -
doc/user-guide/commands.xml
ra6df0b5 rebb95b6 836 836 <bitlbee-command name="join_chat"> 837 837 <short-description>Join a named groupchat/conference room</short-description> 838 <syntax> import_buddies<connection> <room name> [<channel name>] [<room nickname>] [<password>]</syntax>838 <syntax>join_chat <connection> <room name> [<channel name>] [<room nickname>] [<password>]</syntax> 839 839 840 840 <description> -
help.h
ra6df0b5 rebb95b6 43 43 } help_t; 44 44 45 help_t *help_init( help_t **help, const char *helpfile );45 G_GNUC_MALLOC help_t *help_init( help_t **help, const char *helpfile ); 46 46 char *help_get( help_t **help, char *string ); 47 47 -
irc.c
ra6df0b5 rebb95b6 45 45 { 46 46 irc_t *irc; 47 struct hostent *peer; 48 unsigned int i; 49 char buf[128]; 50 #ifdef IPV6 51 struct sockaddr_in6 sock6[1]; 52 unsigned int i6; 53 #endif 54 struct sockaddr_in sock[1]; 47 struct sockaddr_storage sock; 48 socklen_t socklen = sizeof( sock ); 55 49 56 50 irc = g_new0( irc_t, 1 ); … … 71 65 irc->channel = g_strdup( ROOT_CHAN ); 72 66 73 i = sizeof( *sock );74 #ifdef IPV675 i6 = sizeof( *sock6 );76 #endif77 78 67 if( global.conf->hostname ) 68 { 79 69 irc->myhost = g_strdup( global.conf->hostname ); 80 #ifdef IPV6 81 else if( getsockname( irc->fd, (struct sockaddr*) sock6, &i6 ) == 0 && sock6->sin6_family == AF_INET6 ) 82 { 83 if( ( peer = gethostbyaddr( (char*) &sock6->sin6_addr, sizeof( sock6->sin6_addr ), AF_INET6 ) ) ) 84 irc->myhost = g_strdup( peer->h_name ); 85 else if( inet_ntop( AF_INET6, &sock6->sin6_addr, buf, sizeof( buf ) - 1 ) != NULL ) 70 } 71 else if( getsockname( irc->fd, (struct sockaddr*) &sock, &socklen ) == 0 ) 72 { 73 char buf[NI_MAXHOST+1]; 74 75 if( getnameinfo( (struct sockaddr *) &sock, socklen, buf, 76 NI_MAXHOST, NULL, -1, 0 ) == 0 ) 77 { 86 78 irc->myhost = g_strdup( ipv6_unwrap( buf ) ); 87 } 88 #endif 89 else if( getsockname( irc->fd, (struct sockaddr*) sock, &i ) == 0 && sock->sin_family == AF_INET ) 90 { 91 if( ( peer = gethostbyaddr( (char*) &sock->sin_addr, sizeof( sock->sin_addr ), AF_INET ) ) ) 92 irc->myhost = g_strdup( peer->h_name ); 93 else if( inet_ntop( AF_INET, &sock->sin_addr, buf, sizeof( buf ) - 1 ) != NULL ) 94 irc->myhost = g_strdup( buf ); 95 } 96 97 i = sizeof( *sock ); 98 #ifdef IPV6 99 i6 = sizeof( *sock6 ); 100 if( getpeername( irc->fd, (struct sockaddr*) sock6, &i6 ) == 0 && sock6->sin6_family == AF_INET6 ) 101 { 102 if( ( peer = gethostbyaddr( (char*) &sock6->sin6_addr, sizeof( sock6->sin6_addr ), AF_INET6 ) ) ) 103 irc->host = g_strdup( peer->h_name ); 104 else if( inet_ntop( AF_INET6, &sock6->sin6_addr, buf, sizeof( buf ) - 1 ) != NULL ) 79 } 80 else 81 { 82 /* Rare, but possible. */ 83 strncpy( irc->myhost, "localhost.localdomain", NI_MAXHOST ); 84 } 85 } 86 87 if( getpeername( irc->fd, (struct sockaddr*) &sock, &socklen ) == 0 ) 88 { 89 char buf[NI_MAXHOST+1]; 90 91 if( getnameinfo( (struct sockaddr *)&sock, socklen, buf, 92 NI_MAXHOST, NULL, -1, 0 ) == 0 ) 93 { 105 94 irc->host = g_strdup( ipv6_unwrap( buf ) ); 106 } 107 else 108 #endif 109 if( getpeername( irc->fd, (struct sockaddr*) sock, &i ) == 0 && sock->sin_family == AF_INET ) 110 { 111 if( ( peer = gethostbyaddr( (char*) &sock->sin_addr, sizeof( sock->sin_addr ), AF_INET ) ) ) 112 irc->host = g_strdup( peer->h_name ); 113 else if( inet_ntop( AF_INET, &sock->sin_addr, buf, sizeof( buf ) - 1 ) != NULL ) 114 irc->host = g_strdup( buf ); 115 } 116 117 /* Rare, but possible. */ 118 if( !irc->host ) irc->host = g_strdup( "localhost." ); 119 if( !irc->myhost ) irc->myhost = g_strdup( "localhost." ); 120 95 } 96 else 97 { 98 /* Rare, but possible. */ 99 strncpy( irc->host, "localhost.localdomain", NI_MAXHOST ); 100 } 101 } 102 121 103 if( global.conf->ping_interval > 0 && global.conf->ping_timeout > 0 ) 122 104 irc->ping_source_id = b_timeout_add( global.conf->ping_interval * 1000, irc_userping, irc ); … … 744 726 irc_spawn( irc, u ); 745 727 746 irc_usermsg( irc, "Welcome to the BitlBee gateway!\n\nIf you've never used BitlBee before, please do read the help information using the \x02help\x02 command. Lots of FAQ 's are answered there." );728 irc_usermsg( irc, "Welcome to the BitlBee gateway!\n\nIf you've never used BitlBee before, please do read the help information using the \x02help\x02 command. Lots of FAQs are answered there." ); 747 729 748 730 if( global.conf->runmode == RUNMODE_FORKDAEMON || global.conf->runmode == RUNMODE_DAEMON ) -
lib/misc.c
ra6df0b5 rebb95b6 322 322 } 323 323 324 #ifdef IPV6325 324 /* Wrap an IPv4 address into IPv6 space. Not thread-safe... */ 326 325 char *ipv6_wrap( char *src ) … … 360 359 return ( src + 7 ); 361 360 } 362 #endif363 361 364 362 /* Convert from one charset to another. -
lib/proxy.c
ra6df0b5 rebb95b6 211 211 } 212 212 213 if ( proxyuser && *proxyuser) {213 if (strlen(proxyuser) > 0) { 214 214 char *t1, *t2; 215 215 t1 = g_strdup_printf("%s:%s", proxyuser, proxypass); … … 539 539 phb->data = data; 540 540 541 if ((proxytype == PROXY_NONE) || !proxyhost || !proxyhost[0]|| !proxyport || (proxyport == -1))541 if ((proxytype == PROXY_NONE) || strlen(proxyhost) > 0 || !proxyport || (proxyport == -1)) 542 542 return proxy_connect_none(host, port, phb); 543 543 else if (proxytype == PROXY_HTTP) -
protocols/jabber/io.c
ra6df0b5 rebb95b6 470 470 } 471 471 472 static xt_status jabber_pkt_misc( struct xt_node *node, gpointer data )473 {474 printf( "Received unknown packet:\n" );475 xt_print( node );476 477 return XT_HANDLED;478 }479 480 472 static xt_status jabber_xmlconsole( struct xt_node *node, gpointer data ) 481 473 { … … 509 501 { "success", "stream:stream", sasl_pkt_result }, 510 502 { "failure", "stream:stream", sasl_pkt_result }, 511 { NULL, "stream:stream", jabber_pkt_misc },512 503 { NULL, NULL, NULL } 513 504 }; -
protocols/jabber/presence.c
ra6df0b5 rebb95b6 170 170 /* What else to do with it? */ 171 171 } 172 else173 {174 printf( "Received PRES from %s:\n", from );175 xt_print( node );176 }177 172 178 173 return XT_HANDLED; -
protocols/jabber/xmltree.c
ra6df0b5 rebb95b6 305 305 } 306 306 307 #ifdef DEBUG 307 308 void xt_print( struct xt_node *node ) 308 309 { … … 355 356 printf( "</%s>\n", node->name ); 356 357 } 358 #endif 357 359 358 360 struct xt_node *xt_dup( struct xt_node *node ) -
protocols/nogaim.c
ra6df0b5 rebb95b6 36 36 #include <ctype.h> 37 37 38 static int remove_chat_buddy_silent( struct groupchat *b, c har *handle );38 static int remove_chat_buddy_silent( struct groupchat *b, const char *handle ); 39 39 40 40 GSList *connections; … … 578 578 /* Remove him/her from the groupchats to prevent PART messages after he/she QUIT already */ 579 579 for( c = ic->groupchats; c; c = c->next ) 580 remove_chat_buddy_silent( c, (char*)handle );580 remove_chat_buddy_silent( c, handle ); 581 581 } 582 582 … … 849 849 } 850 850 851 static int remove_chat_buddy_silent( struct groupchat *b, c har *handle )851 static int remove_chat_buddy_silent( struct groupchat *b, const char *handle ) 852 852 { 853 853 GList *i; -
protocols/oscar/oscar.c
ra6df0b5 rebb95b6 1066 1066 g_snprintf(tmp, BUF_LONG, "%s", args->msg); 1067 1067 } 1068 } else 1068 } else if (args->mpmsg.numparts == 0) { 1069 1069 g_snprintf(tmp, BUF_LONG, "%s", args->msg); 1070 } else { 1071 int i; 1072 1073 *tmp = 0; 1074 for (i = 0; i < args->mpmsg.numparts; i ++) { 1075 g_strlcat(tmp, (char*) args->mpmsg.parts[i].data, BUF_LONG); 1076 g_strlcat(tmp, "\n", BUF_LONG); 1077 } 1078 } 1070 1079 1071 1080 strip_linefeed(tmp); -
storage.h
ra6df0b5 rebb95b6 62 62 63 63 void register_storage_backend(storage_t *); 64 G List *storage_init(const char *primary, char **migrate);64 G_GNUC_MALLOC GList *storage_init(const char *primary, char **migrate); 65 65 66 66 #endif /* __STORAGE_H__ */
Note: See TracChangeset
for help on using the changeset viewer.