aboutsummaryrefslogtreecommitdiffstats
path: root/protocols
Commit message (Collapse)AuthorAgeLines
* purple: Fix null pointer dereference when logging out due to daemon modedequis2015-03-15-0/+4
| | | | | Purple just doesn't work with daemon mode anyway, but it's better to show the intended error message than to crash while showing it.
* purple: prplcb_close_request() improvementsdequis2015-03-15-24/+53
| | | | | | | - Added support for PURPLE_REQUEST_INPUT - Changed memory management to do the free() of data through purple_request_close(), letting purple know that the request was answered, and fixing use-after-free issues with it
* purple: handle purple_request_inputAntoine Pietri2015-03-13-1/+66
|
* twitter: fix _last_tweet setting, which broke during a mergedequis2015-03-13-1/+1
| | | | | | Commit eb4ad8d (a merge commit, yes) changed it to _last_tweet and missed one of the three. Not entirely sure if wilmer's fault, could be mine when I did the merge of his merge on my side. Whatever.
* purple: Implement 'close_request' to prevent segfaults after logoutdequis2015-03-11-1/+14
| | | | | | | | | | | | | | | Fixes trac bug 1190 ("Accepting SSL certs too late resets bitlbee-libpurple") To reproduce: 1. Connect to server with self-signed ssl certificate (downgrading to libpurple 2.10.9 might be required to actually get the request) 2. Disconnect the account 3. Type "yes" 4. Acquire segfault. Normally, query_del_by_conn() would handle this, but some requests have no account context at all. Yeah, it sucks. This is how pidgin handles it.
* msn: Update FindMembership payload to fix incorrect pending requestsdequis2015-03-10-1/+1
| | | | | | | | | | | | | | | | It was requesting memberships for the following services: Messenger, Invitation, SocialNetwork, Space, Profile Now it only requests the same services as WLM 2012: Messenger, IMAvailability Fixes trac ticket 1191. I'm going to apply this to the master branch just for the sake of marking it as fixed, but I can't log in at all with that branch at the moment. Yes this is silly.
* Various user experience/error reporting improvementsdequis2015-03-10-0/+3
| | | | | | | | | | | - Show version as part of the initial message of &bitlbee - Use g_strerror() to show actual errors when saving xml configs - Only show "The nick is (probably) not registered" for ENOENT, use g_strerror() for the rest of OS errors when loading xml configs - Show "Protocol not found: <name>" when find_protocol() returns null, useful when the user uninstalls a plugin accidentally. - Suggest the user to check the system clock when getting error 401 from the twitter stream (other REST endpoints show a better error message)
* twitter: Fix twitter_parse_id to accept 00 as a valid tweetdequis2015-03-10-7/+8
| | | | | | Also fix the endptr condition which was backwards and resulted in every tweet id getting rejected, but you didn't see that one, this commit really is about the tweet id 00 which is the most important tweet id.
* Revert "purple: cleanup, remove one usage of static local_bee"dequis2015-03-03-2/+1
| | | | | | | | | | | This reverts commit 5ff46180e5378acd6d103d9314175c78530bda7e. Turns out that libpurple really doesn't provide any context at all for some queries. Also, not going to say "Shouldn't affect anything" again. I'm getting good at writing code that looks good, but actually breaks stuff. That's not good. At all.
* purple: move PurpleAccount from proto_data in a struct purple_dataAntoine Pietri2015-03-02-47/+78
|
* fix imcb_buddy_msg signature to take a const messageAntoine Pietri2015-03-01-2/+2
|
* Disable msn by default :(dequis2015-02-28-3/+11
| | | | | | | I didn't want to do the next release with a broken msn, but... gotta be realistic. Also featuring shameless plug.
* Use https:// URL for Facebook OAuth2 now that there's a cert.Wilmer van der Gaast2015-02-24-1/+1
|
* Add --doc= configure option to disable helpfile generationdequis2015-02-23-3/+3
| | | | | | | | | | | | | It will get disabled automatically if the deps (xmlto and xsltproc) are missing Also added checks for asciidoc (a2x) for the skype plugin, which needs it for the skyped man page, and will also get that disabled if --doc=0 is passed or if asciidoc isn't installed. This should keep those ugly deps under control for now. I'd like to replace them at some point with something less dumb.
* coverity: Fix some (harmless?) use-after-free with g_slist_remove()dequis2015-02-22-9/+7
| | | | | | | These were passing a pointer to a variable right after it was g_free()'d They are most likely harmless as g_slist_remove() probably just needs the pointer location, but fixing it anyway.
* twitter_parse_id function, with better error handling than sscanf()dequis2015-02-22-3/+16
| | | | | Fixes issues such as parsing "reply eo" as replying to "0e", as reported by torrancew
* purple: cleanup, remove one usage of static local_beedequis2015-02-22-1/+2
| | | | | Shouldn't affect anything, and still doesn't allow initializing libpurple more than once, but whatever.
* s5bytestream: fix segfault (cleanup before trying next streamhost)dequis2015-02-22-14/+27
| | | | | | | | | | | | | | | | | | | | | | | | This segfault happened when none of the available streamhosts can be connected to - or if at least one of them fails to connect. Before this commit, it can be reproduced reliably by setting the "proxy" setting of the account to nonsense, for example, this is what i used: proxy.example.org,1.2.3.4,7777;proxy.example.com,173.194.42.65,80 jabber_bs_recv_handshake_abort() calls jabber_bs_recv_handshake(), which is supposed to restart the handshake with the next streamhost. And it replaced bt->tf->watch_out, which held an event ID, with a newer event ID. So the replaced event ID doesn't get removed, and it gets called again when its socket is closed by the timeout - and by the time that happens, the memory is free()'d already. Boom. The patch is simple - created jabber_bs_remove_events() to cleanup those events, and use it before any code that expects to restart the cycle. So basically the same as doing b_event_remove(bt->tf->watch_out). I hope there aren't more bugs like this in this code.
* s5bytestream: refactor some copypasted code into functionsdequis2015-02-22-89/+47
| | | | | | | | | - get_ft_by_sid() - generate_pseudoaddr() (also uses g_compute_checksum_for_string() to make the code shorter) - jabber_streamhost_new() Behavior should be the same.
* Remove a few stale functions from struct prpl.Wilmer van der Gaast2015-02-22-26/+0
|
* Reindent everything to K&R style with tabsIndent2015-02-20-13887/+14932
| | | | | | | 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.
* Revert "Twitter format strings"dequis2015-02-20-52/+15
| | | | | | This reverts commit ce402b20d82ec323e6bd5e306de934773590742d. See discussion in PR #10 for more details.
* Use glib's GChecksum for md5/sha1dequis2015-01-31-1/+3
| | | | | | | | | | | | | | | | | | | 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)
* purple: Implement /kickdequis2015-01-30-0/+9
|
* irc_commands: implemented KICK supportjgeboski2015-01-29-0/+5
| | | | | | | | | | | 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.
* irc-channel: implemented a special mode for show_usersjgeboski2015-01-28-0/+1
| | | | | | | | | | | | | 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.
* Merge pull request #5 from seirl/purple_titleWilmer van der Gaast2015-01-26-0/+6
|\ | | | | purple: add topic and name_hint to groupchats
| * purple: add NULL guard around topic and name hintAntoine Pietri2015-01-26-2/+5
| |
| * purple: add topic and name_hint to groupchatsAntoine Pietri2015-01-25-0/+3
| |
* | Twitter format stringsWilliam Pettersson2015-01-26-15/+52
| | | | | | | | | | | | | | | | | | | | | | Allow users to specify how tweets should be displayed 3 new settings are available to set how tweets are displayed: - twitter_format_string for normal tweets - retweet_format_string for retweets - reply_format_string for replies For full documentation see the help files
* | twitter: Add raw reply supportWilliam Pettersson2015-01-26-0/+9
| | | | | | | | | | | | | | By default, "reply" prepends the username of the tweet being replied to. This adds support for a "rawreply" command which does not prepend this username. This is useful for "replying" to your own tweet to maintain a chain of tweets on a singular topic.
* | twitter: implemented filter based group chatsjgeboski2015-01-25-7/+503
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Filter group chats allow for the ability to read the tweets of select users without actually following the users, and/or track keywords or hashtags. A filter group chat can have multiple users, keywords, or hashtags. These users, keywords, or hashtags can span multiple group chats. This allows for rather robust filter organization. The underlying structure for the filters is based on linked list, as using the glib hash tables requires >= glib-2.16 for sanity. Since the glib requirement of bitlbee is only 2.14, linked list are used in order to prevent an overly complex implementation. The idea for this patch was inspired by Artem Savkov's "Twitter search channels" patch. In order to use the filter group chats, a group chat must be added to the twitter account. The channel room name is either follow:username, track:keyword, and/or track:#hashtag. Multiple elements can be used by separating each element by a semicolon.
* | Fix whatsapp local contact listsdequis2015-01-25-13/+12
| | | | | | | | | | | | | | | | | | Had to move the code that adds contacts to imcb_connected to avoid dereferencing a null im_connection. Turns out this kind of local contact lists only applies to renamed contacts, though. It doesn't deal with libpurple's blist.xml at all (it could, there are APIs for it since 2.6.0)
* | 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-8/+28
| | | | | | | | | | | | | | | | | | 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
* | Silence some oscar compilation warningsdequis2015-01-25-5/+6
|/ | | | And that's enough editing of the oscar protocol code for 2015
* Merging random other fixes/cleanups.Wilmer van der Gaast2015-01-17-40/+76
|\
| * Add jabber_normalize_ext() to fix case sensitivity issues with ext jidsdequis2015-01-16-16/+30
| | | | | | | | | | | | Also refactor jabber_normalize() to be UTF8 aware. See trac ticket 1106 for more details
| * twitter: minor cleanup, use G_G(U)INT64_FORMAT instead of castingdequis2015-01-16-11/+11
| |
| * msn_ns_send_adl_1: Fix alloc_strlen coverity warningdequis2015-01-16-1/+1
| | | | | | | | Allocating insufficient memory for the terminating null of the string
| * Fix compiler warnings on Cygwin and Mac OS X.Jason Copenhaver2015-01-16-8/+12
| | | | | | | | | | | | | | | | * Don't use PIE/PIC on Cygwin/Darwin unless specified as these platforms don't support it. * Cleanup warnings for 'make check' build. * Fix the type issue for getsockopt calls. * Fix enum warnings in Yahoo libs on Mac OS X.
| * twitter: start stream from last tweet on connect/reconnectroger2015-01-16-1/+13
| | | | | | | | | | This works by setting the last_tweet hidden account setting to the ID of the last shown tweet.
| * bee-chat: create temporary users for unknown chat participantsjgeboski2015-01-16-3/+9
|/ | | | | | | | The imcb_chat_msg() function is unable to send messages to a chat with a user who was not previously added. This function should allow for the sending of messages with users who are not added. This is suitable for protocols which are sending messages to a chat from random users or a large amount of users which join and part frequently.
* Replace isdigit/isalpha/.../tolower/toupper with glib variantsdequis2015-01-16-25/+25
| | | | | | | | | | | 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
* Fix incorrect Free Software Foundation addressMatej Cepl2015-01-16-53/+53
|
* msn: configurable notification server host/portdequis2014-12-06-2/+10
|
* twitter: Use g_strcasecmp for screen_namedequis2014-11-24-4/+4
| | | | | | Fixes a few minor bugs with users who have uppercase characters in nicks (see trac ticket 1138). Most notably, the "follow" command showing no feedback that a user was followed
* Use glib functions for base64 decoding/encodingdequis2014-11-24-2/+17
| | | | | | | | | | | | This fixes several coverity warnings about 'tainted data index sink' and a fixme about thread safety in the old base64_decode implementation. Had to adapt the code that used base64_encode_real: - oauth.c: different character set order, but it's for the nonce so it doesn't matter - libyahoo2.c: used as part of the auth, changes "+/=" into "._-". Fixed by encoding first the usual way through glib, then replacing.
* msn: add 'allow' role if contact has neither block nor allowdequis2014-11-17-0/+8
| | | | | This workarounds the problems of showing as offline to other contacts, by sending ADL with role 3 (FL+AL) instead of just 1 (FL, no AL or BL)
* msn_buddy_ask: only ask to add if contact is in pending listdequis2014-11-17-1/+1
| | | | | Previously it asked if they were in pending/reverse but not allow/block. In theory that would fix inconsistent states. And in practice... nope.