| Commit message (Collapse) | Author | Age | Lines |
| |
|
|
|
|
|
| |
This will allow a user to type "like" in Twitter channels,
reflecting recent changes to Twitter itself. Note that the
API hasn't changed.
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
| |
The previous one seemed to imply a "file not found" error, which is
misleading.
|
|
|
|
| |
This ensures that plugin load errors are logged instead of thrown away
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
| |
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.
|
|\ |
|
| |
| |
| |
| |
| |
| |
| | |
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...
|
| | |
|
| | |
|
| | |
|
| |
| |
| |
| |
| | |
This fixes a segfault when CAP END was received after the capabilty
negotiation was already over.
|
| | |
|
| |
| |
| |
| |
| |
| | |
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
|
| |
| |
| |
| | |
This backend authenticates users against pam.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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
|
| |
| |
| |
| |
| | |
In a locked down bitlbee instance it is useful to disable the 'account
add' command.
|
| |
| |
| |
| |
| |
| | |
This allows a site admin who pregenerates configs to mark certain
settings as untouchable, ensuring that users cannot mess up their
settings too badly.
|
|/
|
|
|
|
|
|
|
|
|
|
|
| |
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".
|
|
|
|
| |
lol
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
| |
It was removed in ba7d16f, but this remained.
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
|
| |
It only affects irc->user and irc->root, and this was calling it for
everyone.
|
|
|
|
|
|
| |
So if someone has several connections with several clients to a chat,
they won't appear as leaving from the chat until they leave from the
last client.
|
|
|
|
|
|
|
| |
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/
|
| |
|
| |
|
| |
|
|
|
|
| |
9456255 made the variable 's' unused but failed to remove it.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Fixes trac ticket #1248
proxy_connected() calls phb->func(), then tries to do phb_free() directly
afterwards, but that might have been freed by a proxy_disconnect() call
during the execution of that callback.
This one happened to several different people because some AIM server
broke recently.
This commit fixes it by implementing a phb_connected() function that
removes the PHB from the hash table before calling phb->func(), which
ensures that any proxy_disconnect() calls just close the fd and nothing
else.
|
| |
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
| |
When sending WHO reply, check if irc_user is the account user and if
so set away status according to global account away configuration.
Otherwise, reply according to irc_user flags. Fixes global away
status not being shown in IRC clients when WHO polling is enabled.
Fixes: https://bugs.bitlbee.org/ticket/1247
|
|
|
|
|
|
| |
Not a big deal because as far as I can see not much happens between the
g_slist_remove() in dcc_close() and accessing files->next. I'd expect
that pointer to remain null after being freed most of the time.
|
|
|
|
|
|
|
| |
The jabber_buddy used for messages sent from other resources connected
to the same groupchat has a different ext_jid and it's a different
object than jc->me, so doing a string comparison against acc->user is
needed.
|
|
|
|
| |
It was showing 'secondary' only before.
|
|
|
|
|
|
|
| |
This reverts commit d11ccbf6ea94264bde8b0f525c4bbedf50de0174.
After thinking about this long enough I've decided this is a bad idea,
and better wait for the hipchat server to support carbons.
|
| |
|
| |
|