aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--bitlbee.c10
-rw-r--r--bitlbee.h2
-rwxr-xr-xconfigure26
-rw-r--r--doc/AUTHORS2
-rw-r--r--doc/CHANGES22
-rw-r--r--doc/FAQ26
-rw-r--r--doc/README17
-rw-r--r--doc/TODO40
-rw-r--r--doc/user-guide/user-guide.xml19
-rw-r--r--irc.c2
-rw-r--r--protocols/jabber/jabber.c21
-rw-r--r--protocols/nogaim.c13
-rw-r--r--protocols/proxy.c4
-rw-r--r--protocols/yahoo/crypt.c4
-rw-r--r--protocols/yahoo/libyahoo2.c4
-rw-r--r--protocols/yahoo/yahoo_httplib.c4
-rw-r--r--protocols/yahoo/yahoo_util.c4
17 files changed, 90 insertions, 130 deletions
diff --git a/bitlbee.c b/bitlbee.c
index 54170816..fd73b2ae 100644
--- a/bitlbee.c
+++ b/bitlbee.c
@@ -164,7 +164,15 @@ gboolean bitlbee_io_current_client_read( GIOChannel *source, GIOCondition condit
irc_free( irc );
return FALSE;
}
-
+
+ /* Very naughty, go read the RFCs! >:) */
+ if( irc->readbuffer && ( strlen( irc->readbuffer ) > 1024 ) )
+ {
+ log_message( LOGLVL_ERROR, "Maximum line length exceeded." );
+ irc_free( irc );
+ return FALSE;
+ }
+
return TRUE;
}
diff --git a/bitlbee.h b/bitlbee.h
index e4cc2868..7ecc8d5d 100644
--- a/bitlbee.h
+++ b/bitlbee.h
@@ -29,7 +29,7 @@
#define _GNU_SOURCE /* Stupid GNU :-P */
#define PACKAGE "BitlBee"
-#define BITLBEE_VERSION "1.0pre"
+#define BITLBEE_VERSION "1.0"
#define VERSION BITLBEE_VERSION
#define MAX_STRING 128
diff --git a/configure b/configure
index 5d478010..e172d40d 100755
--- a/configure
+++ b/configure
@@ -56,7 +56,6 @@ Option Description Default
--debug=0/1 Disable/enable debugging $debug
--strip=0/1 Disable/enable binary stripping $strip
---flood=0/1 Flood protection $flood
--ipv6=0/1 IPv6 socket support $ipv6
--ssl=... SSL library to use (gnutls, nss, openssl, bogus, auto)
@@ -286,7 +285,11 @@ else
fi
if [ "$flood" = 1 ]; then
- echo '#define FLOOD_SEND' >> config.h
+ # echo '#define FLOOD_SEND' >> config.h
+ echo 'Flood protection is disabled in this release because of too many bugs.' 2> /dev/stderr
+ rm config.h
+ rm Makefile.settings
+ exit 1
fi
if [ -n "$BITLBEE_VERSION" ]; then
@@ -344,33 +347,28 @@ echo
echo Architecture: $arch
case "$arch" in
Linux )
- echo 'Linux.'
;;
GNU/* )
- echo 'Debian with non-Linux kernel?'
;;
*BSD )
- echo '*BSD.'
echo 'EFLAGS+=-liconv' >> Makefile.settings;
;;
SunOS )
- echo 'Solaris.'
echo 'EFLAGS+=-lresolv -lnsl -lsocket' >> Makefile.settings
echo 'STRIP=\# skip strip' >> Makefile.settings
echo 'EFLAGS+=-liconv' >> Makefile.settings;
;;
Darwin )
- echo 'Darwin/Mac OS X.'
echo 'EFLAGS+=-liconv' >> Makefile.settings;
;;
IRIX )
- echo 'IRIX.'
;;
CYGWIN* )
echo 'Cygwin is not officially supported.'
;;
* )
- echo 'We haven'\''t tested BitlBee on many platforms yet, yours is untested. YMMV. Please report any problems to <wilmer@gaast.net>.'
+ echo 'We haven'\''t tested BitlBee on many platforms yet, yours is untested. YMMV.'
+ echo 'Please report any problems at http://bugs.bitlbee.org/.'
;;
esac
@@ -393,11 +391,11 @@ if [ "$msn" = "1" ]; then
echo ' Using SSL library: '$ssl;
fi
-if [ "$flood" = "0" ]; then
- echo ' Flood protection disabled.';
-else
- echo ' Flood protection enabled.';
-fi
+#if [ "$flood" = "0" ]; then
+# echo ' Flood protection disabled.';
+#else
+# echo ' Flood protection enabled.';
+#fi
if [ -n "$protocols" ]; then
echo ' Building with these protocols:' $protocols;
diff --git a/doc/AUTHORS b/doc/AUTHORS
index 82d81862..6dab1040 100644
--- a/doc/AUTHORS
+++ b/doc/AUTHORS
@@ -3,7 +3,7 @@ Current developers:
Wilmer van der Gaast <wilmer@gaast.net>
Main developer
-Jelmer 'ctrlsoft' Vernooij <jelmer@nl.linux.org>
+Jelmer 'ctrlsoft' Vernooij <jelmer@samba.org>
Documentation, general hacking, Win32 port
Maurits Dijkstra <mauritsd@xs4all.nl>
diff --git a/doc/CHANGES b/doc/CHANGES
index 2981a378..7b95e8cb 100644
--- a/doc/CHANGES
+++ b/doc/CHANGES
@@ -10,8 +10,26 @@ Version 1.0:
- Cleaned up some unnecessary code in the Jabber module, and implemented
handlers for headline messages (which allows you to use RSS-to-Jabber
gateways).
-
-Finished ...
+- Lowered the line splitting limit a bit to fix data loss issues.
+- The $proto($handle) format used for messages specific to one IM-connection
+ now only include the ($handle) part when there's more than one $proto-
+ connection.
+- Fix for a crash-bug on broken Jabber/SSL connections.
+- Incoming typing notifications now also come in as CTCP TYPING messages, for
+ better consistency. Don't forget to update your scripts!
+- AIM typing notifications are supported now.
+- Jabber module only accepts ports 5220-5229 now, to prevent people from
+ abusing it as a port scanner. We aren't aware of any Jabber server that
+ runs on other ports than those. If you are, please warn us.
+- Send flood protection can't be enabled anymore. It was disabled by default
+ for a good reason for some time already, but some package maintainers
+ turned it back on while it's way too unreliable and trigger-happy to be
+ used.
+- Removed TODO file, the current to-do list is always in the on-line bug
+ tracking system.
+- Fixed a potential DoS bug in input handling.
+
+Finished 4 Dec 2005
Version 0.99:
- Fixed memory initialization bug in OSCAR module that caused crashes on
diff --git a/doc/FAQ b/doc/FAQ
index 2b0ed439..a47e066e 100644
--- a/doc/FAQ
+++ b/doc/FAQ
@@ -38,30 +38,18 @@ A: 'root' is just the name for the most powerful user in BitlBee. Just like
artistic creativity.
Q: When is $random_feature going to be implemented?
-A: Please do consult doc/TODO (preferably in a development snapshot, which
- is more up-to-date than a TODO in a release version) before asking.
- Please also check the documentation. You'd not be the first one to request
- a feature which already exists!
-
- If your fabulous feature seems not to be requested before, just join
- #bitlbee on irc.oftc.net and tell us the news.
-
- If your feature request is already in the TODO list, of course you can
- still request it again/make us know that you'd like to see the feature as
- well. But when the feature is in the "post-1.0" list, it's probably not
- going to help. Most of the features in this list are low-priority because
- we (the developers) don't need (or even want) them. (File transfers are a
- good example here.)
- Hence, they'll only be implemented when we really got too much spare
- time. Obviously, if you're willing to help (i.e. submit a patch), you're
- always welcome.
+A: It depends on the feature. We keep a list of all wishlist "bugs" in our
+ Bug Tracking system at http://bugs.bitlbee.org/
Q: The messages I send and/or receive look weird. I see weird characters and
annoying HTML codes. Or, BitlBee does evil things when I send messages with
non-ASCII characters!
A: You probably have to change some settings. To get rid of HTML in messages,
- see "help set html". If you seem to have problems with your charset, see
- "help set charset".
+ see "help set strip_html". If you seem to have problems with your charset,
+ see "help set charset".
+
+ Although actually most of these problems should be gone by now. So if you
+ can't get things to work well, you might have found a bug.
Q: Is BitlBee forked from Gaim?
A: BitlBee 0.7 was, sort-of. It contained a lot of code from Gaim 0.58
diff --git a/doc/README b/doc/README
index cb160b88..cd0085ff 100644
--- a/doc/README
+++ b/doc/README
@@ -107,11 +107,10 @@ not daemons).
See utils/bitlbeed.c for more information about the program.
-Just a little note: We run our public server im.bitlbee.org for a couple of
-months now, and so far we haven't experienced this problem yet. The only
-BitlBee processes killed because of CPU-time overuse were running for a long
-time already, they were usually killed during the MSN login process (which
-is quite CPU-time consuming).
+Just a little note: Now that we reach version 1.0, this shouldn't be that
+much of an issue anymore. However, on a public server, especially if you
+also use it for other things, it can't hurt to protect yourself against
+possible problems.
USAGE
@@ -145,6 +144,12 @@ WEBSITE
You can find new releases of BitlBee at:
http://www.bitlbee.org/
+The bug tracking system:
+http://bugs.bitlbee.org/
+
+Our version control system is Bazaar-NG. Our repository is at:
+http://code.bitlbee.org/
+
A NOTE ON ENCRYPTION
====================
@@ -186,5 +191,5 @@ also licensed under the GPL.
BitlBee - An IRC to other chat networks gateway
<http://www.bitlbee.org/>
- Copyright (C) 2002-2004 Wilmer van der Gaast <wilmer@gaast.net>
+ Copyright (C) 2002-2005 Wilmer van der Gaast <wilmer@gaast.net>
and others
diff --git a/doc/TODO b/doc/TODO
deleted file mode 100644
index 3bd241ef..00000000
--- a/doc/TODO
+++ /dev/null
@@ -1,40 +0,0 @@
-TODO for BitlBee:
-
-We're trying to keep a better TODO list now. The priorities here are somewhat
-random, maybe. Or at least they change from time to time. The "After 1.0"
-changes are very low-priority, the "Before 1.0" are "highest" priority, the
-others are changes we'll do when we feel like doing them. They're usually not
-as critical as the "Before 1.0" changes, but still a bit more important than
-"After 1.0".
-
-KNOWN BUGS TO FIX BEFORE 1.0:
-- 100% cpu usage bugs.
- -> They're still there... :-(
-- Check if the IRC send flood protection is reliable now.
- -> Probably not, at least it still causes troubles on logging in for some
- people. Maybe the thresholds aren't okay yet. Logins are just floody,
- nothing we can do about that.
-
-Some time: (mainly features)
-- Rewrite Jabber module - the current one sucks.
-- Test Yahoo! groupchats a bit better, because they still seem to be a bit
- flakey.
- -> There are bug reports from time to time, but we can't do much about
- them, possibly it's more a libyahoo2 problem.
-- Groupchats
- -> Make them work on other nets than MSN/Yahoo as well.
-- Make usernames case-insensitive. (On case-insensitive filesystems this
- change isn't necessary. This one is going to suck with backward-compati-
- bilty...)
- -> We'll probably combine this with the introduction of a better file
- format for userdata.
-- Remind the user of unanswered questions after some time.
-- Maybe a way to send global messages. (for server shutdowns, for example)
-- Away-auto-replies.
-- Allow nick changes.
-
-After 1.0: (mainly toys)
-- File transfers -> DCC
-- SSL support? Persistent connections? Things you can do with a bouncer/proxy.
-- Support for buddy groups.
-- What else?
diff --git a/doc/user-guide/user-guide.xml b/doc/user-guide/user-guide.xml
index eff5998e..5b881fb2 100644
--- a/doc/user-guide/user-guide.xml
+++ b/doc/user-guide/user-guide.xml
@@ -20,24 +20,13 @@
</author>
<legalnotice id="legalnotice">
- <para>
- Permission is granted to copy, distribute and/or modify this
- document under the terms of the <ulink type="help"
- url="gnome-help:fdl"><citetitle>GNU Free Documentation
- License</citetitle></ulink>, Version 1.1 or any later version
- published by the Free Software Foundation with no Invariant
- Sections, no Front-Cover Texts, and no Back-Cover Texts. You
- may obtain a copy of the <citetitle>GNU Free Documentation
- License</citetitle> from the Free Software Foundation by
- visiting <ulink type="http" url="http://www.fsf.org">their
- Web site</ulink> or by writing to: Free Software Foundation,
- Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
- USA.
- </para>
</legalnotice>
<releaseinfo>
- This is the initial release of the BitlBee User Guide.
+ This is the BitlBee User Guide. For now, the on-line help is
+ the most up-to-date documentation. Although this document shares
+ some parts with the on-line help system, other parts might be
+ very outdated.
</releaseinfo>
</bookinfo>
diff --git a/irc.c b/irc.c
index f5448495..28c73241 100644
--- a/irc.c
+++ b/irc.c
@@ -1509,7 +1509,7 @@ int irc_privmsg( irc_t *irc, user_t *u, char *type, char *to, char *prefix, char
else
{
irc_write( irc, ":%s!%s@%s %s %s :%s%s", u->nick, u->user, u->host,
- type, to, prefix, line );
+ type, to, prefix ? prefix : "", line );
}
line = s + 1;
}
diff --git a/protocols/jabber/jabber.c b/protocols/jabber/jabber.c
index 413f77ef..fc419124 100644
--- a/protocols/jabber/jabber.c
+++ b/protocols/jabber/jabber.c
@@ -21,10 +21,6 @@
*
*/
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
#ifndef _WIN32
#include <sys/utsname.h>
#endif
@@ -58,6 +54,8 @@
#define DEFAULT_GROUPCHAT "conference.jabber.org"
#define DEFAULT_PORT 5222
#define DEFAULT_PORT_SSL 5223
+#define JABBER_PORT_MIN 5220
+#define JABBER_PORT_MAX 5229
#define JABBER_GROUP "Friends"
@@ -540,11 +538,6 @@ static void gjab_connected_ssl(gpointer data, void *source, GaimInputCondition c
struct jabber_data *jd;
gjconn gjc;
- if (!g_slist_find(get_connections(), gc)) {
- ssl_disconnect(source);
- return;
- }
-
jd = gc->proto_data;
gjc = jd->gjc;
@@ -553,6 +546,11 @@ static void gjab_connected_ssl(gpointer data, void *source, GaimInputCondition c
return;
}
+ if (!g_slist_find(get_connections(), gc)) {
+ ssl_disconnect(source);
+ return;
+ }
+
gjab_connected(data, gjc->fd, cond);
}
@@ -588,6 +586,11 @@ static void gjab_start(gjconn gjc)
port = DEFAULT_PORT;
else if (port == -1 && ssl)
port = DEFAULT_PORT_SSL;
+ else if (port < JABBER_PORT_MIN || port > JABBER_PORT_MAX) {
+ serv_got_crap(GJ_GC(gjc), "For security reasons, the Jabber port number must be in the %d-%d range.", JABBER_PORT_MIN, JABBER_PORT_MAX);
+ STATE_EVT(JCONN_STATE_OFF)
+ return;
+ }
if (server == NULL)
server = g_strdup(gjc->user->server);
diff --git a/protocols/nogaim.c b/protocols/nogaim.c
index 7eb0446e..b65ddaf5 100644
--- a/protocols/nogaim.c
+++ b/protocols/nogaim.c
@@ -451,7 +451,14 @@ void signoff( struct gaim_connection *gc )
void do_error_dialog( struct gaim_connection *gc, char *msg, char *title )
{
- serv_got_crap( gc, "Error: %s", msg );
+ if( msg && title )
+ serv_got_crap( gc, "Error: %s: %s", title, msg );
+ else if( msg )
+ serv_got_crap( gc, "Error: %s", msg );
+ else if( title )
+ serv_got_crap( gc, "Error: %s", title );
+ else
+ serv_got_crap( gc, "Error" );
}
void do_ask_dialog( struct gaim_connection *gc, char *msg, void *data, void *doit, void *dont )
@@ -736,7 +743,7 @@ void serv_got_im( struct gaim_connection *gc, char *handle, char *msg, guint32 f
/* If there's a newline/space in this string, split up there,
looks a bit prettier. */
- if( ( nl = strrchr( msg, '\n' ) ) || ( nl = strchr( msg, ' ' ) ) )
+ if( ( nl = strrchr( msg, '\n' ) ) || ( nl = strrchr( msg, ' ' ) ) )
{
msg[425] = tmp;
tmp = *nl;
@@ -768,7 +775,7 @@ void serv_got_typing( struct gaim_connection *gc, char *handle, int timeout )
return;
if( ( u = user_findhandle( gc, handle ) ) )
- irc_msgfrom( gc->irc, u->nick, "\1TYPING 1\1" );
+ irc_privmsg( gc->irc, u, "PRIVMSG", gc->irc->nick, NULL, "\1TYPING 1\1" );
}
void serv_got_chat_left( struct gaim_connection *gc, int id )
diff --git a/protocols/proxy.c b/protocols/proxy.c
index 6d450c92..47ece91e 100644
--- a/protocols/proxy.c
+++ b/protocols/proxy.c
@@ -113,7 +113,7 @@ static gboolean gaim_io_invoke(GIOChannel *source, GIOCondition condition, gpoin
return TRUE;
}
-static void no_one_calls(gpointer data, gint source, GaimInputCondition cond)
+static void gaim_io_connected(gpointer data, gint source, GaimInputCondition cond)
{
struct PHB *phb = data;
unsigned int len;
@@ -162,7 +162,7 @@ static int proxy_connect_none(char *host, unsigned short port, struct PHB *phb)
if (connect(fd, (struct sockaddr *)sin, sizeof(*sin)) < 0) {
if (sockerr_again()) {
- phb->inpa = gaim_input_add(fd, GAIM_INPUT_WRITE, no_one_calls, phb);
+ phb->inpa = gaim_input_add(fd, GAIM_INPUT_WRITE, gaim_io_connected, phb);
phb->fd = fd;
} else {
closesocket(fd);
diff --git a/protocols/yahoo/crypt.c b/protocols/yahoo/crypt.c
index 00eed70b..5122e3af 100644
--- a/protocols/yahoo/crypt.c
+++ b/protocols/yahoo/crypt.c
@@ -22,10 +22,6 @@
* already had. isn't that lovely. people should just use linux or
* freebsd, crypt works properly on those systems. i hate solaris */
-#if HAVE_CONFIG_H
-# include <config.h>
-#endif
-
#if HAVE_STRING_H
# include <string.h>
#elif HAVE_STRINGS_H
diff --git a/protocols/yahoo/libyahoo2.c b/protocols/yahoo/libyahoo2.c
index 62ceb0af..c691f18b 100644
--- a/protocols/yahoo/libyahoo2.c
+++ b/protocols/yahoo/libyahoo2.c
@@ -43,10 +43,6 @@
*
*/
-#if HAVE_CONFIG_H
-# include <config.h>
-#endif
-
#ifndef _WIN32
#include <unistd.h>
#endif
diff --git a/protocols/yahoo/yahoo_httplib.c b/protocols/yahoo/yahoo_httplib.c
index 41e31a23..dbbe2a84 100644
--- a/protocols/yahoo/yahoo_httplib.c
+++ b/protocols/yahoo/yahoo_httplib.c
@@ -19,10 +19,6 @@
*
*/
-#if HAVE_CONFIG_H
-# include <config.h>
-#endif
-
#include <stdio.h>
#include <stdlib.h>
diff --git a/protocols/yahoo/yahoo_util.c b/protocols/yahoo/yahoo_util.c
index cb155e3c..3c99cf44 100644
--- a/protocols/yahoo/yahoo_util.c
+++ b/protocols/yahoo/yahoo_util.c
@@ -19,10 +19,6 @@
*
*/
-#if HAVE_CONFIG_H
-# include <config.h>
-#endif
-
#if STDC_HEADERS
# include <string.h>
#else