Daniel Oaks
1324c5ff83
Allow simple way of listing DLINEs and KLINEs
2017-10-15 07:53:24 +10:00
Daniel Oaks
90bb3f79d3
Merge remote-tracking branch 'slingamn/default_tweaks'
2017-10-11 07:44:36 +10:00
Daniel Oaks
2791476f16
INVITE: Fix dumb crash (thanks for pointing this out, @josephbisch!)
2017-10-10 11:17:41 +10:00
Shivaram Lingamneni
d66470f1c4
review fix: rename various packages and objects
2017-10-09 17:38:06 -04:00
Shivaram Lingamneni
58faad90dd
add loglines for IP limits
2017-10-09 13:24:12 -04:00
Shivaram Lingamneni
ac9ac5ef19
create separate irc/connection_limiting package
2017-10-09 13:24:12 -04:00
Shivaram Lingamneni
a2ac4eeef9
refactor limits and throttling
2017-10-09 13:24:12 -04:00
Daniel Oaks
695faefd93
Allow formatting codes in the MOTD
2017-10-08 20:17:49 +10:00
Daniel Oaks
a90ee16a20
caps: Test Add, Remove and String
2017-10-08 09:26:01 +10:00
Daniel Oaks
378d55af65
Add tests to subpackages
2017-10-07 22:19:37 +10:00
Daniel Oaks
10949a434a
kline: Gofmt -s
2017-10-06 12:45:32 +10:00
Daniel Oaks
9f7e395c96
logger: Fix comments
2017-10-06 12:44:11 +10:00
Daniel Oaks
68b1dc9e72
Split passwd into its' own subpackage
2017-10-06 00:03:53 +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
Daniel Oaks
eac6a69782
Fix some notes and add some comments.
2017-10-05 23:29:34 +10:00
Daniel Oaks
797b9f0996
help: Link to https oragono.io
2017-10-05 23:09:13 +10:00
Shivaram Lingamneni
456174ed53
review fixes for raw i/o notification
2017-10-05 21:06:22 +10:00
Shivaram Lingamneni
aff1752d67
refactor logging to implement #142
2017-10-05 21:05:57 +10:00
Daniel Oaks
f7f049973f
Rip out REST API and web interface.
...
It's not really used and I'd rather not have it here unless I'm able to actively maintain it properly and build out the web interface.
I might re-add it later but for now I'd rather not have it unless anyone's actively using it.
2017-10-05 17:14:16 +10:00
Daniel Oaks
04d5d2fcc2
monitor: Fix target output when adding targets
2017-10-04 18:54:02 +10:00
Shivaram Lingamneni
d39ee2fafa
fix: RPL_MONONLINE must be server-prefixed
...
also, remove the self-notification check; clients are probably not
monitoring themselves, and it doesn't much matter if they are
2017-10-04 03:52:45 -04:00
Shivaram Lingamneni
84c1533b53
review fix: report unfolded nicks in /monitor l
when possible
2017-10-04 03:16:22 -04: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
b8d47c3e4f
channel: Server opers shouldn't override nooutside, reggedonly and moderated modes. if they want to do that sort of thing, they have SAMODE and all to be explicit about it
2017-10-01 15:18:52 +10:00
Daniel Oaks
e3a0387cf5
channel: Fix +m (moderated) and +R (registeredonly) channel modes, add note about opers overriding +m/+R
2017-10-01 15:14:32 +10:00
Daniel Oaks
b850a6c1d9
caps: Actually remove MessageIDs (accidentally left it here with the merge)
2017-09-29 17:54:17 +10:00
Daniel Oaks
b4fcb45af0
Add license stuff to the top of caps/ and sno/ files I guess
2017-09-29 17:33:29 +10:00
Daniel Oaks
275449e6cc
caps: Move most capability-handling types into the caps package
2017-09-29 17:25:58 +10:00
Shivaram Lingamneni
ae441d22d3
refactor [dk]linemanagers
...
* Synchronize map accesses
* Be more aggressive about cleaning up expired lines
* CIDR dlines did not work (nil dereference)
2017-09-29 02:07:09 -04: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
810908db7f
Add comments
2017-09-29 12:09:48 +10:00
Daniel Oaks
9bfdc4fdfb
Move caps to their own package to prevent conflicts
2017-09-29 12:07:52 +10:00
Daniel Oaks
830484feb6
AWAY: Send correct mode string (thanks for pointing out this silly bug @jwheare!)
2017-09-29 11:56:18 +10:00
Daniel Oaks
c39206ad13
Don't create new caps out of nowhere, dummy
2017-09-29 11:55:54 +10:00
Daniel Oaks
ffe7375a68
Fix proxied DLINE/throttle/etc error messages
2017-09-29 07:18:08 +10:00
Shivaram Lingamneni
a9e4ed237e
deduplicate d-line and throttle code
2017-09-29 07:05:59 +10:00
Daniel Oaks
8b1f722655
server: Fix the PROXY command
2017-09-29 07:05:22 +10:00
Daniel Oaks
3f4bf38bee
Merge branch 'rehash_refactor.4' of https://github.com/slingamn/oragono
2017-09-29 06:50:54 +10:00
Daniel Oaks
8ea5632269
Setup v0.9.2-unreleased devel ver
2017-09-29 06:50:09 +10:00
Shivaram Lingamneni
b7b24c34b4
rehash cannot modify the server name
2017-09-28 02:58:09 -04:00
Shivaram Lingamneni
3b0f1ff1cc
delete websocket support as per discussion on #139
2017-09-28 02:53:08 -04:00
Shivaram Lingamneni
e8b1870067
refactor the rehash implementation
2017-09-28 02:13:24 -04:00
Daniel Oaks
eae04e8c51
Release v0.9.1
2017-09-28 15:49:10 +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
79de443496
channel: Don't send TOPIC on entirely new channel
2017-09-26 08:01:10 +10:00
Daniel Oaks
2759d8f5d3
modes: Allow 'MODE b' (used by irssi for channel sync) (thanks @dx!)
2017-09-26 07:58:17 +10:00
Daniel Oaks
3b0d9c4db9
Send nick parameter correctly on ERR_NOSUCHNICK numerics
2017-09-26 07:52:43 +10:00
Daniel Oaks
1ccdd67a45
Setup v0.9.1-unreleased devel ver
2017-09-26 00:45:42 +10:00
Daniel Oaks
02cd620bd4
Release v0.9.0
2017-09-25 11:29:43 +10:00
Daniel Oaks
e95c75f87d
monitor: Fix a crash around the MONITOR command
2017-09-25 11:29:27 +10:00
Daniel Oaks
acec0e1690
PROXY: Check DLINEs and connection limits/throttle on new proxied connections
2017-09-25 10:52:02 +10:00
Daniel Oaks
38498b752b
PROXY: Make sure given IPs are valid and pass them through appropriately
2017-09-25 10:52:01 +10:00
Daniel Oaks
7d140c9e43
PROXY: Update some comments, disallow from registered clients
2017-09-25 10:52:01 +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
8cd016e4c0
server: Fix comments
2017-09-25 10:52:01 +10:00
Shivaram Lingamneni
0f0f2d1314
refactor listener update/destroy code
...
Don't close and reopen listeners
2017-09-11 18:40:15 -04:00
Shivaram Lingamneni
d5528f6e56
execute rehash() in its own goroutine
...
This prevents a deadlock:
1. rehash() is executing on the main goroutine
2. it's trying to stop a listener goroutine
3. the listener goroutine needs to hand off a new connection to newConns
4. but the main goroutine is blocked by rehash() so it can't receive it
2017-09-11 14:03:53 -04:00
Shivaram Lingamneni
b1376d5f71
Fix a concurrency error with Server.listeners
...
See #134 ; there was a `fatal error: concurrent map read and map write`
due to unsynchronized accesses to `Server.listeners`. Now, `listeners`
is only accessed by `NewServer` and `rehash`, so it doesn't need
synchronization.
2017-09-11 11:29:14 -04:00
Daniel Oaks
c48d869f4d
Allow multiple account registrations for testing
2017-09-11 09:16:13 +10:00
Shivaram Lingamneni
6063d30bc5
add a test for default channel mode parsing
2017-09-06 19:51:50 -04:00
Shivaram Lingamneni
333afe1062
make default channel modes configurable
2017-09-06 17:37:29 -04:00
Daniel Oaks
d052ca8a8d
accounts: Disable reg if client's already registered an account
2017-09-06 14:38:55 +10:00
Daniel Oaks
ac91a3e484
strings: Follow latest advice on PRECIS regarding string stabilizing
2017-09-06 14:38:55 +10:00
Daniel Oaks
f9ef97b204
modes: Add experimental, untested +R user mode to block messages from unregistered users
2017-09-06 14:38:54 +10:00
Shivaram Lingamneni
9a9a85cd55
fix hostmask issue
...
PTR records ending in . (e.g., `google-public-dns-b.google.com.`)
were considered invalid
2017-09-05 11:43:50 -04:00
Daniel Oaks
ffabd26653
Make sure ISUPPORT outputs are sorted and tested
2017-07-30 22:42:37 +10:00
Daniel Oaks
97cfc0b629
Print warnings to heavily encourage exposing port 6697 as a TLS port
2017-07-27 23:29:08 +10:00
Daniel Oaks
0b75351e56
Merge pull request #128 from euank/return-bad-ip-err
...
server: close connection on parse-ip failure
2017-07-26 17:19:08 +10:00
Euan Kemp
3b47f3d470
config: don't casefold tls names
...
I don't think casefolding things like `:6697` ever made sense.
Since these are configured by the ircd operator, it makes sense to
assume they'll already be in a canonical form regardless.
2017-07-25 23:28:29 -07:00
Euan Kemp
449ef4cea1
strings: disallow ':' in nicks
...
This matches the behavior of inspircd at the very least.
Previously, the comment above that section claimed ':' should be
disallowed, but the code didn't do so.
I also simplified the code a little bit and added tests.
2017-07-25 23:28:29 -07:00
Euan Kemp
2b155f9b1e
server: close connection on parse-ip failure
...
Close the client's connection if we're unable to parse their IP.
This also simplifies the check to reduce indentation by a level.
Finally, this replaces the two-var construction of the pseudo-const
messages with an inline dereference via a slice to allow constructing
them less noisily.
2017-07-25 22:19:40 -07:00
Daniel Oaks
b807f492ed
OPER: If client's already opered-up, ignore new OPER attempts
2017-07-23 22:50:50 +10:00
Euan Kemp
2e8a98a925
irc: fix timer memleak
...
This is a gotcha called out in the `time.After` docs. `time.After` will
leak the underlying channel if nothing ever receives on it.
2017-07-14 17:21:53 +10:00
Daniel Oaks
c0fbc7908d
sasl: Always send a 906 in response to AUTHENTICATE *
2017-06-30 11:06:10 +10:00
Daniel Oaks
7735ddfa03
Setup v0.8.3-unreleased devel ver
2017-06-30 11:04:24 +10:00
Daniel Oaks
376fa70244
Release v0.8.2
2017-06-30 01:14:50 +10:00
Daniel Oaks
b633db3c9d
modes: Also allow Voice
2017-06-30 01:14:38 +10:00
Daniel Oaks
6ffc96d495
modes: Let users give other users privs in channels. Silly bug.
2017-06-30 00:59:51 +10:00
Daniel Oaks
279ac928ae
Setup 0.8.2-unreleased for next release
2017-06-28 14:59:01 +10:00
Daniel Oaks
325ed3e112
Release v0.8.1
2017-06-26 15:57:38 +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
e5980beb7d
SANICK: Fix check for new user
2017-06-18 08:23:51 -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
5b3cea8b98
xline: Add snomasks for setting/removing xlines
2017-06-11 10:17:55 -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
8a6ba6f9cc
LIST: Start implementing ELIST conditions
2017-06-11 07:45:58 -06:00
Daniel Oaks
55d8eb5dce
Make 'nick' snomask look nicer
2017-06-10 17:07:44 -06:00
Daniel Oaks
34863a6320
JOIN: Disable JOIN 0 support, in line with Insp
2017-06-10 17:03:23 -06:00
Daniel Oaks
4128ff6137
server: Check for channel permissions when renaming channels
2017-06-04 20:06:11 -06:00
Daniel Oaks
0f8ab4eaec
server: Add proposed RENAME command
2017-06-04 20:01:37 -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
a271481c41
Setup 0.8.1-unreleased for next release
2017-05-16 21:08:15 -06:00
Daniel Oaks
f051b43f27
Release v0.8.0
2017-05-09 22:01:14 +10:00
Daniel Oaks
ab2ae70f13
help: Add help text for snomasks
2017-05-09 21:33:03 +10: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
fb63691c8b
commands: Timeout unregistered clients
2017-05-09 20:36:45 +10:00
Daniel Oaks
ff82872934
reg: Rename commands to match
2017-05-08 09:28:30 +10:00
Daniel Oaks
fd793d6adb
Add very initial snomasks
2017-05-08 09:15:16 +10:00
Daniel Oaks
1afd3b8f78
server: Change localconnect msg to include username/realname
2017-05-01 19:03:04 +10:00
Daniel Oaks
f5ecf70ecf
logger: Flush file writes to ensure they get written out
2017-05-01 19:02:49 +10:00
Daniel Oaks
7ac96114c3
log: Allow logging to stdout
2017-05-01 18:51:37 +10:00
Daniel Oaks
51425b7764
help: Generate index of help topics
2017-04-30 13:53:49 +10:00
Daniel Oaks
5c518531be
Integrate StackImpact profiling
2017-04-30 12:35:07 +10:00
Daniel Oaks
2bd4d03ecc
Prevent copying locks because that's silly
2017-04-30 11:12:25 +10:00
Daniel Oaks
4254672133
socket: Fix bad mutex unlock
2017-04-19 08:50:57 +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
067f982da4
socket: Remove old comment
2017-04-18 17:19:55 +10:00
Daniel Oaks
f665ebac16
channels: Help prevent issues when join/parting
2017-04-18 17:19:44 +10:00
Daniel Oaks
4a66771c39
socket: Attempt to close sockets better
2017-04-18 16:43:24 +10:00
Daniel Oaks
1c917a19a7
client: Ensure ERROR message is parsed when quitting
2017-04-17 23:05:47 +10:00
Daniel Oaks
9cfa92ede8
modes: Avoid unnecessarily sending unknown mode numerics
2017-04-17 23:05:24 +10:00
Daniel Oaks
86957d4392
socket: Fix quitting
2017-04-17 22:35:25 +10:00
Daniel Oaks
7aaa30d399
Setup 0.7.3-unreleased for next release
2017-04-17 21:59:53 +10:00
Daniel Oaks
9264ffc857
Release v0.7.2
2017-04-17 21:16:22 +10:00
Daniel Oaks
121269661b
socket: Make closing work a little better
2017-04-17 21:03:07 +10:00
Daniel Oaks
e0035dfa04
types: Make ChannelNameMap use mutexes to fix crash
2017-04-17 21:03:02 +10:00
Daniel Oaks
ff3a864aa3
accountreg: Fix crash
2017-04-17 21:00:49 +10:00
Daniel Oaks
9a94121281
JOIN: Fix a dumb bug. Really dumb bug.
2017-04-17 20:28:01 +10:00
Daniel Oaks
88b5dd5621
Fix misspelling
2017-04-16 11:36:33 +10:00
Daniel Oaks
166cddecb1
Fix nits
2017-04-16 11:35:44 +10:00
Daniel Oaks
22216d4d60
Fix lots of nits
2017-04-16 11:31:33 +10:00
Daniel Oaks
8ba0bf347d
Setup 0.7.2-unreleased for next release
2017-04-16 10:59:31 +10:00
Daniel Oaks
511da5b434
Release v0.7.1
2017-03-28 17:34:52 +10:00
Daniel Oaks
0046025d60
Enable chanmode +r, fix bug with registering channels
2017-03-28 17:32:03 +10:00
Daniel Oaks
317a804644
Fix dates at top of source files
2017-03-27 22:15:02 +10:00
Daniel Oaks
99fd9af432
Setup 0.8.0-unreleased for next release
2017-03-27 22:07:11 +10:00
Daniel Oaks
1741a0fad1
Release v0.7.0
2017-03-27 14:53:50 +10:00
Daniel Oaks
013635a827
channel: Give founder mode if channel already exists and founder joins
2017-03-27 14:52:34 +10:00
Daniel Oaks
451c40f170
WHO: Fix a small hang
2017-03-27 14:30:00 +10:00
Daniel Oaks
6aebd4aad9
channel: Add comments, fix a small bug with moderated mode
2017-03-27 14:29:51 +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
cec3416eae
modes: Kill a crash
2017-03-26 22:09:46 +10:00
Daniel Oaks
a8e13b062b
logger: Make safer to avoid file write races
2017-03-26 21:41:52 +10:00
Daniel Oaks
861b65eb39
channels: Automagically save channel bans/excepts/invites
2017-03-26 20:37:13 +10:00
Daniel Oaks
1798572015
Add comments
2017-03-25 09:19:13 +10:00
Daniel Oaks
b4b120a83e
nickserv: Point towards /HELP REG since not implemented yet
2017-03-24 21:59:13 +10:00
Daniel Oaks
91fab3ba55
socket: Better deal with chanfloods
2017-03-24 21:54:22 +10:00
Daniel Oaks
aad1070633
client: Unlock channel mutex earlier
2017-03-24 21:54:06 +10:00