aboutsummaryrefslogtreecommitdiffstats
path: root/protocols/jabber/jabber.c
Commit message (Collapse)AuthorAgeLines
* Use saslprep, more cb stuffMarius Halden2016-07-06-0/+4
|
* Add initial support for SCRAM-SHA-1Marius Halden2016-06-26-0/+2
|
* jabber: Add "always_use_nicks" setting, for non-anonymous MUCsdequis2016-03-20-1/+6
| | | | | | | | | Basically the same thing as github PR #55, which fixes trac bug 415, but this one conditionalized that behavior and uses the API introduced a few commits ago. I didn't think too much about the setting name and i'm open to changing it to anything else
* jabber: Add message processing hints to OTR messages (XEP-0334/0364)dequis2015-12-15-0/+21
| | | | | This prevents them from being stored or copied to other clients when carbons are enabled.
* Remove facebook XMPP code, show error pointing at the new plugindequis2015-12-04-5/+9
| | | | | | | | | | | | | | Facebook's oauth has been broken for months, and in the last few days they broke plain logins too, so I just added an error message that says this when you do "account on": Facebook's XMPP service is gone. Try this instead: https://wiki.bitlbee.org/HowtoFacebookMQTT Also nuked all the oauth related code, except some parts of lib/oauth2.c which seemed generic enough to maybe help in the future with other not-really-compliant not-really-implementations of the not-really-oauth2 not-really-spec
* hipchat: 'chat add hipchat "channel name"' now tries to guess the JIDdequis2015-11-23-0/+13
| | | | | | | | | | | It's basically prepending the organization id, appending the default MUC host from the success packet, and generating a slug based on the name for the middle part, which is replacing a few characters with underscores and doing a unicode aware lowercasing. Includes tests, which are useless other than validating the initial implementation with the test vectors that i already tested manually. Guaranteed to detect zero breakages in the future. Good test code.
* jabber: Implement carbons (XEP-0280)dequis2015-11-21-0/+3
| | | | | | | | | | | | | | "Message carbons" (XEP-0280) is a server feature to get copies of outgoing messages sent from other clients connected to the same account. It's not widely supported by most public XMPP servers (easier if you host your own), but this will probably change in the next few years. This is enabled by default if the server supports it. It can also be disabled with the "carbons" account setting. Loosely based on a patch by kormat from trac ticket 1021. (Thanks!) I moved stuff around, simplified things, fixed a few bugs, and used the new self-messages feature.
* Use proxy_disconnect() in http, ssl, jabber, oscardequis2015-10-26-1/+1
| | | | | | | | | | Twitter and MSN are all HTTP/SSL, so they don't need it either. The out of tree facebook and steam plugins are also covered by the HTTP/SSL changes. Yahoo is written in a weird way and doesn't seem to need it (it seems it doesn't immediately stop connections when you tell it to logout)
* jabber: set BEE_USER_NOOTR flag to _xmlconsoledequis2015-10-21-8/+16
| | | | | | | Fixes trac ticket 1111, https://bugs.bitlbee.org/bitlbee/ticket/1111 One of the most annoying issues. You're trying to debug stuff and it just crashes even harder than without the debug enabled.
* jabber: Fix outgoing google talk typing notificationsdequis2015-10-21-4/+7
| | | | | | | | | | | 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_logout: avoid null jd->buddies warnings in jabber_buddy_remove_alldequis2015-08-08-1/+3
|
* jabber: Add SASL ANONYMOUS support (XEP-0175)dequis2015-07-04-1/+4
| | | | Use "account jabber set anonymous on" to have bitlbee try that method
* Rename mail notification related settings for consistencydequis2015-05-28-6/+8
| | | | | - GMail notifications stuff is now just 'mail_notifications' - sed -i s/notify_handle/mail_notifications_handle/
* Simplify display of gmail notificationsdequis2015-05-28-0/+4
| | | | | | | | - 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
* Gmail notifications support through new imcb_notify_email() APIArtem Savkov2015-05-28-0/+12
|
* More coverity fixes!dequis2015-05-07-1/+1
| | | | | | | | | | 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.
* jabber: Register "hipchat" protocol (only minimal support for now)dequis2015-04-21-2/+16
| | | | | | | | | | | | | | | | | | | Another take on the subprotocols idea that, IMO, was a failure. Unlike the other implementation, this one doesn't touch gtalk/facebook accounts, it just adds another copy of the "jabber" prpl called "hipchat". And, based on the protocol name: - sets JFLAG_HIPCHAT to jabber_data - sets the default value of the "server" setting - only includes the oauth setting for jabber-type accounts This is slightly more "hardcoded" but honestly facebook and gtalk are just as hardcoded as this. Copying the prpl is needed because the meaning of the usernames is completely different (there's no srv lookup stuff either)
* Reindent everything to K&R style with tabsIndent2015-02-20-345/+357
| | | | | | | 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.
* Use glib's GChecksum for md5/sha1dequis2015-01-31-0/+2
| | | | | | | | | | | | | | | | | | | This changes behavior slightly: - md5_init()/sha1_init() allocate a GChecksum - md5_finish()/sha1_finish() close and free() it - md5_digest_keep() was added (no sha1 equivalent needed) And yes, glib has this concept of "closing" the GChecksum, which means it can't be used anymore after g_checksum_get_digest(). jabber_cache_add() actually seems to need to do that to generate some random-ish values, so i kept that working by adding a md5_digest_keep() function that copies the GChecksum before it gets closed GChecksum was introduced in glib 2.16, so the configure script version was bumped. We were already depending on glib 2.16 accidentally (some post-3.2.2 code uses GHashTableIter)
* jabber: Account-wide display_name setting, for groupchatsdequis2015-01-25-1/+11
| | | | | This sets the default value of 'nick' for newly created groupchats. There is no way to set an account-wide nick.
* Add handle_is_self() prpl function to fix JID mismatch confusion bugsdequis2015-01-25-0/+9
| | | | | | | | | When bee_chat needs to check for self messages, it can call this function to let the protocol implementation do the comparison. In the case of jabber, sometimes the server reports a different username after login, this one is stored in jd->internal_jid, and the one that is used for login isn't changed
* Remove MSNXMPP specific codedequis2014-10-10-3/+1
| | | | The MSN XMPP gateway was shutdown december 2013 and isn't coming back.
* Merging "storage" branch which I wrote long ago. It separates generation ofWilmer van der Gaast2013-04-20-1/+1
|\ | | | | | | | | | | XML-formatted user configs from disk I/O so we can try to start using other mechanisms to store them (a REST API or something, for example).
| * s/ACC_SET_NOSAVE/SET_NOSAVE/.Wilmer van der Gaast2012-06-07-1/+1
| |
* | I'm still bored on a long flight. Wrote a script to automatically updateWilmer van der Gaast2013-02-21-1/+1
| | | | | | | | | | | | | | 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.
* | For the lazy among us: When adding a Jabber/MSN contact within the sameWilmer van der Gaast2013-02-21-1/+2
| | | | | | | | | | domain like you, you can omit the domain name.
* | Require StartTLS from all Jabber servers by default, like most clients doWilmer van der Gaast2013-01-06-1/+1
| | | | | | | | | | these days.
* | SSL fixes from Michal Suchanek.Wilmer van der Gaast2012-10-30-1/+1
|/
* Make the error message on invalid Jabber room names (this is a FAQ by now)Wilmer van der Gaast2012-02-23-1/+4
| | | | | a little more helpful.
* Support for "nameless" chatrooms on Jabber.Wilmer van der Gaast2012-02-10-0/+6
| | | | | | | Just join #somechannel and start inviting people. It should Just Work, like on other IM networks. Works at least with GTalk and with other servers that have conference stuff installed on conference.$servername.
* Slight cleanup: Use a constant instead of just "jabber_oauth" everywhere,Wilmer van der Gaast2011-12-24-2/+3
| | | | | | and added some safeguards to keep the user from messaging it when we're not actually doing OAuth setup.
* Merging mainline.Wilmer van der Gaast2011-12-24-2/+5
|\
| * Removing unfinished debugging stuff accidentally committed inWilmer van der Gaast2011-12-24-31/+1
| | | | | | | | | | changeset:devel,856.
| * Merging SSL certificate verification for GnuTLS, with help from AopicieR.Wilmer van der Gaast2011-12-23-1/+4
| |\
| | * Add verify argument to ssl_connect() so HTTPS-based stuff is also secure.Wilmer van der Gaast2011-12-19-1/+1
| | | | | | | | | | | | | | | (Think of Twitter, but also MSN/Yahoo! authentication.)
| | * Initial merge of tls_verify patch from AopicieR.Wilmer van der Gaast2011-12-19-0/+3
| | |
| * | Use initgroups() as well when dropping privileges. Closes bug #852.Wilmer van der Gaast2011-12-22-1/+31
| |/
* | Make it easier to add OAuth-authenticated accounts without having to typeWilmer van der Gaast2011-12-21-4/+4
| | | | | | | | | | a bogus password.
* | Fix parsing of acc->pass. Use oauth_params_ functions instead of stringWilmer van der Gaast2011-12-21-4/+12
| | | | | | | | | | magic, fixes escaping issues.
* | Detect JID changes at login time and warn the user about them.Wilmer van der Gaast2011-12-20-7/+4
| |
* | Restructured and updated code a little bit to support new-style (much betterWilmer van der Gaast2011-12-18-6/+17
| | | | | | | | | | | | and "proper" OAuth2) Facebook OAuth support. (And, add wl.offline scope to get tokens that don't expire after an hour.)
* | More generic OAuth support now. Should work well for all GTalk accounts nowWilmer van der Gaast2011-12-18-0/+7
| | | | | | | | | | | | and somewhat for MS Messenger. The fb part needs different parsing of the authorize request, and possibly some other work.
* | Mainline merge.Wilmer van der Gaast2011-12-17-0/+3
|\|
| * Merging non-SASL authentication patch from #863. This also implementsWilmer van der Gaast2011-12-07-0/+3
| | | | | | | | | | | | | | hidden-default settings, which means a setting is hidden unless it was changed from the default. This seems like appropriate behaviour for something as obscure as this.
* | Error handling fixes.Wilmer van der Gaast2011-08-04-0/+1
| | | | | | | | | | | | Found one double free() bug causing troubles when a buddy_msg() handler takes down the IM connection immediately.
* | Don't timeout Jabber connections on OAuth initialization.Wilmer van der Gaast2011-07-31-0/+3
| |
* | OAuth code cleanup.Wilmer van der Gaast2011-07-31-0/+3
| |
* | Working OAuth2 support. Needs some more debugging (error handling is notWilmer van der Gaast2011-07-26-3/+38
| | | | | | | | | | great and imc_logout() gets (rightfully) confused when jabber_data is empty).
* | Kill obsolete Jabber server string (SSL, port#s, etc) parsing.Wilmer van der Gaast2011-07-25-55/+0
| |
* | Nothing useful yet, this just generates an auth URL. Things to do: AbilityWilmer van der Gaast2011-07-22-0/+2
|/ | | | | | | | | | to process the answer. This is hard because the GTalk server will time out very quickly which means we lose our state/scope/etc. (And the ability to even receive the answer, at least if I'd do this the same way the Twitter module does it.) And then, get the access token and use it, of course. :-)