Changeset 2231302
- Timestamp:
- 2007-11-05T22:59:49Z (17 years ago)
- Branches:
- master
- Children:
- be68d99
- Parents:
- 5e2615a (diff), 7435ccf (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:
-
- 11 edited
Legend:
- Unmodified
- Added
- Removed
-
bitlbee.c
r5e2615a r2231302 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 listen_addr6.sin6_family = AF_INET6; 73 listen_addr6.sin6_port = htons( global.conf->port ); 74 if( ( i = inet_pton( AF_INET6, ipv6_wrap( global.conf->iface ), &listen_addr6.sin6_addr ) ) != 1 ) 75 { 76 /* Forget about IPv6 in this function. */ 77 use_ipv6 = 0; 78 #endif 79 memset( &listen_addr, 0, sizeof( listen_addr ) ); 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 ) -
conf.c
r5e2615a r2231302 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
r5e2615a r2231302 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
r5e2615a r2231302 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
r5e2615a r2231302 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); -
help.h
r5e2615a r2231302 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
r5e2615a r2231302 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 ); -
lib/misc.c
r5e2615a r2231302 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
r5e2615a r2231302 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/nogaim.c
r5e2615a r2231302 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; … … 556 556 /* Remove him/her from the conversations to prevent PART messages after he/she QUIT already */ 557 557 for( c = ic->conversations; c; c = c->next ) 558 remove_chat_buddy_silent( c, (char*)handle );558 remove_chat_buddy_silent( c, handle ); 559 559 } 560 560 … … 821 821 } 822 822 823 static int remove_chat_buddy_silent( struct groupchat *b, c har *handle )823 static int remove_chat_buddy_silent( struct groupchat *b, const char *handle ) 824 824 { 825 825 GList *i; -
storage.h
r5e2615a r2231302 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.