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
Daniel Oaks
e34475d536
Merge branch 'master' into devel+chanserv
2017-03-24 21:25:37 +10:00
Daniel Oaks
f5eeca5339
channel: Fix not being able to Part
2017-03-24 21:24:51 +10:00
Daniel Oaks
194411716d
channel: Automagically save topic updates on registered channels
2017-03-24 13:49:29 +10:00
Daniel Oaks
70b7606996
config: Allow enabling/disabling channel reg
2017-03-24 12:52:38 +10:00
Daniel Oaks
580385392a
channel: Alert of given modes (+o/+q) on join
2017-03-24 12:38:07 +10:00
Daniel Oaks
6842d2ead6
Merge master
2017-03-24 12:29:13 +10:00
Daniel Oaks
05074e966d
modes: Continue overhauling
2017-03-24 12:23:21 +10:00
Daniel Oaks
f5536d7945
socket: Add a simple println when SendQ exceeded, config comment update
2017-03-23 12:12:39 +10:00
Daniel Oaks
c3be2d0d46
socket: Fixup sending code so we can support more connections
2017-03-23 12:07:23 +10:00
Daniel Oaks
f29a5f0e70
socket: Very initial SendQ limit
2017-03-14 08:12:39 +10:00
Daniel Oaks
de4db1c6ef
socket: Start overhaul of sockets and writing
2017-03-13 23:53:21 +10:00
Daniel Oaks
73d406ccd6
logger: Don't output control chars on log files
2017-03-13 23:52:28 +10:00
Daniel Oaks
657ed644cb
modes: Start overhauling modes
2017-03-13 08:08:18 +10:00
Daniel Oaks
b33b217fab
Add very initial ChanServ and NickServ virtual clients
...
As well, add channel registration and re-applying founder privs on the first client joining the channel. I'm going to re-architect our modes system to better acocunt for this sort of change.
2017-03-11 22:01:40 +10:00
Daniel Oaks
439331cfb8
logger: Move to separate package, make *much* nicer
2017-03-10 22:02:08 +10:00
Daniel Oaks
7bb53af44e
logger: Enable Windows support, properly lock writing to stderr
2017-03-10 12:27:05 +10:00
Daniel Oaks
531cf675c8
rehash: Add note about cap del/new order
2017-03-09 19:09:58 +10:00
Daniel Oaks
5c38800a02
config: Advertise STS draft, fix subsequent REHASHing
2017-03-09 19:07:35 +10:00
Daniel Oaks
25a373b7eb
logger: Add notice on connection when server is logging all I/O
2017-03-08 21:57:31 +10:00
Daniel Oaks
3d597a4fb3
accounts: Login to accounts properly
...
Avoids letting clients login to two accounts at once
2017-03-08 21:50:12 +10:00
Daniel Oaks
0c86c454c2
dline/kline: Allow year/month/day durations
2017-03-07 19:56:21 +10:00
Daniel Oaks
8834de5b32
rest: Expose DLINEs and KLINEs as xlines
2017-03-07 19:55:14 +10:00
Daniel Oaks
5de03f2169
logging: Reverse arrows for in and out, in ~= left, out ~= right
2017-03-06 22:12:27 +10:00
Daniel Oaks
b328a4fcd3
logging: Add userinput and output, fix up lots
2017-03-06 22:11:10 +10:00
Daniel Oaks
415a8117ee
logger: Better colours and output
2017-03-06 20:15:28 +10:00
Daniel Oaks
3d443339e5
logger: Initial colours
2017-03-06 16:28:38 +10:00
Daniel Oaks
29e89b16a0
logger: Very initial working new logs
2017-03-06 15:50:23 +10:00
Daniel Oaks
45dd882ec4
logger: Make new logger
2017-03-06 15:16:00 +10:00
Daniel Oaks
1ddeec9225
config: Parse logger config
2017-03-06 13:31:10 +10:00
Daniel Oaks
ba0f291e20
logger: Initial new logger
2017-03-06 13:05:33 +10:00
Daniel Oaks
3058161f62
config: Fix accounts registration/authentication
2017-03-06 09:43:52 +10:00
Daniel Oaks
d1cb4b9b37
server: Bunch of nits
2017-03-06 09:27:08 +10:00
Daniel Oaks
542503f63e
ws: Up the read/write buffer size
2017-03-06 09:26:54 +10:00
Daniel Oaks
9f6c4363b7
USERHOST: Clean up a bit, support multiple nicks
2017-03-06 09:14:15 +10:00
vegax87
b3a54cbb2c
Merge branch 'master' of https://github.com/DanielOaks/oragono
2017-02-09 12:23:10 +01:00
Martin Lindhe
730d283201
server-time: convert local time to UTC before using it, fixes #94
2017-02-07 01:37:32 +01:00
vegax87
ef7c94e109
removed blank lines
2017-01-23 23:49:41 +01:00
vegax87
a623d8ef1e
Solved! RPL_USERHOST must use trailing
2017-01-23 21:20:42 +01:00
vegax87
2ff48a7088
I forgot a little typo
2017-01-23 18:51:09 +01:00
vegax87
1bb9502206
I don't understand why USERHOST is working with spaces...
2017-01-23 18:49:42 +01:00
vegax87
f3c9c2b4b5
USERHOST command
2017-01-23 17:44:35 +01:00
Daniel Oaks
9e65d9b87e
Add SAMODE command, restricted by oper capab
2017-01-23 09:36:13 +10:00
Daniel Oaks
c8b5fb65e0
WHOIS: Use inbuilt functionality to force trailing, as suggested by @vegax87
2017-01-23 09:03:49 +10:00
Daniel Oaks
ccae0cf7cd
LIST: Fix list to display right member counts
2017-01-22 13:01:44 +10:00
Daniel Oaks
ea0121aeff
strings: Prevent crash
2017-01-22 12:44:05 +10:00
Daniel Oaks
c2fedfb177
client: Forego the ForceTrailing func, just automagically work it out based on the command name
2017-01-22 10:43:02 +10:00
Daniel Oaks
b257c5955e
client: Add SendForceTrailing function, to force the last param to be a trailing
2017-01-20 23:51:36 +10:00
Daniel Oaks
db919722cb
cull some old, unnecessary files
2017-01-19 16:12:10 +10:00
Daniel Oaks
4ca23f3554
Setup 0.7.0-unreleased for next release
2017-01-19 15:39:19 +10:00
Daniel Oaks
a9dfff4f30
Release v0.6.0
2017-01-19 08:12:59 +10:00
Daniel Oaks
67d65b0e3d
client: Ignore empty lines, send ERROR with no prefix
2017-01-19 07:56:33 +10:00
Daniel Oaks
52127edde3
config: Better explain linelen
2017-01-18 09:46:30 +10:00
Daniel Oaks
cbe49ff3d8
Use a better line-splitting algorithm
2017-01-18 08:05:31 +10:00
Daniel Oaks
522001d4f6
Cleanup message sending
2017-01-18 07:27:06 +10:00
Daniel Oaks
e741c1476b
Implement message-ids draft
2017-01-18 07:26:41 +10:00
Daniel Oaks
62dc3c8f66
server: Implement TAGMSG draft command
2017-01-18 07:26:05 +10:00
Daniel Oaks
f6185fa336
Get it working, using not-great and very initial splitting code
2017-01-18 07:26:05 +10:00
Daniel Oaks
92626a178d
server: Start roughly hacking in new message-tags support
2017-01-18 07:26:05 +10:00
Daniel Oaks
d2e18962e3
Very initial maxline work
2017-01-18 07:26:05 +10:00