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
Daniel Oaks
0569b5cfaa
RESUME: Fix a few bugs, play modestrings 'n' all
2018-01-22 20:55:20 +10:00
Daniel Oaks
f8b39cfe61
Send fake channel joins on RESUME
2018-01-22 17:58:10 +10:00
Daniel Oaks
7760634efe
Actually let the takeover work somewhat more properly
2018-01-22 17:57:38 +10:00
Daniel Oaks
0d5327de8a
Fix some issues, add RPL_WHOISACCOUNT
2018-01-22 17:57:38 +10:00
Daniel Oaks
ac99e82192
Fix build issues
2018-01-22 17:57:38 +10:00
Daniel Oaks
d09f085b1a
Add very initial RESUME cap and command
2018-01-22 17:57:38 +10:00
Daniel Oaks
a7fdade41d
Extend to include example translation stuff
2018-01-21 16:49:17 +10:00
Shivaram Lingamneni
f5e7ec525d
synchronize accesses to client.atime
2017-12-02 20:05:06 -05:00
Shivaram Lingamneni
52b0fb71e7
refactor ClientManager
2017-11-22 05:09:38 -05:00
Shivaram Lingamneni
9b74c47b74
rename some getters
...
Rename getters in conformance with the "Effective Go" styleguide recommendation:
https://golang.org/doc/effective_go.html#Getters
2017-11-03 02:36:55 -04:00
Shivaram Lingamneni
94cf438f51
remove channelJoinPartMutex
2017-10-30 05:21:47 -04:00
Daniel Oaks
384e6e1720
client: Fix crash from not having right line lengths computed
2017-10-29 05:04:32 +00:00
Daniel Oaks
c6b6a25906
Merge remote-tracking branch 'slingmann/recovery'
2017-10-29 04:37:57 +00:00
Shivaram Lingamneni
6130e48a67
always log the panic trace
2017-10-26 05:15:55 -04:00
Shivaram Lingamneni
7b58bf76ef
make error recovery configurable
2017-10-26 04:19:01 -04:00
Shivaram Lingamneni
80968d000f
log panic traces via the usual logging mechanism
2017-10-25 13:22:02 -04:00
Shivaram Lingamneni
054f57e215
recover from client-caused panics
2017-10-23 19:08:32 -04:00
Shivaram Lingamneni
fa83ccd82b
refactor synchronization for Channel
2017-10-22 19:50:16 -04:00
Shivaram Lingamneni
c026cc5ab6
review fixes
...
* move constant definitions
* always give the client at least quitTimeout to respond to ping,
even if registerTimeout or quitTimeout are longer than idleTimeout
2017-10-15 22:37:36 -04:00
Daniel Oaks
8910dc59ee
Fix KLINE quit/error message and corrects comment on Client.Quit
2017-10-16 10:48:05 +10:00
Shivaram Lingamneni
e540fde816
refactor idle timeouts
2017-10-15 19:46:25 -04:00
Shivaram Lingamneni
b86fc105cd
eliminate destroyMutex
2017-10-15 19:46:25 -04:00
Shivaram Lingamneni
545e8d71db
eliminate quitMutex
2017-10-15 19:46:25 -04:00
Daniel Oaks
90bb3f79d3
Merge remote-tracking branch 'slingamn/default_tweaks'
2017-10-11 07:44:36 +10:00
Shivaram Lingamneni
d66470f1c4
review fix: rename various packages and objects
2017-10-09 17:38:06 -04:00
Shivaram Lingamneni
a2ac4eeef9
refactor limits and throttling
2017-10-09 13:24:12 -04:00
Daniel Oaks
d4a8984e63
Initial implementation of labeled-responses for WHOIS
2017-10-08 11:05:05 +10:00
Daniel Oaks
207c1074df
Split utils out to a separate subpackage
2017-10-05 23:47:43 +10:00
Daniel Oaks
4aa52956e5
Split isupport to its' own subpackage
2017-10-05 23:39:57 +10:00
Shivaram Lingamneni
3877db2391
review fixes: rename MonitorManager methods
2017-10-04 02:59:59 -04:00
Shivaram Lingamneni
26686d7e86
refactor monitor and /oper implementations
2017-10-04 01:19:27 -04:00
Shivaram Lingamneni
23a66fa502
fix various data races, including 2 introduced by #139
2017-10-02 04:42:50 -04:00
Shivaram Lingamneni
e66735619e
tweak some defaults
...
* Lower ident timeout to 1.5 seconds, as discussed in #oragono
* Enforce connection limits at the granularity of ipv4 /32's and ipv6 /64's
* Raise the limit on number of new connections to 64 every 10 minutes
(for the benefit of people behind large IPv4 NATs)
2017-10-02 00:01:29 -04:00
Daniel Oaks
275449e6cc
caps: Move most capability-handling types into the caps package
2017-09-29 17:25:58 +10:00
Daniel Oaks
cea6565b80
client: HasCapabs -> HasRoleCapabs to make it more clear exactly what this means
2017-09-29 12:11:06 +10:00
Daniel Oaks
9bfdc4fdfb
Move caps to their own package to prevent conflicts
2017-09-29 12:07:52 +10:00
Daniel Oaks
c39206ad13
Don't create new caps out of nowhere, dummy
2017-09-29 11:55:54 +10:00
Daniel Oaks
cd8b4877b6
accounts: Check for account logins correctly, fixes registration. Also fix a typo, thanks squigz!
2017-09-28 15:49:01 +10:00
Shivaram Lingamneni
1612c141d5
send the actual quit message to friends
2017-09-25 22:47:03 -04:00
Daniel Oaks
a78a8f1130
client: Only add friends if they actually have the caps we request. Friends() is entirely broken because of this
2017-09-26 08:36:34 +10:00
Daniel Oaks
e95c75f87d
monitor: Fix a crash around the MONITOR command
2017-09-25 11:29:27 +10:00
Shivaram Lingamneni
99f02ede20
restore PROXY protocol support
...
support for PROXY was removed in 43e28e2fef
. After discussion,
it's worth keeping around in case of client compatibility issues,
and until /rehash support is more mature.
2017-09-25 10:52:01 +10:00
Daniel Oaks
23a26f83fe
client: Show real IP and whether the target's using TLS in WHOIS
2017-06-23 05:15:10 +10:00
Daniel Oaks
1c0c4841a1
General comments, fix misspellings and lints
2017-06-19 14:53:16 -06:00
Daniel Oaks
c9ed749538
Rename deps
2017-06-15 10:14:19 -06:00
Daniel Oaks
a8fa131244
Move to new repo
2017-06-14 12:00:53 -06:00
Daniel Oaks
309ec8191e
Add 'k' snomask for kills (including those coming from dlines and klines)
2017-06-11 10:01:39 -06:00
Daniel Oaks
3ee26041ff
Send snomask on client quits
2017-06-11 09:42:37 -06:00
Daniel Oaks
55d8eb5dce
Make 'nick' snomask look nicer
2017-06-10 17:07:44 -06:00
Daniel Oaks
53190ef131
Send a whole lot more snomasks
2017-05-28 12:43:09 -06:00
Daniel Oaks
ebb9d629d7
xline: Add ANDKILL param to kill all matching clients
2017-05-24 00:58:36 -06:00
Daniel Oaks
d847d55c06
Fix wordWrap function so it doesn't drop chars, and fix client.Notice() to automagically split very long lines.
2017-05-09 21:09:44 +10:00
Daniel Oaks
9fe7c143c8
server: Remove useless comments, make idle/quit function layouts nicer
2017-05-09 20:37:48 +10:00
Daniel Oaks
c911ff2bcd
Squash a bunch of possible races
2017-04-18 22:26:01 +10:00
Daniel Oaks
f7a4f5d956
socket: Move to a timing-out send method that reduces goroutines and ensures QUIT/ERROR are sent
2017-04-18 20:29:00 +10:00
Daniel Oaks
f665ebac16
channels: Help prevent issues when join/parting
2017-04-18 17:19:44 +10:00
Daniel Oaks
1c917a19a7
client: Ensure ERROR message is parsed when quitting
2017-04-17 23:05:47 +10:00
Daniel Oaks
22216d4d60
Fix lots of nits
2017-04-16 11:31:33 +10:00
Daniel Oaks
317a804644
Fix dates at top of source files
2017-03-27 22:15:02 +10:00
Daniel Oaks
300d02bd9c
channel: Kill a race condition that locked up the server.
...
Specifically, if you joined a channel while someone else was trying to part. the Join method would grab the lock, the Quit method would queue to grab the lock, the Join method would unlock and then try to regrab the lock, and it would get into a situation where nobody would have the lock and everyone would be waiting for it.
This caused weird oddities with clients.
2017-03-26 22:11:09 +10:00
Daniel Oaks
aad1070633
client: Unlock channel mutex earlier
2017-03-24 21:54:06 +10:00