Commit Graph

291 Commits

Author SHA1 Message Date
J-P Nurmi
14a534c953 Full-fledged query buffers
Store query buffers per query the same way it's done for channels.

This allows clients to implement persistent query buffers. Queries
remain open across clients and sessions until a client explicitly
sends a command to clear a (closed) query buffer.

A new config option AutoClearQueryBuffer that default to false
ensures behavioral backwards compatibility, and another config
MaxQueries protects from OOM eg. due to PM attacks.
2014-08-04 10:04:21 +02:00
Uli Schlachter
ba11b8eecf Less magic numbers for timeout settings
Currently the connection timeout handling of znc uses three magic numbers, each
of which is at least repeated in two unrelated places. This commits defines the
numbers in CIRCNetwork and makes the other places just use this number.

This also renames PING_TIMEOUT to PING_FREQUENCY because I feel that describes
this constant better.

I am not really happy about the name NO_TRAFFIC_TIMEOUT that is used for the
real timeout, but I couldn't think of a better name. PING_TIMEOUT isn't good
because that sounds like the time between sending a PING and the resulting
timeout.

Signed-off-by: Uli Schlachter <psychon@znc.in>
2014-07-14 15:33:36 +02:00
Alexander Færøy
2521d64a1c Add PING_TIMEOUT constant to CIRCNetwork 2014-06-18 21:04:20 +02:00
Alexander Færøy
1e9e029227 Start joining channels as soon as we are connected 2014-06-18 21:04:20 +02:00
Alexander Færøy
299f3aa637 Split CUserTimer into CIRCNetworkPingTimer and CIRCNetworkJoinTimer
This patch splits CUserTimer into two other timers:

CIRCNetworkPingTimer: This timer sends PING messages to connected
client's and IRC servers.

CIRCNetworkJoinTimer: This timer enforces the MaxJoin setting by only
allowing a specified amount of channels to join at the same time.

JoinChans() is modified to reset the ping timer once we hit the MaxJoin.
This allows us to call it from any function without breaking the timing
logic.
2014-06-18 21:04:20 +02:00
Alexey Sokolov
93d2eec4db Update Csocket to ef6bcb9d5c1aecd778c5a57604eabdcb5e1ee06e 2014-06-17 23:22:16 +01:00
Alexey Sokolov
2a656f539d If web requests starts not with URI prefix, redirect to root of the prefix
Before it shown the right result even with wrong path (without prefix),
but it worked only with ZNC directly, not via reverse proxy.

Now it won't work with ZNC directly too.
2014-06-10 21:55:38 +01:00
Alexander Færøy
db0e0995e2 Add OnJoining module hook.
This patch adds an OnJoining module hook that allows a module to allow
or disallow joining any given channel.
2014-05-29 23:10:30 +02:00
Alexey Sokolov
a35385db3a Merge branch 'master' of github.com:znc/znc 2014-04-26 16:45:31 +01:00
Alexey Sokolov
0952ee82e0 Don't set ConnectDelay to zero 2014-04-26 16:45:04 +01:00
Kyle Fuller
ed7119b5bc Update to latest version of Csocket
Fixes #536
2014-04-24 19:28:37 +01:00
Kyle Fuller
5e90bc380b [Csocket] Support and default to TLSv1.2
Updates to 21ac28cc29e9256a21a9aa217e29638360c266d0 of Csocket
2014-04-20 23:35:29 +01:00
Alexey Sokolov
66ea539165 Show username of every http request in -D output 2014-04-20 15:20:39 +01:00
Alexey Sokolov
9cf61ac6d4 Argh, fuck it. Rename fixed (pointer) versions of OnMode to OnMode2 2014-04-12 08:51:04 +01:00
Thomas Ward
12d81e1d4e Reword ClearBindHost/ClearUserBindHost success msg
The ClearBindHost and ClearUserBindHost success messages do not make a distinction on whether it's a network bind host that's being cleared or whether it's a user bind host that's being cleared.  I think that this should be reworded to make the distinction.
2014-03-26 20:10:15 -04:00
Alexey Sokolov
6295cea25f Don't ask for listen host in --makeconf
It confuses people too much.
Who wants ZNC to listen on localhost, may change settings immediately
after, via webadmin or /msg *status
2014-03-08 19:08:36 +00:00
J-P Nurmi
2b0c47aa8e Add CChan::SendBuffer(client, buffer) overload
This allows interested parties eg. modules to to send a partial
buffer playback without reinventing the wheel.
2014-03-04 08:27:10 +01:00
J-P Nurmi
76bfa99dd0 Add module hooks for raw client and server messages 2014-03-04 00:24:15 +01:00
Alexey Sokolov
77652768c6 Merge pull request #493 from jpnurmi/server-time
Promote server-time formatting to Utils
2014-03-03 22:44:49 +00:00
Alexey Sokolov
7d2f74acf4 Merge pull request #500 from jpnurmi/find-chans
Add CIRCNetwork::FindChans()
2014-03-03 22:38:41 +00:00
Alexey Sokolov
5237e89bc3 Fix message tags parser and add test of it 2014-03-03 22:35:56 +00:00
J-P Nurmi
ed25ca21e6 Add CIRCNetwork::FindChans() 2014-03-02 23:24:34 +01:00
J-P Nurmi
5f8f747704 Add CUtils::Get/SetMessageTags() 2014-03-02 23:18:39 +01:00
J-P Nurmi
bbd84a06bf Promote server-time formatting to Utils 2014-03-02 02:01:40 +01:00
Alexey Sokolov
618d9c58a4 Fix chansaver's channel keys by adding other OnMode() hooks 2014-02-27 00:49:45 +00:00
Alexey Sokolov
1c8e9b9355 Merge pull request #485 from uu1101/uriprefix
Allow serving the web interface under a subpath
Fix #480
Fix #138
2014-02-17 00:44:37 +00:00
uu1101
f6a881eeb2 Redirect to URIPrefix for paths outside the prefix 2014-02-16 12:45:10 +01:00
uu1101
c0974d9910 Don't support relative redirects 2014-02-16 12:45:10 +01:00
uu1101
4376b373d8 Prepend URIPrefix to web interface links
Prefix links in templates with URIPrefix and add the input field to the
Listener editor.

