diff options
| -rwxr-xr-x | configure | 17 | ||||
| -rw-r--r-- | doc/CHANGES | 74 | ||||
| -rw-r--r-- | protocols/msn/msn.c | 17 | ||||
| -rw-r--r-- | protocols/nogaim.c | 8 | ||||
| -rw-r--r-- | protocols/oscar/oscar.c | 2 | ||||
| -rw-r--r-- | set.c | 4 | ||||
| -rw-r--r-- | storage_text.c | 2 | ||||
| -rw-r--r-- | storage_xml.c | 2 | 
8 files changed, 104 insertions, 22 deletions
| @@ -30,12 +30,14 @@ strip=1  ipv6=1  events=glib -ldap=auto +ldap=0  ssl=auto  arch=`uname -s`  cpu=`uname -m` +GLIB_MIN_VERSION=2.4 +  echo BitlBee configure  while [ -n "$1" ]; do @@ -174,13 +176,20 @@ if [ -z "$PKG_CONFIG" ]; then  fi  if $PKG_CONFIG --version > /dev/null 2>/dev/null && $PKG_CONFIG glib-2.0; then -	cat<<EOF>>Makefile.settings +	if $PKG_CONFIG glib-2.0 --atleast-version=$GLIB_MIN_VERSION; then +		cat<<EOF>>Makefile.settings  EFLAGS+=`$PKG_CONFIG --libs glib-2.0 gmodule-2.0`  CFLAGS+=`$PKG_CONFIG --cflags glib-2.0 gmodule-2.0`  EOF +	else +		echo +		echo 'Found glib2 '`$PKG_CONFIG glib-2.0 --modversion`', but version '$GLIB_MIN_VERSION' or newer is required.' +		exit 1 +	fi  else +	echo  	echo 'Cannot find glib2 development libraries, aborting. (Install libglib2-dev?)' -	exit 1; +	exit 1  fi  if [ "$events" = "libevent" ]; then @@ -289,7 +298,7 @@ elif [ "$ssl" = "openssl" ]; then  	ret=1  elif [ "$ssl" = "bogus" ]; then  	echo -	echo 'Using bogus SSL code. This means some features have to be disabled.' +	echo 'Using bogus SSL code. This means some features will not work properly.'  	## Yes, you, at the console! How can you authenticate if you don't have any SSL!?  	if [ "$msn" = "1" ]; then diff --git a/doc/CHANGES b/doc/CHANGES index cd100741..e9435216 100644 --- a/doc/CHANGES +++ b/doc/CHANGES @@ -1,4 +1,23 @@  Version x.x: +- Added ForkDaemon mode next to the existing Daemon- and inetd modes. With +  ForkDaemon you can run BitlBee as a stand-alone daemon and every connection +  will run in its own process. No more need to configure inetd, and still you +  don't get the stability problems BitlBee unfortunately still has in ordinary +  (one-process) daemon mode. +- Added inter-process/connection communication. This made it possible to +  implement some IRC operator features like WALLOPs, KILL, DIE, REHASH and +  more. +- Added hooks for using libevent instead of GLib for event handling. This +  should improve scalability, although this won't really be useful yet because +  the one-process daemon mode is not reliable enough. +- BitlBee now makes the buddy quits when doing "account off" look like a +  netsplit. Modern IRC clients show this in a different, more compact way. +- GLib 1.x compatibility was dropped. BitlBee now requires GLib 2.4 or newer. +  This allows us to use more GLib features (like the XML parser). By now GLib +  1.x is so old that supporting it really isn't necessary anymore. +- Many, many, MANY little changes, improvements, fixes. Using non-blocking +  I/O as much as possible, fixed lots of little bugs (including bugs that +  affected daemon mode stability). See the bzr logs for more information.  - Most important change: New file format for user data (accounts, nicks and    settings). Migration to the new format should happen transparently,    BitlBee will read the old files and once you quit/save it will save in the @@ -22,6 +41,61 @@ Version x.x:      and password for the existing connection.    * Per-account settings (see the new "account set" command). +Version 1.0.3: +- Fixed ugliness in block/allow list commands (still not perfect though, the +  list is empty or not up-to-date for most protocols). +- OSCAR module doesn't send the ICQ web-aware flag anymore, which seems to +  get rid of a lot of ICQ spam. +- added show_got_added(), BitlBee asks you, after authorizing someone, if you +  want to add him/her to your list too. +- add -tmp, mainly convenient if you want to talk to people who are not in +  your list. +- Fixed ISON command, should work better with irssi now. +- Fixed compilation with tcc. +- Fixed xinetd-file. +- Misc. (crash)bug fixes, including one in the root command parsing that +  caused mysterious error messages sometimes. + +Finished 24 Jun 2006 (Happy 4th birthday, BitlBee!) + +Version 1.0.2: +- Pieces of code cleanup, fixes for possible problems in error checking. +- Fixed an auto-reconnect cleanup problem that caused crashes in daemon mode. +- /AWAY in daemon mode now doesn't set the away state for every connection +  anymore. +- Fixed a crash-bug on empty help subjects. +- Jabber now correctly sets the current away state when connecting. +- Added Invisible and Hidden to the away state alias list, invisible mode +  should be pretty usable now. +- Fixed handling of iconv(): It's now done for everything that goes between +  BitlBee and the IRC client, instead of doing it (almost) every time +  something goes to or come from the IM-modules. Should've thought about +  that before. :-) +- When cleaning up MSN switchboards with unsent msgs, it now also says which +  contact those messages were meant for. +- You can now use the block and allow commands to see your current block/ +  allow list. + +Finished 1 Apr 2006 + +Version 1.0.1: +- Support for AIM groupchats. +- Improved typing notification support for at least AIM. +- BitlBee sends a 005 reply when logging in, this informs modern IRC clients +  of some of BitlBee's capabilities. This might also solve problems some +  people were having with the new control channel name. +- MSN switchboards are now properly reset when talking to a person who is +  offline. This fixes problems with messages to MSN people that sometimes +  didn't arrive. +- Fixed one of the problems that made BitlBee show online Jabber people as +  offline. +- Fixed problems with commas in MSN passwords. +- Added some consts for read-only data, which should make the BitlBee per- +  process memory footprint a bit smaller. +- Other bits of code cleanup. + +Finished 14 Jan 2006 +  Version 1.0:  - Removed some crashy debugging code.  - QUIT command now works before logging in. (Mainly an RFC-compliancy fix.) diff --git a/protocols/msn/msn.c b/protocols/msn/msn.c index 7aa384e6..663bff8c 100644 --- a/protocols/msn/msn.c +++ b/protocols/msn/msn.c @@ -41,8 +41,6 @@ static void msn_login( account_t *acc )  	struct gaim_connection *gc = new_gaim_conn( acc );  	struct msn_data *md = g_new0( struct msn_data, 1 ); -	set_login_progress( gc, 1, "Connecting" ); -	  	gc->proto_data = md;  	md->fd = -1; @@ -53,19 +51,20 @@ static void msn_login( account_t *acc )  		return;  	} +	set_login_progress( gc, 1, "Connecting" ); +	  	md->fd = proxy_connect( "messenger.hotmail.com", 1863, msn_ns_connected, gc );  	if( md->fd < 0 )  	{  		hide_login_progress( gc, "Could not connect to server" );  		signoff( gc ); +		return;  	} -	else -	{ -		md->gc = gc; -		md->away_state = msn_away_state_list; -		 -		msn_connections = g_slist_append( msn_connections, gc ); -	} +	 +	md->gc = gc; +	md->away_state = msn_away_state_list; +	 +	msn_connections = g_slist_append( msn_connections, gc );  }  static void msn_close( struct gaim_connection *gc ) diff --git a/protocols/nogaim.c b/protocols/nogaim.c index 3e9d7c07..b627a23a 100644 --- a/protocols/nogaim.c +++ b/protocols/nogaim.c @@ -577,7 +577,7 @@ void serv_got_update( struct gaim_connection *gc, char *handle, int loggedin, in  	    ( ( ( u->online != oo ) && !u->away ) ||			/* Voice joining people */  	      ( ( u->online == oo ) && ( oa == !u->away ) ) ) )		/* (De)voice people changing state */  	{ -		irc_write( gc->irc, ":%s!%s@%s MODE %s %cv %s", gc->irc->mynick, gc->irc->mynick, gc->irc->myhost, +		irc_write( gc->irc, ":%s MODE %s %cv %s", gc->irc->myhost,  		                                                gc->irc->channel, u->away?'-':'+', u->nick );  	}  } @@ -911,8 +911,8 @@ char *set_eval_away_devoice( set_t *set, char *value )  				if( ( strlen( list ) + strlen( u->nick ) ) >= 79 )  				{  					for( i = 0; i < count; v[i++] = 'v' ); v[i] = 0; -					irc_write( irc, ":%s!%s@%s MODE %s %c%s%s", -					           irc->mynick, irc->mynick, irc->myhost, +					irc_write( irc, ":%s MODE %s %c%s%s", +					           irc->myhost,  		        			   irc->channel, pm, v, list );  					*list = 0; @@ -927,7 +927,7 @@ char *set_eval_away_devoice( set_t *set, char *value )  		/* $v = 'v' x $i */  		for( i = 0; i < count; v[i++] = 'v' ); v[i] = 0; -		irc_write( irc, ":%s!%s@%s MODE %s %c%s%s", irc->mynick, irc->mynick, irc->myhost, +		irc_write( irc, ":%s MODE %s %c%s%s", irc->myhost,  		                                            irc->channel, pm, v, list );  	} diff --git a/protocols/oscar/oscar.c b/protocols/oscar/oscar.c index b8cf521b..72078b3c 100644 --- a/protocols/oscar/oscar.c +++ b/protocols/oscar/oscar.c @@ -2296,7 +2296,7 @@ static int gaim_icqinfo(aim_session_t *sess, aim_frame_t *fr, ...)                  }          }          info_string_append(str, "\n", _("Mobile Phone"), info->mobile); -        info_string_append(str, "\n", _("Gender"), info->gender==1 ? _("Female") : _("Male")); +        info_string_append(str, "\n", _("Gender"), info->gender==1 ? _("Female") : info->gender==2 ? _("Male") : _("Unknown"));          if (info->birthyear || info->birthmonth || info->birthday) {                  char date[30];                  struct tm tm; @@ -172,13 +172,13 @@ void set_del( set_t **head, char *key )  char *set_eval_int( set_t *set, char *value )  { -	char *s; +	char *s = value;  	/* Allow a minus at the first position. */  	if( *s == '-' )  		s ++; -	for( s = value; *s; s ++ ) +	for( ; *s; s ++ )  		if( !isdigit( *s ) )  			return NULL; diff --git a/storage_text.c b/storage_text.c index acc9eefe..3a11facf 100644 --- a/storage_text.c +++ b/storage_text.c @@ -30,7 +30,7 @@  static void text_init (void)  {  	if( access( global.conf->configdir, F_OK ) != 0 ) -		log_message( LOGLVL_WARNING, "The configuration directory %s does not exist. Configuration won't be saved.", CONFIG ); +		log_message( LOGLVL_WARNING, "The configuration directory %s does not exist. Configuration won't be saved.", global.conf->configdir );  	else if( access( global.conf->configdir, R_OK ) != 0 || access( global.conf->configdir, W_OK ) != 0 )  		log_message( LOGLVL_WARNING, "Permission problem: Can't read/write from/to %s.", global.conf->configdir );  } diff --git a/storage_xml.c b/storage_xml.c index 52240a36..ba311120 100644 --- a/storage_xml.c +++ b/storage_xml.c @@ -262,7 +262,7 @@ GMarkupParser xml_parser =  static void xml_init( void )  {  	if( access( global.conf->configdir, F_OK ) != 0 ) -		log_message( LOGLVL_WARNING, "The configuration directory %s does not exist. Configuration won't be saved.", CONFIG ); +		log_message( LOGLVL_WARNING, "The configuration directory %s does not exist. Configuration won't be saved.", global.conf->configdir );  	else if( access( global.conf->configdir, R_OK ) != 0 || access( global.conf->configdir, W_OK ) != 0 )  		log_message( LOGLVL_WARNING, "Permission problem: Can't read/write from/to %s.", global.conf->configdir );  } | 
