aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeLines
...
* twitter: extended tweet support (AKA avoid showing truncated ones)dequis2016-09-21-13/+22
| | | | | | | | | | | | | Documentation over here: https://dev.twitter.com/overview/api/upcoming-changes-to-tweets This is already live in twitter, can be tested by including an attachment from twitter web and then fill 140 characters. Should be sanely backwards compatible with twitter clones - i'd expect them to ignore the tweet_mode=extended parameter in REST queries, and just not deliver extended_tweet objects / full_text strings at all.
* debian: check if sysv script exists before calling invoke-rc.ddequis2016-09-21-1/+1
| | | | | | | In the postinst script, the part that isn't handled by debhelper and i'm not really sure why i'm keeping. Thanks Raku for reporting/testing this.
* doc: some 'chat list' related help improvementsdequis2016-09-20-4/+18
|
* Do not try to list chatrooms if account is offlineMarius Halden2016-09-19-1/+7
|
* purple: added room listing supportjgeboski2016-09-19-0/+134
|
* Added an interface for the listing of existing chatroomsjgeboski2016-09-19-6/+102
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Several protocols can provide a list of existing chatrooms that a user is able join. This is crucial for the usage of several protocols, most notably Purple and Facebook. Plugins wishing to support this extended functionality must implement the new prpl->chat_list() function. This implemented function will in most cases send a remote request for the list of chatrooms. Once the list of chatrooms is obtained, a bee_chat_info_t GSList must be created and assigned to the im_connection->chatlist field. Then a call to the bee_chat_list_finish() is needed to display the list to the user. The chat list is maintained entirely by the plugin, so it is important to ensure all pointers related to the chat list remain valid until the chat list is set to NULL. This list is used internally by bitlbee to calculate indexes, which then allows the user to join a chat with an index, rather than some random identifier. It also important to ensure the list is properly freed whenever it is updated, or when the account is disconnect via the prpl->logout() function. On the user interface side of things, the 'chat list' subcommand was recommissioned. For a user to list the existing chat rooms: chat list <account id> Afterwards a user can join a chatroom in the list with its index. This extends the functionality of the 'chat add' subcommand by adding in support for the exclamation point operator to denote an index. chat add <account id> !<index> [channel]
* hipchat: Add basic support for personal oauth tokensdequis2016-08-30-34/+60
| | | | | | | | | | | | | | | | | Fixes trac ticket 1265 - see the comments on that ticket for reasons on why personal tokens and not the usual oauth flow. TL;DR hipchat doesn't allow third party apps to own oauth client secrets. Instead, those are generated when the "addon" is "installed" which requires a flow that is either impossible or too awkward to use in bitlbee. So, after giving up on the right way and telling the users to manage tokens the ugly way, what's left to do is easy, just a few tweaks in the sasl blob and short-circuit most of the actual oauth stuff. I didn't even bother changing the service struct from google. It's not used. This also updates the gtalk SASL X-OAUTH2 code to use GStrings instead of juggling with malloc/strlen/strcpy, and simplifies a bit the way GStrings are used in the equivalent SASL PLAIN code.
* jabber: handle nulls in jabber_compare_jiddequis2016-08-23-0/+6
| | | | | As far as I can see this isn't remotely exploitable (and if it were it would be just DoS of the child process), but i'm still looking into it
* help: Fix missing spaces due to genhelp parsingShane Synan2016-08-08-2/+2
| | | | | | | Add manual spaces to fix genhelp.py leaving out the space after <emphasis> tags when immediately followed by a new-line. Real fix may lie somewhere in the depths of the NORMALIZE_RE reg-ex.
* help: Briefly mention meaning of 'special'Shane Synan2016-08-08-2/+2
| | | | | | Add a small note to "show_users" explaining what's so special about special. Unfortunately, as it's protocol-specific, all we can really say is that it's protocol-specific.
* twitter: don't hard-fail with mutes or noretweets (for "identica")dequis2016-07-25-0/+10
| | | | | | Fixes trac ticket 1254 Kinda dirty but better than keeping it broken.
* purple: Don't try to init module if it's already initializeddequis2016-07-25-0/+6
| | | | | This only happens if the user has used / forced daemon mode (for example, when debugging with BITLBEE_DEBUG=1)
* configure: improve error message on missing pkg-configdequis2016-07-25-1/+7
|
* Merge branch 'develop'dequis2016-07-08-18/+28
|\
| * debian: add #DEBHELPER# tag to maintscriptsdequis2016-06-14-17/+10
| | | | | | | | | | So that the systemd debhelper stuff can do its job. Also fixes a lintian warning.
| * systemd: Stop murdering the whole control group on stopdequis2016-06-14-0/+1
| | | | | | | | | | | | | | | | With this change, restarting or upgrading bitlbee doesn't kill child processes anymore, keeping the behavior of sysv scripts. This is desirable in public servers, where you probably want to upgrade the master process without disconnecting everyone.
| * purple: add $plugindir/purple to the plugin search pathdequis2016-06-12-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | This allows adding bitlbee-specific purple plugins in a directory controlled by the user who starts bitlbee (as it can be defined in bitlbee.conf, PluginDir). Pidgin and finch have something similar allowing users to place plugins in ~/.purple/plugins: path = g_build_filename(purple_user_dir(), "plugins", NULL); The direct equivalent would be to use our config dir, but i'd rather not put executable modules there.
| * debian: install systemd units and use dh_systemddequis2016-06-12-1/+13
| | | | | | | | | | | | I'm using the debhelper version (9.20131227) to avoid depending on dh_systemd for debian wheezy and ubuntu precise. If it's older than that, it's probably a distro without dh_systemd.
* | 3.4.2-1 as just uploaded.Wilmer van der Gaast2016-06-12-2/+6
|/
* Use correct error when no schemes are supported (#78)Marius Halden2016-06-11-1/+1
| | | | | | | | This will make bitlbee tell the user about the requirement for oauth when the server actually announces support for oauth. If the server does not announce oauth support bitlbee will tell the user it doesn't support any of the schemes provided by the server. These messages were reversed before.
* Use dh_prep rather than deprecated 'dh_clean -k'.Jelmer Vernooij2016-05-30-1/+2
|
* Unicodify my lastname.Jelmer Vernooij2016-05-30-1/+1
|
* Bump standards version to 3.9.8 (no changes).Jelmer Vernooij2016-05-30-1/+2
|
* Don't start synopsis with an article.Jelmer Vernooij2016-05-30-6/+7
|
* Twitter: add "like" as an alias for favourite.Aaron van Geffen2016-05-26-1/+2
| | | | | This will allow a user to type "like" in Twitter channels, reflecting recent changes to Twitter itself. Note that the API hasn't changed.
* Only load plugins with the right file extensionjgeboski2016-05-25-0/+4
| | | | | | Plugins which use autotools will install a .la file along with the .so file. Both of these files are loadable as plugins, so the plugin ends up being loaded twice. To prevent this, only load the .so module.
* Show the enabled/disabled protocols in the 'plugins' command outputjgeboski2016-05-25-9/+74
|
* Implemented plugin information for external pluginsjgeboski2016-05-25-1/+156
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | As of now, bitlbee will load any plugin regardless of the ABI it was built against. This is really problematic when structures or symbols are changed within bitlbee. This often leads to the plugin not loading or the plugin acting in an undefined way. Typically a simple rebuild of the plugin will resolve such issues, but many users have no idea that this is required after they have updated bitlbee. Furthermore, it is often times impossible to determine the version of a plugin, without relying on the package manager of the system. This is quite a problem when users are reporting bugs for external plugins, and they have no idea what version of the plugin they are running. This is also an opportunity to provide additional metadata for each plugin that can then be displayed to the user. Solving these issues is done by adding a new required function to each plugin. The init_plugin_info() function must now be implemented along with the init_plugin() function. This function then returns a static structure, which retains all of the metadata for the plugin. Then this is used by bitlbee to check the ABI version and provide information to the user. The introduction of the new function is required as bitlbee needs to obtain the ABI version before calling init_plugin(). The boiler-plate implementation of init_plugin_info(): #ifdef BITLBEE_ABI_VERSION_CODE struct plugin_info *init_plugin_info(void) { static struct plugin_info info = { BITLBEE_ABI_VERSION_CODE, /* Required */ "plugin-name", /* Required */ "1.3.3.7", /* Required */ "A short description of the plugin", /* Optional */ "First Last <alias@domain.tld>", /* Optional */ "http://www.domain.tld" /* Optional */ }; return &info; } #endif The example wraps the function declaration in an if block for backwards compatibility with older bitlbee versions. Displaying the plugin metadata is done via the newly added "plugins" command, which simply dumps formatted data to the root channel.
* purple: strdup the message instead of casting to char *dequis2016-05-25-3/+6
| | | | | | Fixes trac ticket 1255, which points out that a strip_html() call down there may modify the passed string, and some purple plugins may pass read-only string data to it.
* configure: add 'arch' variable again, needed for portabilitydequis2016-05-25-0/+2
| | | | | | It was removed by 2e78f75, but it only needed to remove the variable that was written to config.h, not the one that was used internally by configure.
* Fix Vcs-* control headers after migration to Git.Jelmer Vernooij2016-05-15-1/+3
|
* Remove the ARCH / CPU defines.Jelmer Vernooij2016-05-15-15/+14
| | | | | | | These only reflect on what arch/cpu bitlbee was built, not on which it is running. This makes the Debian package unreproducible. See e.g. https://tests.reproducible-builds.org/rb-pkg/testing/i386/bitlbee.html
* load_plugin: Improve g_module_open error messagedequis2016-05-06-1/+1
| | | | | The previous one seemed to imply a "file not found" error, which is misleading.
* unix.c: Move log_link() calls before plugin initializationdequis2016-05-01-9/+8
| | | | This ensures that plugin load errors are logged instead of thrown away
* ssl_gnutls: Replace GNUTLS_STUPID_CAST with (long)dequis2016-04-30-7/+1
| | | | | | | | That's what the gnutls code itself uses, in all platforms. There's a newer method that does this in a cleaner way, but it's not supported in all the gnutls versions that bitlbee works with, so this is simpler.
* twitter: Fix a couple of leaks of mutes_ids and retweets_idsdequis2016-04-17-8/+10
| | | | | | | Just freeing the list on logout and when removing items from them. Also remove the "checking mutes" debug which is disproportionately noisy compared to the rest of the protocol.
* Merge remote-tracking branch 'bitlbee/pr/70'dequis2016-04-16-4/+204
|\
| * Avoid adding an id twice to the mutes list.Flexo2016-04-01-7/+26
| | | | | | | | | | | | | | Twitter doesn't error if you mute the same user multiple times. Also, correct signedness of the stringified user ids. bitlbee keeps them as unsigned even if the json library uses signed for integers...
| * Receive mute/unmute notifications from the stream.Flexo2016-03-31-5/+25
| |
| * Add mute and unmute commands.Flexo2016-03-31-0/+24
| |
| * Honour twitter's mutes and "hide retweets from this user" settings.Flexo2016-03-23-0/+137
| |
* | Ignore CAP END when received multiple timesMarius Halden2016-04-06-0/+3
| | | | | | | | | | This fixes a segfault when CAP END was received after the capabilty negotiation was already over.
* | Fix use of un-initialized valueMarius Halden2016-03-26-1/+1
| |
* | ldap authentication backendDennis Kaarsemaker2016-03-25-4/+106
| | | | | | | | | | | | We only support the openldap scheme for now, with users that are posixAccounts. Moreover, as the plugin cannot be configured directly, you must configure libldap correctly in /etc/openldap/ldap.conf
* | Linux pam authentication backendDennis Kaarsemaker2016-03-25-3/+99
| | | | | | | | This backend authenticates users against pam.
* | Authentication: scaffolding for multiple authentication backendsDennis Kaarsemaker2016-03-25-78/+188
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Instead of always putting users passwords in XML files, allow site admins to configure a different authentication method to integrate authentication with other systems. This doesn't add any authentication backends yet, merely the scaffolding. Notably: - Password checking and loading/removing from storage has been decoupled. A new auth_check_pass function is used to check passwords. It does check against the configured storage first, but will handle the authentication backends as well. The XML storage merely signals that a user's password should be checked using an authentication backend. - If unknown-to-bitlbee users identify using an authentication backend, they are automatically registered. - If an authentication backend is used, that fact is stored in the XML file, the password is not. Passwords are also stored unencrypted in this case, as the password used to encrypt them can change underneath us. - configure and Makefile changes for the backend objects
* | Add a setting to disable 'account add'Dennis Kaarsemaker2016-03-23-0/+20
| | | | | | | | | | In a locked down bitlbee instance it is useful to disable the 'account add' command.
* | Allow individual settings to be locked downDennis Kaarsemaker2016-03-23-0/+16
| | | | | | | | | | | | This allows a site admin who pregenerates configs to mark certain settings as untouchable, ensuring that users cannot mess up their settings too badly.
* | Support for locked-down accountsDennis Kaarsemaker2016-03-23-4/+19
|/ | | | | | | | | | | | | In certain situations, e.g. when working with pregenerated configurations, it is useful to be able lock down accounts so they cannot be deleted and authentication information (user, password, server) cannot be changed. We mark such sensitive settings with ACC_SET_LOCKABLE and will refuse to change them if the account is locked by setting the ACC_FLAG_LOCKED flag. This flag is stored in the xml files as account attribute locked="true".
* CHANGES: fix the year of the 3.4.2 releasedequis2016-03-20-1/+1
| | | | lol