diff options
| author | ulim <a.sporto+bee@gmail.com> | 2008-02-15 18:38:57 +0100 | 
|---|---|---|
| committer | ulim <a.sporto+bee@gmail.com> | 2008-02-15 18:38:57 +0100 | 
| commit | 1ba7e8f1d28c4876ea0b787f1e4ebb5607f48895 (patch) | |
| tree | 5ba8bed0e1ba83c56a855059e88e3d2a205fe88c /irc.c | |
| parent | 0fbd3a6d26d8fe747bd5e061748e75f397801064 (diff) | |
| parent | eeb85a8a880fefe655eb31b6322136b61ee969e2 (diff) | |
Merged with upstream r328
  Wilmer van der Gaast 2008-02-11 Got rid of some noise at startup: complaining when the default configuration
    Wilmer van der Gaast 2008-02-10 Added support for password-protected Jabber chatrooms.
    Wilmer van der Gaast 2008-02-10 Making AI_ADDRCONFIG optional, it doesn't exist on at least NetBSD and
    Wilmer van der Gaast 2008-02-09 Restored "add -tmp". A bit hackish, but it will do for now.
    Wilmer van der Gaast 2008-02-07 Fixed getnameinfo() calls, this fixes Solaris stability issues. Thanks to
    Wilmer van der Gaast 2008-02-04 Added bogus G_GNUC_MALLOC to restore GLib 2.4 compatibility (hopefully).
    Wilmer van der Gaast 2008-02-03 Messages from the user are also included in backlogs when joining a Jabber
    Wilmer van der Gaast 2008-02-03 Disabling "Unknown command" warnings since they're very noisy and pretty
    Wilmer van der Gaast 2008-02-03 Implemented XEP-0115. This adds some info to the <presence/> tags so
    Wilmer van der Gaast 2008-02-03 Saner garbage collection of cached packets in the Jabber module. Now
    Wilmer van der Gaast 2008-02-02 Added help_free() and cleaned up some very stale help-related stuff I
    Wilmer van der Gaast 2008-01-30 Fixed handling of OSCAR multi-part messages... They're not arrays, they're
    Wilmer van der Gaast 2008-01-24 Keeping track of valid Jabber connections so _connected() events will be
    Wilmer van der Gaast 2008-01-24 Fixed two valgrind warnings (partially uninitialized "struct tm" vars.)
    Wilmer van der Gaast 2008-01-20 The Jabber module now uses imcb_chat_log() instead of imcb_log() where
    Wilmer van der Gaast 2008-01-20 Added imcb_chat_log() for chatroom system messages, so they can be
    Wilmer van der Gaast 2008-01-20 GET_BUDDY_FIRST wasn't actually implemented, even though it was in use
    Wilmer van der Gaast 2008-01-19 Using test -f instead of test -e. This breaks if the include files are
    Wilmer van der Gaast 2008-01-19 Added byte swapping code to the new MD5 checksumming code to make it work
    Wilmer van der Gaast 2008-01-18 Moving imcb_chat_new() to a saner location (no code changes) and fixing
    Wilmer van der Gaast 2008-01-17 Apparently ext_yahoo_got_im can be called with msg=NULL, so it should be
    Wilmer van der Gaast 2008-01-17 Fixing some Solaris compiler warnings (u_int->uint, adding some typecasts
    Wilmer van der Gaast 2008-01-13 Fixed handing of failed groupchat joins.
    Wilmer van der Gaast 2008-01-13 Fixed "Conditional jump or move depends on uninitialised value(s)" at
    Wilmer van der Gaast 2008-01-13 Fixed quickstart2. (Bug #349.)
    Wilmer van der Gaast 2008-01-13 Different handling of charset mismatches before login time. Ignoring a
    Wilmer van der Gaast 2008-01-12 When a switchboard connection dies (at the TCP level) and there are still
    Wilmer van der Gaast 2008-01-12 Killed info_string_append() and now showing the IP address of ICQ users
    Wilmer van der Gaast 2008-01-11 Fixing bug #344, now away states should always be correct, even when people
    Wilmer van der Gaast 2008-01-11 Adding own handle to protocol name in blist output for people with multiple
    Wilmer van der Gaast 2008-01-10 Now setting odata->icq properly again, this got lost some time ago, which
    Wilmer van der Gaast 2008-01-06 More consistency in error/warning errors. Until now "WARNING:" was usually
    Wilmer van der Gaast 2008-01-06 Changed warning message about unsent MSN messages. It should show the actual
    Wilmer van der Gaast 2008-01-05 Added "mail_notifications" setting. Who needs those notifications anyway?
    Wilmer van der Gaast 2008-01-05 Build fix from vmiklos.
    Wilmer van der Gaast 2008-01-05 Added handling of MSN switchboard NAK messages. Untested, but hey, it
    Wilmer van der Gaast 2008-01-05 Removed closure->result. I was planning to add some more stuff, but will
    Miklos Vajna 2007-12-31 encode: md5.c is no longer in protocols/, it's in lib/
    Wilmer van der Gaast 2007-12-28 Fixed return value check in proxy_connect(), since on some systems
    Wilmer van der Gaast 2007-12-28 Added missing return in jabber_login().
    Wilmer van der Gaast 2007-12-16 Implemented XEP-0199 (patch from misc@mandriva.org).
    Wilmer van der Gaast 2007-12-12 Checking conn->xcred before trying to clean it up since GnuTLS doesn't
    Wilmer van der Gaast 2007-12-12 Killed the <server> parameter to "account add" and changed the default
    Wilmer van der Gaast 2007-12-12 Fixed sockerr_again() usage in Jabber module to (hopefully) fix a 100% CPU
    Wilmer van der Gaast 2007-12-10 Don't allow nicks that start with a number.
    Wilmer van der Gaast 2007-12-10 Fixed "set xxx" syntax (it showed all settings instead of just xxx).
    Wilmer van der Gaast 2007-12-09 If I keep forgetting to credit people in commit msgs I should probably add
    Wilmer van der Gaast 2007-12-09 Added /invite support for Jabber chatrooms (and fixed the argument order
Diffstat (limited to 'irc.c')
| -rw-r--r-- | irc.c | 33 | 
1 files changed, 18 insertions, 15 deletions
| @@ -77,7 +77,7 @@ irc_t *irc_new( int fd )  		char buf[NI_MAXHOST+1];  		if( getnameinfo( (struct sockaddr *) &sock, socklen, buf, -		                 NI_MAXHOST, NULL, -1, 0 ) == 0 ) +		                 NI_MAXHOST, NULL, 0, 0 ) == 0 )  		{  			irc->myhost = g_strdup( ipv6_unwrap( buf ) );  		} @@ -88,7 +88,7 @@ irc_t *irc_new( int fd )  		char buf[NI_MAXHOST+1];  		if( getnameinfo( (struct sockaddr *)&sock, socklen, buf, -		                 NI_MAXHOST, NULL, -1, 0 ) == 0 ) +		                 NI_MAXHOST, NULL, 0, 0 ) == 0 )  		{  			irc->host = g_strdup( ipv6_unwrap( buf ) );  		} @@ -192,7 +192,6 @@ void irc_free(irc_t * irc)  {  	account_t *account;  	user_t *user, *usertmp; -	help_t *helpnode, *helpnodetmp;  	log_message( LOGLVL_INFO, "Destroying connection with fd %d", irc->fd ); @@ -269,16 +268,6 @@ void irc_free(irc_t * irc)  	g_hash_table_foreach_remove(irc->watches, irc_free_hashkey, NULL);  	g_hash_table_destroy(irc->watches); -	if (irc->help != NULL) { -		helpnode = irc->help; -		while (helpnode != NULL) { -			g_free(helpnode->string); -			 -			helpnodetmp = helpnode; -			helpnode = helpnode->next; -			g_free(helpnodetmp); -		} -	}  	g_free(irc);  	if( global.conf->runmode == RUNMODE_INETD || global.conf->runmode == RUNMODE_FORKDAEMON ) @@ -328,15 +317,29 @@ void irc_process( irc_t *irc )  				conv[IRC_MAX_LINE] = 0;  				if( do_iconv( cs, "UTF-8", lines[i], conv, 0, IRC_MAX_LINE - 2 ) == -1 )  				{ +					/* GLib can do strange things if things are not in the expected charset, +					   so let's be a little bit paranoid here: */  					if( irc->status & USTATUS_LOGGED_IN ) -						irc_usermsg( irc, "ERROR: Charset mismatch detected. The charset " +					{ +						irc_usermsg( irc, "Error: Charset mismatch detected. The charset "  						                  "setting is currently set to %s, so please make "  						                  "sure your IRC client will send and accept text in "  						                  "that charset, or tell BitlBee which charset to "  						                  "expect by changing the charset setting. See "  						                  "`help set charset' for more information. Your "  						                  "message was ignored.", cs ); -					*conv = 0; +						*conv = 0; +					} +					else +					{ +						irc_write( irc, ":%s NOTICE AUTH :%s", irc->myhost, +						           "Warning: invalid (non-UTF8) characters received at login time." ); +						 +						strncpy( conv, lines[i], IRC_MAX_LINE ); +						for( temp = conv; *temp; temp ++ ) +							if( *temp & 0x80 ) +								*temp = '?'; +					}  				}  				lines[i] = conv;  			} | 
