| Commit message (Collapse) | Author | Age | Lines |
|
|
|
|
|
|
|
|
|
| |
RIP
This plugin relied on the skype linux client, which doesn't work
anymore. During login it just does exit(0) for mysterious reasons.
I guess that's the server trying to say that it's not supported.
This is officially dead now after a few years of kinda-almost-working.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
| |
|
|
|
|
|
|
|
| |
These were the installation instructions for the out-of-tree plugin, no
longer relevant. Nowadays only the package names or the configure option
is interesting.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|\
| |
| |
| |
| |
| | |
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).
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
| |
| |
| |
| |
| | |
This makes them a bit faster, and there is no need to have separate
skyped configs for each test ATM.
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Before this patch, such errors (which happen 1/4 times here) lock
skyped forever, producing traceback (and hanging because threads
in python).
Proper fix would be to see why these happen (might be ssl handling
in the plugin), but that's no excuse not to handle socket errors
without crashing the daemon.
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
As it's a blocking socket, I imagine there might be only EINTR
errors from signals, which don't seem to be used here.
I think the same tweak can be applied to select() code, but
I don't run it, so no idea if Skype4Py threads might make such loop
necessary there.
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Use socket.sendall(), as send() is not guaranteed to send all
the data passed (though it should generally work that way with
blocking sockets).
Use more robust, obvious and idiomatic loop conditions.
Cleanup redundant imports and variables.
|
| | |
|
| |
| |
| |
| | |
pexpect/gdb
|