| Commit message (Collapse) | Author | Age | Lines |
|
|
|
| |
Credit for the idea goes to russian XMPP spammers. Thanks!
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Turns out he already implemented pretty much the same thing in the
parson branch... last year.
The differences between the two approaches are subtle (there aren't too
many ways to do this, some lines are the exact same thing) but I decided
I like his version better, so this mostly reverts a handful of my
changes while keeping others. The main advantage of his approach is that
no fake protocols are registered, no actual prpl functions are called,
and the missing prpl is a singleton constant.
New things compared to the implementation in the other branch:
- The explain_unknown_protocol() function.
- Fixed named chatrooms throwing a warning and losing the "account"
setting when saving. See changes in irc_im.c
- Fixed the "server" setting dropping when saving. See account.c
Differences with my previous implementation:
- Accounts with missing protocols don't autoconnect
- 'account list' marks them as "(missing!)"
|
| |
|
|
|
|
|
|
|
|
| |
Send new away message when away-notify is enabled and the status
changes (e.g. "Away" to "Mobile") or the status message changes
without returning from away.
Fixes IRC clients with away-notify persisting old away messages.
|
|
|
|
|
|
| |
Fixes trac ticket 865 ("Make bitlbee send "is away" and such status
messages via &bitlbee channel instead of separate query window"),
except that the solution is to not send them at all.
|
|
|
|
|
|
|
| |
nick_hint only works when creating new users, it's a no-op after the
user is online. This new function takes care of nick changes after that.
It also helps clean up couple of hacks in irc_im.c \o/
|
|
|
|
|
|
|
| |
Move irc_send_away_notify below bee_irc_channel_update to delay
sending the updated away-notify status until after any nicks have
joined/quit. Otherwise, some IRC clients will drop the status
messages as they go to nicks that the client doesn't know about.
|
|
|
|
|
| |
Just a trivial wrapper over irc_rootmsg(), but will help me to slightly
reduce the ugliness of an unavoidably ugly hack for libpurple.
|
|
|
|
|
|
|
| |
Fixes trac ticket 1195: https://bugs.bitlbee.org/bitlbee/ticket/1195
I had no idea how to reproduce that bug until I tried with libpurple.
The built-in jabber never had this problem.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This fixes issues like getting a blank window with a channel that the
irc client thinks the user is in but bitlbee doesn't.
The error is sent either by returning NULL in the chat_join prpl
function, or by calling imcb_chat_free() before the user is added to the
channel.
This wasn't possible before since purple returned NULL in its chat_join,
which resulted in other bugs too. Since that's fixed, I can finally
apply this, which has been in my stash for a very long while.
|
|
|
|
|
|
|
|
|
|
|
| |
Neat lightweight notifications of the awayness of contacts.
In practice, this means weechat/hexchat users can see away people in
their nick list and change show_users to 'online,special,away' to avoid
the mode spam completely.
These are also sent on online/offline changes, since offline_user_quits
can be turned off, and you'd need something when they come back.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This adds an OPT_SELFMESSAGE flag that can be passed to imcb_buddy_msg()
or imcb_chat_msg() to indicate that the protocol knows that the message
being sent is a self message.
This needs to be explicit since the old behavior is to silently drop
these messages, which also removed server echoes.
This commit doesn't break API/ABI, the flags parameters that were added
are all internal (between protocols and UI code)
On the irc protocol side, the situation isn't very nice, since some
clients put these messages in the wrong window. Irssi, hexchat and mirc
get this wrong. Irssi 0.8.18 has a fix for it, and the others have
scripts to patch it.
But meanwhile, there's a "self_messages" global setting that lets users
disable this, or get them as normal messages / notices with a "->"
prefix, which loosely imitates the workaround used by the ZNC
"privmsg_prefix" module.
|
|
|
|
|
|
|
|
|
| |
Trac ticket 1229, https://bugs.bitlbee.org/bitlbee/ticket/1229
This one is complicated. See the trac ticket for details.
Relevant commits: cc20520 6963230 664bac3 - second one fixed the same
issue, third one reverted it, this one takes a different approach.
|
| |
|
|
|
|
| |
jgeboski was trying to solve. #1221 for details.
|
|
|
|
|
|
|
|
|
|
| |
CID 18634: 'Logically dead code' in jabber_get_info
CID 18638: 'Dereference after null check' in oauth2_access_token_done
CID 18691: 'Copy into fixed size buffer' in bee_irc_user_new
CID 20274: Leak in bee_irc_chat_invite
CID 20297, CID 20283: Leaks in crypt_main
Some the base64 leaks there weren't detected, needs modeling.
|
|
|
|
| |
Also split underscore_dedupe from nick_dedupe.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- irc_im.c:
- bee_irc_user_msg: strdup leaks when otr swallows messages
- bee_irc_user_action_response: GString leak in all ctcp replies
- otr.c:
- call g_slist_free() on the list of the otr_policy setting
- otr_filter_msg_in: call otrl_tlv_free() if "tlvs" are returned
- otr_filter_msg_out: don't g_strdup() if the message should be ignored
- log_otr_message: g_strdup_vprintf() leaks always
- nogaim.c:
- imcb_ask_auth/imcb_ask_add: leaks in g_strdup_printf()
- imcb_ask_add leaks imcb_ask_cb_data if the user already exists
- add imcb_ask_cb_free() to correctly free its data
- msn_util.c: add msn_buddy_ask_free(), ditto
- storage_xml.c: pass_cr/password if base64_decode or arc_decode fail
- ssl_gnutls.c: conn->hostname leak in error conditions, like invalid certs
- jabber_util.c: jabber_buddy_by_ext_jid() leaks jid if it's not an ext jid
|
|
|
|
|
|
|
| |
Used uncrustify, with the configuration file in ./doc/uncrustify.cfg
Commit author set to "Indent <please@skip.me>" so that it's easier to
skip while doing git blame.
|
|
|
|
|
|
|
|
|
|
|
| |
With similar commands being supported, such as INVITE, the KICK command
should be supported as well. The key motivation behind supporting KICK
is having for having a way to remove users from group chats. As of now,
there is no way for a bitlbee user to remove a user from a group chat.
With no current KICK implementation, it made using this command a prime
candidate for the UI side of this implementation. In addition, the KICK
command has been supported in the control channel as well. This is to
keep the INVITE/KICK pair consistent.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This allows for users to be declared as being special, which does not
have any specific meaning. The meaning of being special is different
from protocol-to-protocol, which many protocols do not even implement.
This functionality is mainly geared towards a special user state which
only some protocols may actually need to define. For example, with the
third-party Steam plugin, this can be used for denoting a user which is
actively playing a game.
By default, this mode will not actually be used by any plugin. However,
it does default to the half-operator user mode.
|
|
|
|
|
|
|
|
| |
When a chat is left, prpl->chat_leave() is invoked, which is suppose
to free the groupchat. Since the data is now freed, or suppose to have
been freed, attempting to modify the data will result in bad things.
This simply removes an assignment operation, which was unneeded due to
the memory already being freed.
|
|
|
|
|
|
|
|
|
|
|
| |
This fixes warnings about passing signed chars to them (apparently they
are implemented as macros that do array lookups without checks in some
platforms, yay)
Specifically:
functions=isalnum|isalpha|isdigit|isspace|isxdigit|tolower|toupper
sed -ir "s/$functions/g_ascii_&/g" **/*.c
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
| |
my copyright mentions since some were getting pretty stale. Left files not
touched since before 2012 alone so that this change doesn't touch almost
EVERY source file.
|
| |
|
|\ |
|
| |\ |
|
| | |
| | |
| | |
| | |
| | |
| | | |
add new irc_usermsg, irc_usernotice.
deliver user-specific messages from libotr as notices to that user.
|
| |/ |
|
|/
|
|
|
|
| |
Found one double free() bug causing troubles when a buddy_msg() handler takes
down the IM connection immediately.
|
| |
|
|
|
|
|
| |
groupchat channels (i.e. channels invited to on gtalk). #780.
|
|
|
|
|
|
| |
module (chat_with and send_typing) that suggested support for features
that obviously don't exist.
|
|
|
|
|
| |
contact.)
|
| |
|
|
|
|
|
|
|
| |
channel-chatroom reference when leaving a chatroom. This fixes two very
similar crash bugs when leaving a chatroom within the paste_buffer_delay
period.
|
| |
|
|
|
|
|
| |
a user's message in, instead of just &bitlbee by default.
|
|\
| |
| |
| |
| |
| | |
Not 100% sure about the OpenSSL merge, should double check that but I'm
currently offline.
|
| | |
|
| | |
|
| | |
|
|/
|
|
|
|
| |
so well yet, at least when testing with Pidgin on the other side. Not sure
where the bug is.
|