The URIPrefix is provided as a top-level template variable. All URIs
have been changed to have the prefix prepended.
2014-02-16 12:45:10 +01:00
uu1101
d796fc8312 Add prefix on redirects and strip it on requests 2014-02-16 12:45:09 +01:00
uu1101
88c85b0396 Add URIPrefix listener option 2014-02-16 12:45:09 +01:00
uu1101
d3ddb9b69d The Listener of a RealListener is never NULL 2014-02-15 14:57:33 +01:00
uu1101
7a9ce630ef Add CString::StartsWith and CString::EndsWith 2014-02-15 12:41:54 +01:00
Alexey Sokolov
b7592008af Merge pull request #484 from KiNgMaR/singleton
Allow more control over CZNC singleton
2014-02-08 18:03:06 +00:00
Ingmar Runge
ec6607ccf5 Use CZNC::DestroyInstance(). 2014-02-08 01:32:12 +01:00
Ingmar Runge
4c505946ac Patch ZNC core for more control over singleton... 2014-02-08 01:25:28 +01:00
Alexey Sokolov
17d97bba6b Merge pull request #482 from KiNgMaR/win32-file-move
work around Win32 rename() issue using native API
2014-02-07 20:48:08 +00:00
Ingmar Runge
d80e989dba work around Win32 rename() issue using native API 2014-02-06 18:06:29 +01:00
Ingmar Runge
b3021f913e squash some compiler warnings 2014-02-06 17:52:42 +01:00
Alexey Sokolov
2858da4c76 Don't create ~/.znc/modules/
It confuses people too much
2014-02-01 16:08:56 +00:00
Alexey Sokolov
225b494761 Don't reread list of TZs every time 2014-01-27 00:26:30 +00:00
Alexey Sokolov
05ca849339 Don't ask if user wants to create znc.pem or not
Sure they want!
2014-01-27 00:07:17 +00:00
Alexey Sokolov
366158d907 Add charset to version info 2014-01-25 13:50:07 +00:00
Alexey Sokolov
cfc1227171 Drop old charset module
It didn't work well with webadmin
2014-01-25 13:50:07 +00:00
Alexey Sokolov
c0a5ecb40b Add support for character encodings
Previous commit added support of it to Csocket.
When encoding is specified, core will convert incoming messages to UTF-8,
and outgoing messages from UTF-8.
When no encoding is specified, it will do nothing to bytes, like before.
This is to be changed somewhere in future, to have UTF-8 on wire by
default too.
When encoding's name starts with *, incoming messages will be treated as
UTF-8, if it is already correct UTF-8. Otherwise, it's converted.

Fix #151
Fix #366
2014-01-25 13:50:07 +00:00
Alexey Sokolov
6012cdee77 Update Csocket to e818c7b0d31b0ed71c74f9d0035b58efd73f3988
This adds support for character encodings, and decreases CPU usage in
some cases
2014-01-25 13:50:07 +00:00
Nicolas Martyanoff
f215ec602f Include the command name in ERR_INVALIDCAPCMD messages
As described in the IRCv3 Client Capability Negotiation document
(http://ircv3.org/specification/capability-negotiation-3.1).
2014-01-23 12:44:07 +01:00
Alexey Sokolov
f456b274b5 Warn users about port 6667 in --makeconf
This should decrease chance of web browsers failing to connect to ZNC
2014-01-18 12:28:38 +00:00
Alexey Sokolov
559abc3d8c Merge pull request #458 from ConorOG/issues_235a
fix #235, erroric console output, status message overwrite
2014-01-16 15:22:33 -08:00
Alexey Sokolov
e0fd211053 Merge pull request #441 from psychon/websocks-expire-oldest
WebModules: Discard sessions in LRU order
2014-01-16 15:21:27 -08:00