aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xconfigure17
-rw-r--r--doc/CHANGES74
-rw-r--r--protocols/msn/msn.c17
-rw-r--r--protocols/nogaim.c8
-rw-r--r--protocols/oscar/oscar.c2
-rw-r--r--set.c4
-rw-r--r--storage_text.c2
-rw-r--r--storage_xml.c2
8 files changed, 104 insertions, 22 deletions
diff --git a/configure b/configure
index 78ba44e1..07e9f9d0 100755
--- a/configure
+++ b/configure
@@ -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;
diff --git a/set.c b/set.c
index d172a79f..8d872503 100644
--- a/set.c
+++ b/set.c
@@ -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 );
}