This means that now it's possible to have the same class names in
different modules, which reduces chances of weird errors.
Thanks to mclc for noticing this.
This fixes the "busy loop waiting for an SSL handshake to finish" which the last
"Update to latest Csocket" was already supposed to fix. However, that fix had a
bug if poll() is used instead of select().
poll()'s timeout argument is in milliseconds while select also allows
microseconds. Since Csocket originally used select(), it expects the
microseconds-approach. This means it has to divide by 1000 to get the timeout
argument for poll().
However, the iQuickReset which was used to "fix" (rather: hide) the busy loop
was less than 1ms so this still resulted in a timeout of 0 (= busy loop) because
integer division truncates the result.
Signed-off-by: Uli Schlachter <psychon@znc.in>
This means that they will get a new cookie on the next request. This will make
sure that you will be able to use webadmin again if your IP changed (which seems
to happen to quite a number of people).
Signed-off-by: Uli Schlachter <psychon@znc.in>
This helps people figuring out that they are still building their modules for
the wrong znc version since they have more than one installation on their box.
Signed-off-by: Uli Schlachter <psychon@znc.in>
Fixes:
- A possible crash bug for empty DNS replies with c-ares. E.g. a AAAA lookup for
google.com doesn't give any reply but is still successful. This might be a
c-ares bug (there is ARES_ENODATA) or c-ares just changed its behavior?
(No bug report, just noticed accidentally)
- Connecting to ipv4-only hosts with a v6 bindhost caused weird errors:
https://github.com/znc/znc/issues/47
- There was a pull request for some DSA server certificate thingy:
https://github.com/znc/znc/pull/46
- Busy loop waiting for an SSL handshake to finish:
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=631590
- Some other stuff? No idea what some of the changes in here are actually doing.
Signed-off-by: Uli Schlachter <psychon@znc.in>
For character values above 127, the signed char that could be used here did the
wrong thing. That is, *it >> 4 returned a negative value and the array hexdigits
was read indexed with that wrong value.
Fix this by explicitly using unsigned char.
Thanks to crocket for reporting this bug which he found with perform (broken
entries after a restart/reload).
Signed-off-by: Uli Schlachter <psychon@znc.in>
This moves the version check into the function which loads the module info. That
way, we just need a single dlsym() call per module and thus can't get any errors
from the second dlsym() call. And IMHO this feels nicer anyway. ;-)
Signed-off-by: Uli Schlachter <psychon@znc.in>
For that you need to write a specialization of template function
void TModInfo<CYourModule>(CModInfo&), and inside it put needed values
to the argument.
Now there're only 2 functions which modules export:
ZNCModVersion() and ZNCModInfo().
ZNCModInfo() returns CModInfo instance, which contains
description, globality, function for loading the module. It needs to be
deleted afterwise.
This adds hostmasks to autoattach. E.g. if you don't like me, you add an entry
of "! * psychon!*" and autoattach won't attach you to channels just because I
said something. The same can be done in the non-negated case, "only attach when
foo says something".
Signed-off-by: Uli Schlachter <psychon@znc.in>
The old code didn't actually destroy the session, but only made sure we couldn't
use it anymore. What a waste of memory.
This was tested by adding a DEBUG()-call to CWebSock::~CWebSock():
Before this patch:
Page Request [/]
Remote IP: 127.0.0.1; discarding session [ca104adaa54f933b6b8394e88e68ab0d22e0fc227ed23e93d1421e4d3fda8211]
Auto generated session: [d40364e8d0a55432b86a1b2598865c2323e35cc6e77cade35b9a1b7605712ca6]
After this patch:
Page Request [/]
Remote IP: 127.0.0.1; discarding session [707e3b262fe47b93d8c796354574506c398cc5b5d84aa2972dc3d031d8f731f5]
Destroying session [707e3b262fe47b93d8c796354574506c398cc5b5d84aa2972dc3d031d8f731f5, 127.0.0.1 for <unknown>
Auto generated session: [47de1c82a8b6eaae54a9cc8c29163ab53ec2add7198cf1df7f80506ea1bda2b6]
Obviously, the destructor is only called after this change.
Signed-off-by: Uli Schlachter <psychon@znc.in>
Some modules (e.g. webadmin) don't handle messages to *module in any way. Make
it clear to the user why they didn't get any reply back in this case.
Signed-off-by: Uli Schlachter <psychon@znc.in>