3
0
mirror of https://github.com/ergochat/ergo.git synced 2024-11-11 06:29:29 +01:00
Commit Graph

482 Commits

Author SHA1 Message Date
Shivaram Lingamneni
db39608bcb change "last signoff" tracking to "last seen"
Explicit quit and ping timeout behave the same way,
but reattach after abandoning/losing the previous session
(without the break being detected server-side) is more aggressive
about replaying missed messages, at the cost of potential duplication.
2020-02-27 02:17:58 -05:00
Shivaram Lingamneni
1975b0968a fix double decrement of stats on ping timeout 2020-02-25 14:04:50 -05:00
Shivaram Lingamneni
b45f8436a4 refactoring / bug fixing in history preferences 2020-02-25 00:19:24 -05:00
Shivaram Lingamneni
03378da81b CHATHISTORY with no results SHOULD send an empty batch 2020-02-21 00:33:48 -05:00
Shivaram Lingamneni
4472683d58 persist lastSignoff in the database 2020-02-21 00:33:37 -05:00
Shivaram Lingamneni
17a89838b8 fix Client.historyStatus 2020-02-21 00:33:37 -05:00
Shivaram Lingamneni
8f4c14c783 miscellaneous review fixes 2020-02-21 00:33:37 -05:00
Shivaram Lingamneni
ad32356e34 move authentication data from Client to Session 2020-02-19 00:24:21 -05:00
Shivaram Lingamneni
33dac4c0ba initial persistent history implementation 2020-02-19 00:24:12 -05:00
Shivaram Lingamneni
a3f008e348 mitigate #772 2020-02-06 17:56:10 -05:00
Shivaram Lingamneni
5d662742b9 remove oragono.io/maxline-2 and fmsgid 2020-01-18 23:47:05 -05:00
Shivaram Lingamneni
6838d19acc don't check the real IP for bans on proxy-before-TLS
In the k8s PROXY-before-TLS setting, we don't know all the IPs
of the load balancers, so we can't whitelist them, so they're at
risk of being d-lined.
2020-01-09 04:38:59 -05:00
Shivaram Lingamneni
d67d77bee7 fix #731 2020-01-03 09:46:55 -05:00
Shivaram Lingamneni
f920d3b79f fix #530, #721 2019-12-29 12:05:01 -05:00
Shivaram Lingamneni
9de9fcf069
Merge pull request #695 from slingamn/issue693_casemappings.4
#693: configurable casemappings
2019-12-29 09:20:06 -05:00
Shivaram Lingamneni
358c4b7d81 implement draft/multiline 2019-12-24 09:29:54 -05:00
Shivaram Lingamneni
bf5a02f077
Merge pull request #692 from slingamn/issue683_channelpurge.1
chanserv enhancements and miscellaneous fixes
2019-12-22 10:41:24 -05:00
Shivaram Lingamneni
b717402b5e implement review feedback
1. If both fingerprint and hash are specified, require both instead of either
2. Implement auto-oper on connect
2019-12-19 06:33:43 -05:00
Shivaram Lingamneni
ab444a3980 remove unnecessary uses of Casefold 2019-12-18 12:21:03 -05:00
Shivaram Lingamneni
4b37b5dd3e tweak to avoid a potential data race 2019-12-17 19:57:23 -05:00
Shivaram Lingamneni
3480f124cd fix #688 2019-12-17 19:37:33 -05:00
Shivaram Lingamneni
07865b8f63 chanserv enhancements and miscellaneous fixes
* Fix #684
* Fix #683
* Add `CHANSERV CLEAR`
* Allow mode changes from channel founders even when they aren't joined
* Operators with the chanreg capability are exempt from max-channels-per-account
* Small fixes and cleanup
2019-12-16 20:06:52 -05:00
Shivaram Lingamneni
7432ef07a7 rename some variables for clarity 2019-11-20 17:43:45 -05:00
Shivaram Lingamneni
50783d5276 fix #561, take 2 2019-11-20 17:35:35 -05:00
Shivaram Lingamneni
24c103da5a fix #642 2019-10-05 23:50:11 -04:00
Shivaram Lingamneni
7ed27d4a42 Fix #448, #594 2019-08-27 03:58:04 -04:00
Daniel Oaks
7a56c4e0ad
Merge pull request #591 from slingamn/history_autoresize.4
autoresizing of history buffers (#349)
2019-07-31 06:36:35 +10:00
Shivaram Lingamneni
ecf945038f
Merge pull request #565 from slingamn/listener_refactor.3
refactor listener config loading
2019-07-12 11:08:04 -04:00
Daniel Oaks
dc87ae7ef1
Merge pull request #583 from slingamn/stats.4
fix #526
2019-07-12 23:39:50 +10:00
Shivaram Lingamneni
cbabccc2f8 fix #592 2019-07-04 07:05:38 -04:00
Shivaram Lingamneni
6e9a728354 autoresizing of history buffers (#349) 2019-07-03 21:08:37 -04:00
Shivaram Lingamneni
5a554ab4b0 fix #526 2019-07-01 09:21:38 -04:00
Shivaram Lingamneni
cfe991a335 Merge remote-tracking branch 'origin/master' into listener_refactor.4 2019-06-28 09:05:07 -04:00
Shivaram Lingamneni
5d0b8390e9 refactor listener config loading 2019-06-19 22:33:15 -04:00
Shivaram Lingamneni
8dca545264 consolidate some time-setting code 2019-06-13 07:24:38 -04:00
Daniel Oaks
dc322f8fd4
Merge pull request #546 from slingamn/issue536.3
fix #536
2019-06-10 01:13:02 +10:00
Shivaram Lingamneni
321c437499 fix #536 2019-05-31 14:39:21 -04:00
Shivaram Lingamneni
4350b92bef fix KILL etc. for BRB'ed clients 2019-05-30 18:49:03 -04:00
Shivaram Lingamneni
c0b554e98c changes from discussion 2019-05-29 07:37:57 -04:00
Shivaram Lingamneni
acc9d8c13d update to proposed draft/resume-0.5 behavior 2019-05-29 05:58:47 -04:00
Shivaram Lingamneni
5ac7ea5b1c fix data race on exitedSnomaskSent 2019-05-27 14:33:59 -04:00
Shivaram Lingamneni
1a7169d75d fix double-destroy bug 2019-05-27 06:10:39 -04:00
Shivaram Lingamneni
74732c4aeb new proposed format for RESUMED messages 2019-05-27 06:10:39 -04:00
Shivaram Lingamneni
57684fc1e5 fix #518 2019-05-27 06:10:39 -04:00
Shivaram Lingamneni
99de53264e fix a bug in SetQuitMessage
Quit messages aren't supposed to clobber each other under any
circumstances, but actually only the default "Connection closed"
message was non-clobbering, all others would clobber.
2019-05-23 21:20:14 -04:00
Shivaram Lingamneni
174115deb6 fix #455 2019-05-23 21:20:14 -04:00
Shivaram Lingamneni
4b88a60ba6 clean up some old getters 2019-05-22 19:07:12 -04:00
Shivaram Lingamneni
05459012ef move fakelag processing back to read loop as well 2019-05-22 18:35:24 -04:00
Shivaram Lingamneni
4e13f72ca9 put an upper limit on registration messages
Fixes #505
2019-05-22 16:42:25 -04:00
Shivaram Lingamneni
cf153c2b09 restore RESUME SUCCESS message 2019-05-22 15:08:02 -04:00
Shivaram Lingamneni
851617a4a5 Merge remote-tracking branch 'origin/master' into brb.5 2019-05-22 03:29:18 -04:00
Shivaram Lingamneni
3d445573cf implement draft/resume-0.4 2019-05-21 22:36:37 -04:00
Shivaram Lingamneni
b96fdb2293 support znc.in/playback 2019-05-20 19:08:57 -04:00
Shivaram Lingamneni
8fc588375b implement user preferences system 2019-05-19 06:17:30 -04:00
Shivaram Lingamneni
25974b6881 fix #487 2019-05-19 05:12:12 -04:00
Shivaram Lingamneni
58d089020e send command processing errors to the originating session only 2019-05-15 22:30:35 -04:00
Shivaram Lingamneni
0346c23ae0 fix #387 2019-05-15 01:30:21 -04:00
Shivaram Lingamneni
6ded2ea466 fix #483 2019-05-13 00:43:29 -04:00
Shivaram Lingamneni
0b55fed7c5 consolidate acceptClient into RunNewClient 2019-05-12 20:57:53 -04:00
Shivaram Lingamneni
353aeb0389 normalize most times in the app to UTC
Fixes #480
2019-05-12 20:57:53 -04:00
Shivaram Lingamneni
13dda00989
Merge pull request #481 from slingamn/cloaks.5
implement ip cloaking
2019-05-12 20:23:45 -04:00
Shivaram Lingamneni
18aecfeed0 fix #362 2019-05-12 03:20:31 -04:00
Shivaram Lingamneni
c28e6d13f9 implement ip cloaking 2019-05-12 02:52:12 -04:00
Shivaram Lingamneni
5331afbdd4 Merge remote-tracking branch 'origin/master' into compat.4 2019-05-11 21:56:41 -04:00
Shivaram Lingamneni
c193def606 fix some issues found with staticcheck.io 2019-05-10 01:44:14 -04:00
Shivaram Lingamneni
ce6a3e42df load isupport directly into the config object
eliminates Server.configurableStateMutex
2019-05-10 00:32:10 -04:00
Shivaram Lingamneni
fbc6c84a01 add client compatibility switches 2019-05-09 15:41:08 -04:00
Shivaram Lingamneni
60c8f286e8 fix several session destruction bugs 2019-05-08 20:55:34 -04:00
Shivaram Lingamneni
da656c07c8 add NICKSERV SESSIONS command to list sessions 2019-05-08 18:18:05 -04:00
Shivaram Lingamneni
b11bf503e7 improvements to message replay code 2019-05-08 03:02:48 -04:00
Shivaram Lingamneni
51465b4a3a strip out the +a away mode 2019-04-28 15:12:48 -04:00
Shivaram Lingamneni
4af783ed9e fix #449 2019-04-14 20:48:50 -04:00
Shivaram Lingamneni
c2faeed4b5 initial implementation of bouncer functionality 2019-04-14 20:48:50 -04:00
Daniel Oaks
8c7027c604
Merge pull request #446 from slingamn/chanregrefactor.6
refactor channel registration
2019-04-04 21:59:25 +10:00
Shivaram Lingamneni
18a8b075ea fix #425 and #395 2019-03-19 04:40:48 -04:00
Shivaram Lingamneni
63029e2ff5 refactor channel registration 2019-03-12 04:16:16 -04:00
Daniel Oaks
baa7e5af0b
Merge pull request #442 from slingamn/message_tags.5
upgrade message-tags to non-draft version
2019-03-12 08:47:08 +10:00
Shivaram Lingamneni
2e88f82e41 remove indirections in Fakelag and NickTimer 2019-03-08 05:36:54 -05:00
Shivaram Lingamneni
85493ef031 upgrade message-tags to non-draft version 2019-03-07 04:31:08 -05:00
Shivaram Lingamneni
18169cbedf disallow resume from tor to non-tor 2019-02-26 16:39:10 -05:00
Shivaram Lingamneni
5f26023d88 Merge remote-tracking branch 'origin/master' into tor.2 2019-02-26 14:46:15 -05:00
Shivaram Lingamneni
d13f58acf0 review fixes 2019-02-25 22:56:08 -05:00
Shivaram Lingamneni
b0f89062fa add support for tor (#369) 2019-02-25 22:09:09 -05:00
Shivaram Lingamneni
7018e3693b optimization: check IsLoggingRawIO before attempting to log input 2019-02-24 21:07:12 -05:00
Shivaram Lingamneni
c6b9fe0218 fix #384 2019-02-19 03:12:47 -05:00
Shivaram Lingamneni
a5f04495a1 fix #389 2019-02-15 13:34:09 -05:00
Shivaram Lingamneni
519d19c364 fix #364 2019-02-13 16:48:26 -05:00
Shivaram Lingamneni
afe94d43c3 update resume support to draft/resume-0.3 2019-02-12 01:03:19 -05:00
Shivaram Lingamneni
35abe7940a RESUME should end cap negotiation without requiring CAP LS 2019-02-09 20:26:32 -05:00
Daniel Oaks
71a33890b8
Merge pull request #344 from slingamn/history.4
add CHATHISTORY and HISTORY implementations
2019-02-05 22:16:45 +10:00
Shivaram Lingamneni
928caba922
Merge pull request #345 from slingamn/saslonly.3
add sasl-only config option
2019-02-05 04:10:35 -05:00
Shivaram Lingamneni
36612f6e2d review fixes 2019-02-05 03:05:05 -05:00
Shivaram Lingamneni
bf1d758de9 simplify username logic 2019-02-05 02:42:13 -05:00
Shivaram Lingamneni
1c23af8767 add sasl-only config option 2019-02-05 00:51:58 -05:00
Shivaram Lingamneni
f6b3008f8f add CHATHISTORY and HISTORY implementations 2019-02-04 05:33:36 -05:00
Daniel Oaks
e8309aee79 Avoiding a crash when getting a short ident is a good thing 2019-02-04 05:02:13 +10:00
Daniel Oaks
cfbb4361dc Restrict ident length similar to other servers 2019-02-03 19:24:59 +10:00
Daniel Oaks
8cd5db1194 Restrict idents as other servers do 2019-02-03 18:49:42 +10:00
Shivaram Lingamneni
b9b2553a2f use the TR39 skeleton algorithm to prevent confusables (#178) 2019-01-30 21:48:53 -05:00
Shivaram Lingamneni
8438afcc5c fix: usernames from ident don't get a ~ 2019-01-28 23:35:00 -05:00
Shivaram Lingamneni
4bbba5b478 fix the issue for AllNickmasks as well 2019-01-28 23:12:25 -05:00
Shivaram Lingamneni
a2a9788f39 fix spurious bidi violations when casefolding the nickmask of an RTL nick 2019-01-28 18:15:35 -05:00
Shivaram Lingamneni
f94f737b31 add support for login throttling 2019-01-02 10:15:59 -05:00
Shivaram Lingamneni
960d51159c add ClientDetails struct for getting a snapshot of client state 2019-01-02 09:55:45 -05:00
Shivaram Lingamneni
a4b3fb0e83 changes to client idle time counting
1. Remove leaveClientIdle (unused)
2. s/leaveClientActive/leaveClientIdle/
3. make ISON a leaveClientIdle command (some clients send it periodically
   if a /msg window is left open)
2018-12-30 18:17:24 -05:00
Shivaram Lingamneni
d5eade5494 force trailing zeroes in timestamp wire format
According to jwheare, ISO 8601 doesn't specify the behavior one way
or the other, and the server-time spec is also ambiguous, but this
is safest.
2018-12-30 18:17:24 -05:00
Shivaram Lingamneni
2c7c8fbaf9 history replay enhancements 2018-12-28 13:45:55 -05:00
Shivaram Lingamneni
b6b4d365bc fix #313 2018-12-23 13:30:25 -05:00
Shivaram Lingamneni
a0bf548fc5 draft/resume-0.2 implementation, message history support 2018-11-26 05:23:27 -05:00
Shivaram Lingamneni
10d4f77638 fix PROXY protocol support for IPv6
1. Handle PROXY lines with IPv6 addresses starting with ::
(similar to WEBIRC in issue #211)

2. Strip v6 mapping from v4 addresses when handling proxied IPs.
2018-09-03 00:38:32 -04:00
Shivaram Lingamneni
a4546c418b fix miscounting in LUSERS 2018-08-08 17:56:12 -04:00
Shivaram Lingamneni
3c12fb6254 fix #283 (remove unnecessary log.Fatal)
The server should never crash during rehash, even if the config is invalid.
2018-08-06 10:08:58 -04:00
Shivaram Lingamneni
1383190249 refactor rehash to rely more on server.config 2018-07-16 03:46:40 -04:00
Daniel Oaks
de7b679fc5
Merge pull request #247 from slingamn/vhosts.3
initial vhosts implementation, #183
2018-05-19 08:51:16 +10:00
Daniel Oaks
8227822d3e
Merge pull request #264 from slingamn/deps.1
reduce copying of output lines
2018-05-04 23:13:56 +10:00
Shivaram Lingamneni
f6373f7a4d fix #262 2018-05-04 00:29:16 -04:00
Shivaram Lingamneni
3150f4e23b reduce copying of output lines 2018-05-01 05:23:40 -04:00
Shivaram Lingamneni
ebfef1e848 add Semaphore and ServerSemaphores 2018-04-26 06:03:10 -04:00
Shivaram Lingamneni
ef35c587fc remove redundant friends computation 2018-04-25 00:58:54 -04:00
Shivaram Lingamneni
b97ae00fe3 refactor channel join and part 2018-04-25 00:58:54 -04:00
Shivaram Lingamneni
74fa58dda0 Merge remote-tracking branch 'origin/master' into vhosts.4 2018-04-23 21:46:12 -04:00
Shivaram Lingamneni
cc9941cb07 review fixes, bug fixes 2018-04-23 02:38:35 -04:00
Shivaram Lingamneni
fad2475c3f modes refactor, #255 2018-04-22 19:36:15 -04:00
Daniel Oaks
8f22d5ffd8
Merge pull request #236 from slingamn/socket_again.1
eliminate dedicated RunSocketWriter goroutine
2018-04-23 02:07:43 +10:00
Daniel Oaks
0aab3b44e9
Merge pull request #252 from slingamn/issue249
fix #249
2018-04-22 13:38:26 +10:00
moocow
744ad2ce0b Stats for LUSERS logic now seperated, fixed params in LUSERS 2018-04-20 22:48:15 +02:00
Shivaram Lingamneni
393070b7d9 fix #249 2018-04-20 14:21:07 -04:00
Shivaram Lingamneni
5e62cc4ebc initial vhosts implementation, #183 2018-04-19 03:00:56 -04:00
Daniel Oaks
22f9df388d Fix trailing hack 2018-04-16 02:28:25 +10:00
Shivaram Lingamneni
4778e7bcc7 fixes
* Placate `go vet`
* Reorder the `send` loop, clarify things a little
2018-04-15 01:21:32 -04:00
Shivaram Lingamneni
b2f798cf03 eliminate dedicated RunSocketWriter goroutine 2018-04-13 16:13:43 -04:00
Shivaram Lingamneni
7cfa75a59e
Merge pull request #218 from slingamn/socketwriter.1
refactor irc.Socket
2018-03-28 13:26:03 -04:00
Shivaram Lingamneni
36018174b0 default fakelag to off, add explicit cooldown config 2018-03-28 13:18:08 -04:00
Shivaram Lingamneni
1bf5e2a7c8 implement fakelag (#189) 2018-03-22 11:04:21 -04:00
Shivaram Lingamneni
d1f5c59eef fix #190 2018-03-17 23:26:07 -04:00
Shivaram Lingamneni
945dec9964 ensure the nick timeout mechanism is cleaned up on client quit 2018-02-28 17:29:18 -05:00
Shivaram Lingamneni
be86684e96 implement #199 2018-02-26 22:48:52 -05:00
Shivaram Lingamneni
b139386391 fix account tags 2018-02-11 06:31:23 -05:00
Shivaram Lingamneni
ad73d68807 refactor account registration, add nick enforcement 2018-02-11 05:30:40 -05:00
Daniel Oaks
e0fa97d344 Get labeled-reply working just fine 2018-02-06 00:21:08 +10:00
Daniel Oaks
3680a3fe9a Merge 2018-02-04 21:32:48 +10:00
Daniel Oaks
2419f69879 Move all errors into errors.go 2018-02-03 22:03:36 +10:00
Daniel Oaks
2ecec25d28 Misc refactoring 2018-02-03 21:15:07 +10:00
Daniel Oaks
3634d0601e Split modes into a subpackage (this is painful, but will force us to simplify and improve the API for interacting with modes) 2018-02-03 20:21:32 +10:00
Daniel Oaks
29266ce80f nickserv: Fix help display 2018-02-03 19:00:27 +10:00
Shivaram Lingamneni
2a7f055ef3 support unix domain sockets 2018-02-01 16:19:07 -05:00
Daniel Oaks
07fc902b21 Labeled-Response 2018-01-28 00:40:34 +10:00
Daniel Oaks
ddd7f0dc99 Add 'are supported by this server' to translatable strings 2018-01-23 23:31:29 +10:00
Daniel Oaks
090095b2b9 Set default client language when creating them 2018-01-22 21:30:28 +10:00
Daniel Oaks
275227a461 Make like every client-facing string translatable 2018-01-22 21:26:01 +10:00