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 ); } |