| Commit message (Collapse) | Author | Age | Lines |
... | |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Fixes trac ticket 1143: https://bugs.bitlbee.org/bitlbee/ticket/1143
The "correct" way to discover XEP85 support is to send a discovery
query. We take a more conservative approach: if the irc client claims to
support typing (by sending CTCP TYPING at least once), we send an
<active> tag along with next chat message, and set JBFLAG_PROBED_XEP85.
The logic for that stuff is in jabber_buddy_msg().
That's all neat and clever and actually works fine. What was broken was
the detection side. Whenever a <composing>, <active> or <pause> is
received, the buddy is marked as supporting XEP85. However the <active>
tag had an additional check:
/* No need to send a "stopped typing" signal when there's a message. */
else if (xt_find_node(node->children, "active") && (body == NULL)) {
It skipped the tag completely if it had a message too.
This was changed to move the body == NULL condition inside, so that the
flag is set.
Took me longer to write this message than the diff itself. But even
longer to actually decide to debug this behavior. I'm the one who
submitted that ticket, one year and a half ago. Yep.
|
|
|
|
|
|
|
|
|
|
|
| |
Since bare JIDs from typing notifications are now accepted, the other
buddy objects never get the flag JBFLAG_DOES_XEP85 set. This fixes it by
checking both the buddy with resource and the bare one, with the
implication that if the bare JID has that flag, all other resources get
typing notifications.
Follow up to the previous commit, splitting since they are actually
unrelated fixes, although this one is a consequence of the previous one.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
jabber_buddy_by_jid() does the following:
head = g_hash_table_lookup(jd->buddies, jid);
bud = (head && head->next) ? head->next : head;
'head' has the one without resource, 'bud' has the first resource.
So if a resource is available, it uses it and ignores the head.
When asked for a bare JID (with no resource) and GET_BUDDY_EXACT, it
shouldn't do this, but it should return the head.
In other words, the problem was a message in this format:
<message from="username@gmail.com" ...>
Instead of
<message from="username@gmail.com/resource" ...>
This only deals with incoming typing notifications. See next commit.
|
|
|
|
| |
That includes location blocked and incorrect password.
|
|
|
|
|
|
|
| |
This is what the 'howtofixmsn' wiki page addressed, which has a very
generic name because it's one of the first msn issues that appeared when
we thought it was dying. Since it's just a security measure, it still
appears when people log in from unusual locations.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Before this commit, the bee_chat_by_title() call just failed when
receiving a message in a groupchat we didn't know about, which is
probably something skype broke in their api at some point.
I'm fixing this since apparently the only way to access p2p based chats
is through the official skype desktop client (they won't be supported
through msnp24 or skypeweb. It's broken in mobile clients already), so
this plugin is probably the best way to access those.
This breaks the 'msg' test - now all chats are groupchats and there's no
way to tell them apart.
However, in reality, private messages aren't delivered at all over the
api, or at least I never managed to get them working. Probably if you
talk with someone who has a very old patched skype client.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The diff might look confusing - it's just removing the last hex digit of
each channel name in the groupchat tests.
This broke in several ways over the years. I know because i've been
bisecting the last few hours and found lots of different issues.
All of them except this one were fixed already
This one is probably a side effect of the new irc channel name
generation code that includes the # as part of the string and reuses the
nick code. Or maybe not exactly that, but something similar. I'm not
going to bisect any further, had enough for today.
|
|
|
|
| |
Forgot to change this after b39859e
|
|
|
|
|
|
| |
More prefixes = better. The G stands for "good".
(it also fixes the warning about _BSD_SOURCE being deprecated)
|
|
|
|
|
| |
Found the thing using 100% cpu because of a dead connection that it
didn't want to bury.
|
|
|
|
|
|
| |
Mostly minor rare leaks that happen in error conditions, and one
dereference before null check in twitter_logout (the null check is
probably the wrong one there, but it doesn't hurt to keep it)
|
|
|
|
|
|
|
| |
From coverity.
That g_strdup_printf() was really pointless, slightly ashamed we didn't
notice that in the review of the patch.
|
|
|
|
| |
From coverity.
|
|
|
|
|
|
|
| |
- Look for a status message right inside <presence> (seen with ejabberd
as a result of a s2s connection error)
- Check status codes in a while loop, skipping unknown ones (such as
110, which means "Inform user that presence refers to itself")
|
|
|
|
|
|
|
|
|
|
|
| |
To simplify testing. Also allow passing a -1 as size to use strlen()
Minor behavior change: The jabber_init_iq_auth() branch can no longer
return immediately, which means it will continue through the
ssl_pending() check in jabber_read_callback().
Other than that, the size -1 change, and one indentation level less, the
function body is the same as before.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
| |
Which in practice means "don't bother with DIGEST-MD5 most of the time".
It's weak, pointless over TLS, and often breaks with some servers
(hi openfire)
|
|
|
|
| |
Use "account jabber set anonymous on" to have bitlbee try that method
|
| |
|
| |
|
|
|
|
|
|
|
| |
By asking the server for the username.
Storing the username somewhere would have made sense, but this command
isn't going to be used very often, so, whatever.
|
|
|
|
|
|
|
|
| |
Yeah, just the letter s from "https", and a null byte.
Really critical stuff.
You'd have to post a million tweets to even notice this at all.
|
|
|
|
|
| |
Accidentally nuked it while resolving merge conflicts of a different
branch.
|
| |
|
|\ |
|
| |\ |
|
| | |
| | |
| | |
| | |
| | | |
- GMail notifications stuff is now just 'mail_notifications'
- sed -i s/notify_handle/mail_notifications_handle/
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Saves some messing with g_strdup_printf for the callers, and
flags/sent_at weren't used anyway.
Also check if the mail_notifications setting is enabled
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
- Add gmail_notifications_limit hidden setting, set to 5 by default.
- Don't show "snippets" in email notifications. Not very useful and they
make the whole thing seem too spammy
- Show sender name instead of your own email
- Default values for empty subject / sender
|
| | | |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
- Improve handling of "unknown 'from'"
- Try a bit harder to detect the source of the message, and fall back to
messages sent from a fake temporary user.
- Fix receiving topic when it was set by someone who left the room.
- Add jabber_get_bare_jid() utility function
|
| | |
| | |
| | |
| | |
| | | |
When user set's away lower xmpp presence priority by 5 as most clients do, new
priority won't go below zero though.
|
| |/
|/| |
|
|/ |
|
| |
|
| |
|
|
|
|
| |
Also remove some old unused debug stuff
|
| |
|
|
|
|
|
|
|
| |
The previous value (7) was FL | AL | BL, and the block role was replaced
with "Hide" in msnp21, so the server was rejecting the parts of the ADL
that had it. And since adding blocked contacts isn't very useful anyway,
this is like silencing an annoying warning.
|
|
|
|
|
|
|
| |
Also fix a leak in msn_ns_callback while i'm at it.
Also fix a potential null deref when req->reply_body is null and
BITLBEE_DEBUG is enabled, but i don't even know if this one can happen.
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
| |
Fixes trac ticket 1196
|
|
|
|
|
|
| |
Mostly to be able to test twitter_message_len externally against the
twitter-text conformance tests (the current version definitely fails -
it doesn't do utf8 normalization)
|
| |
|
|
|
|
|
| |
Difficult because there's no bee_user struct pointing at the user themselves
so instead just fake one for very limited use.
|
|
|
|
| |
Also, fix bug in parsing of entities in DMs.
|
| |
|