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
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
Daniel Oaks
a0c97542ee
LUSERS: minor chan cleanup to avoid counting
2017-01-17 22:52:19 +10:00
Daniel Oaks
298f4907ac
LUSERS: Minor cleanups, we don't need to worry about changelog lines for now
2017-01-17 22:49:14 +10:00
vegax87
750f0ffcb6
removed Unknown connections
2017-01-17 12:09:51 +01:00
vegax87
b4427fa782
some comments
2017-01-15 15:29:16 +01:00
vegax87
4797331962
Basic implementation of LUSERS command
2017-01-15 01:48:47 +01:00
Daniel Oaks
2de273462b
WHOIS: Hack to make silly clients work
2017-01-14 13:54:57 +10:00
Daniel Oaks
5e6ac67010
casemapping: Update name
2017-01-14 08:02:24 +10:00
Daniel Oaks
2b240faa90
strings: Fix nick bugs, use UsernameCaseMapped
2017-01-14 02:32:15 +10:00
Daniel Oaks
0a3de9a912
whois: Send channels without prefix (handled by Send())
2017-01-13 13:12:36 +10:00
vegax87
a54dcb9057
Fixed WHOIS Command
2017-01-13 02:05:58 +01:00
Daniel Oaks
91d59575ce
Add initial automated connection throttling
2017-01-12 21:17:50 +10:00
Daniel Oaks
4168eaafbb
Basic implementation of KLINEs
2017-01-11 22:38:16 +10:00
Daniel Oaks
1bc08f18b7
dline: Display correct message on bad dline
2017-01-11 22:37:58 +10:00
Daniel Oaks
4b5f4b6755
dline: Fix a bug where UNDLINE didn't remove them from datastore
2017-01-11 22:22:26 +10:00
Daniel Oaks
e9324c3250
modes: Fix some more mutexes
2017-01-11 12:26:58 +10:00
Daniel Oaks
c39bebc696
Fix various locks around joining, kicking and quitting
2017-01-11 12:16:51 +10:00
Daniel Oaks
6f7c683247
channel: RWMutex for members access
2017-01-11 02:09:08 +10:00
Daniel Oaks
efb3000717
client_lookup_set: Use RWMutex
2017-01-11 01:06:02 +10:00
Daniel Oaks
658d1656fa
accounts: Only allow verified accounts to SASL auth
2017-01-11 01:02:26 +10:00
Daniel Oaks
b612b1be60
Setup 0.6.0-unreleased for next release
2016-12-11 19:46:39 +10:00
Daniel Oaks
20fe4c7704
Release v0.5.0
2016-12-10 22:24:49 +10:00
Daniel Oaks
1cc217a9ae
sasl: Follow PLAIN spec more closely
2016-12-01 18:48:11 +10:00
Daniel Oaks
8eb8193b18
JOIN: Only give chanop, not chan founder (will save that for regged chans)
2016-12-01 18:12:51 +10:00
Daniel Oaks
f57a43f3da
KICK: Allow multiple kicks to the same channel
2016-12-01 18:10:38 +10:00
Daniel Oaks
a8eabe8e9c
client: Fix a lot of bugs around setting NICK
2016-11-29 22:33:10 +10:00
Daniel Oaks
5eafd2656e
channel: Send channel NOTICEs properly
2016-11-29 21:41:26 +10:00
Daniel Oaks
7068072292
monitor: Send with account-tag where appropriate
2016-11-29 21:40:56 +10:00
Daniel Oaks
dc605ebb01
client: Send quit messages more correctly
2016-11-29 21:06:01 +10:00
Daniel Oaks
2e2e91689a
client: Send quit message to friends correctly
2016-11-29 19:28:22 +10:00
Daniel Oaks
9314edd405
modes: Convey cmode changes to other channel members...
2016-11-29 19:16:01 +10:00
Daniel Oaks
9a9820fa88
NICK: Prevent races, remove a DoS
2016-11-16 12:02:22 +10:00
Daniel Oaks
95e36b99a2
Nick locking (entirely broken, needs to be completely redesigned)
2016-11-16 03:05:33 +10:00
Daniel Oaks
4a22311156
Merge branch 'develop' of https://github.com/DanielOaks/oragono into develop
2016-11-14 04:05:22 +00:00
Daniel Oaks
7f4bbbc587
rp: Mention mode in help text, fix comment
2016-11-14 14:03:48 +10:00
Daniel Oaks
b6f807dfdc
commands: Use ERR_NOTREGISTERED when appropriate
2016-11-08 07:07:31 +10:00
Daniel Oaks
6d6c1936cc
Handle db better, fix bug, update db schema, rest
2016-11-06 13:47:13 +10:00
Daniel Oaks
65cb932e46
restapi: Add version and rehashing
2016-11-06 12:49:39 +10:00
Daniel Oaks
539e5431b9
restapi: Add accts, restructure a little
2016-11-06 12:49:39 +10:00
Daniel Oaks
ee3853f845
restapi: Initial commit
2016-11-06 12:49:39 +10:00
Daniel Oaks
4402e3e3aa
dline: Fix language
2016-11-06 12:46:11 +10:00
Daniel Oaks
f1e2c54fca
dline: Prevent opers from banning themselves
2016-11-05 21:44:49 +10:00
Daniel Oaks
46307dedf2
dline: Load DLINEs properly and return proper info
2016-11-04 22:15:14 +10:00
Daniel Oaks
c3174bb648
Various crash fixes, and little cleanups for safety
2016-11-04 21:38:47 +10:00
Daniel Oaks
011419e755
dline: Should be working now
2016-11-04 21:15:23 +10:00
Daniel Oaks
8c797d0f76
Initial DLINE changes
2016-11-04 12:42:58 +10:00
Daniel Oaks
9a3a5fff90
Setup 0.5.0-unreleased for next release
2016-11-03 20:25:40 +10:00
Daniel Oaks
b1db65009e
Release v0.4.0
2016-11-03 17:25:10 +10:00
Daniel Oaks
9fea9cf658
modes: Restrict changing modes correctly
2016-11-03 16:59:57 +10:00
Daniel Oaks
d32ccdc572
roleplay: More fixes and checks
2016-11-02 00:42:25 +10:00
Daniel Oaks
07e4728c15
roleplay: Initial commit
2016-11-01 23:56:25 +10:00
Daniel Oaks
62a0cbc1f6
server: Move maxTargets to constant, fix bug on privmsg/notice
2016-10-27 00:51:55 +10:00
Daniel Oaks
c7fdb4656e
strings: Use inbuilt precis.Nickname encoding now
2016-10-27 00:44:36 +10:00
Daniel Oaks
f62ffe006f
server: Support more RPL_ISUPPORT stuff
2016-10-24 01:01:27 +10:00
Daniel Oaks
78028135eb
modes: Limit length of beI mode lists
2016-10-24 00:50:18 +10:00
Daniel Oaks
a404bf83d1
Add automated client connection limiting
2016-10-23 23:05:00 +10:00
Daniel Oaks
1092caa190
MONITOR: Fix display of long lists
2016-10-23 20:24:02 +10:00
Daniel Oaks
194fa9af9f
HELP: Check topics exist at startup, fix a bug
2016-10-23 18:59:13 +10:00
Daniel Oaks
a7949b6cb4
irc: Assorted golint cleanups
2016-10-23 11:48:57 +10:00
Daniel Oaks
29e811a531
oper: Support custom vhosts, and chghost
2016-10-23 11:28:31 +10:00
Daniel Oaks
8e2a8cb1b3
opers: Enforce oper class permissions
2016-10-23 11:13:08 +10:00
Daniel Oaks
f3459830e7
opers: Allow setting custom whois lines
2016-10-23 11:01:05 +10:00
Daniel Oaks
64bdedaee2
Add oper classes, for more finely-grained control
2016-10-23 10:47:11 +10:00
Daniel Oaks
a5395b5fe2
Setup 0.4.0-unreleased for next release
2016-10-23 09:42:57 +10:00
Daniel Oaks
09efb8e322
Release v0.3.0
2016-10-23 00:56:13 +10:00
Daniel Oaks
c599c8f599
modes: Fix error with cmodes being sent badly
2016-10-23 00:49:33 +10:00
Daniel Oaks
517893065b
Support STATUSMSG
2016-10-23 00:45:51 +10:00
Daniel Oaks
d9db688963
Implement echo-message capability
2016-10-22 22:29:01 +10:00
Daniel Oaks
b84dbb1a06
Support cap-notify and enabling/disabling SASL
2016-10-22 22:18:41 +10:00
Daniel Oaks
ef437348cf
server: rehash on SIGHUP
2016-10-22 21:20:08 +10:00
Daniel Oaks
1812edb2db
server: Add a mutex to kill a very small, bad race
2016-10-22 21:01:19 +10:00
Daniel Oaks
835187a736
REHASH: Update listeners, fix some bad hangs/locks
2016-10-22 20:54:04 +10:00
Daniel Oaks
149550b453
socket: Timeout TLS handshakes
2016-10-22 20:53:36 +10:00
Daniel Oaks
6cd71e1b9e
Add REHASH command
2016-10-19 21:38:31 +10:00
Daniel Oaks
6e24efe84b
Setup 0.3.0-unreleased for next release
2016-10-19 21:37:59 +10:00
Daniel Oaks
d96ca0ba25
client_lookup_set: Expose ByNick so we can loop over all clients
2016-10-19 21:35:51 +10:00
Daniel Oaks
b23707c12a
Release v0.2.0
2016-10-16 21:36:21 +10:00
Daniel Oaks
425a521d27
channel: Fix MODE and WHO
2016-10-16 21:28:59 +10:00
Daniel Oaks
41d534d6dd
server: fix sprintf call
2016-10-16 20:45:36 +10:00
Daniel Oaks
e100bd18af
HELP: correct misspelling
2016-10-16 20:44:38 +10:00
Daniel Oaks
1e956355bf
NICK: Fix small bug when casefolding
2016-10-16 20:35:50 +10:00
Daniel Oaks
1bab81091f
Add MONITOR command
2016-10-16 20:14:56 +10:00
Daniel Oaks
859d0cd607
net: Prepend IPv6 addresses with '0' if necessary
2016-10-16 14:17:29 +10:00
Daniel Oaks
a8d910e233
capability: Add invite-notify
2016-10-16 14:14:55 +10:00
Daniel Oaks
b33cbd311c
accounts: Release SASL lock after finishing auth
2016-10-16 14:01:40 +10:00
Daniel Oaks
e643c2101f
capability: Add 3.2 CAP values
2016-10-16 13:54:09 +10:00
Daniel Oaks
9162d0da61
account-tag: Fix sending on PRIVMSG/NOTICE
2016-10-16 13:27:33 +10:00
Daniel Oaks
8abffde6a0
PRIVMSG: Fix sending them
2016-10-16 12:59:36 +10:00
Daniel Oaks
2e3ffd2f23
caps: Add message-tags draft capability
2016-10-16 12:54:15 +10:00
Daniel Oaks
43e28e2fef
PROXY: Remove command, I don't think it's that useful
2016-10-15 16:29:34 +10:00
Daniel Oaks
06028e0117
modes: Remove channel.Persist mode
...
It's broken anyways, and we'll be replacing it with our custom channel ownership stuff later.
2016-10-14 21:04:04 +10:00
Daniel Oaks
7b50f64d7e
help: Add new /HELP command
2016-10-14 20:56:44 +10:00
Daniel Oaks
da6f350563
modes: Remove ReOp channel mode (unused)
2016-10-14 20:55:26 +10:00
Daniel Oaks
28b81d1a45
password_new: Rename to password_salted
2016-10-14 17:11:53 +10:00
Daniel Oaks
d226a0c6d3
nickname: Preserve case when setting NICK
2016-10-14 00:31:13 +10:00
Daniel Oaks
9ccd6037a6
strings: Make Nickname profile not actually case-sensitive
2016-10-14 00:25:37 +10:00
Daniel Oaks
4fa094cea2
accounts: Support account-notify capability
2016-10-13 18:18:00 +10:00
Daniel Oaks
0eebd6273c
AWAY: Only dispatch AWAY when cap-notify is used
2016-10-13 18:08:08 +10:00
Daniel Oaks
e807f3ca04
Fixing warnings and golint stuff
2016-10-13 17:36:44 +10:00
Daniel Oaks
09802f7181
constants: Remove unused constants.
...
We may re-add MaxReplyLength later as a variable config option, similar to mammon.
2016-10-13 16:44:36 +10:00
Daniel Oaks
3c2fae666a
net: Fix issue where some local clients would break.
...
Ran into this on Windows, when it didn't return "localhost" as a possible name for 127.0.0.1 or ::1.
2016-10-13 16:34:04 +10:00
Daniel Oaks
985f87d9d1
client: Remove silly testing Println
2016-10-13 16:21:19 +10:00
Daniel Oaks
5e72409695
Move from ascii(ish) unicode encoding to prelim rfc7700 using functions instead
2016-10-11 23:51:46 +10:00
Daniel Oaks
2bfcc553ce
client: Don't fail silently on error sending messages
2016-09-19 23:00:19 +10:00
Daniel Oaks
5d7d510348
client: Fix minor bug when doing SASL before NICK/USER
2016-09-19 22:30:29 +10:00
Daniel Oaks
32b328f53f
accounts: Fix broken long SASL auth strings
2016-09-19 21:34:17 +10:00
Daniel Oaks
88ce999b52
Rename things for next version
2016-09-18 11:48:41 +10:00
Daniel Oaks
2fdc9e5941
Release v0.1.0
2016-09-18 09:15:23 +10:00
Daniel Oaks
ae69ef5cd6
db: Remove SQLite db, hopefully looking up clients still works.Channel persistence is broken by this, will fix it later.
2016-09-17 21:23:04 +10:00
Daniel Oaks
969eed394f
KILL: Make reason optional, to match other ircds
2016-09-14 20:57:33 +10:00
Daniel Oaks
c9a82e3f6f
modes: Return right character on unknown mode char
2016-09-14 20:42:55 +10:00
Daniel Oaks
ad8df3c9a8
modes: Fix modes, re-add +l and +k
2016-09-14 19:48:47 +10:00
Daniel Oaks
0701267395
server: Add CHANMODES
2016-09-13 22:05:38 +10:00
Daniel Oaks
0087de6092
client: Add AWAYLEN
2016-09-12 12:40:09 +10:00
Daniel Oaks
bc42960552
strings: Remove CTCP stuff, unused
2016-09-12 12:33:37 +10:00
Daniel Oaks
266c534af9
theater: Remove THEATER command for now
2016-09-12 12:31:25 +10:00
Daniel Oaks
79d831bbb7
channel: Add KICKLEN and TOPICLEN
2016-09-12 12:22:50 +10:00
Daniel Oaks
3321243486
server: Add away-notify capability
2016-09-12 11:56:20 +10:00
Daniel Oaks
754b74c21c
accounts: Add account-tag capability
2016-09-12 11:25:31 +10:00
Daniel Oaks
c2aa31001a
client: Fix initial RPL_UMODEIS
2016-09-07 21:50:42 +10:00
Daniel Oaks
220bc2c609
server-time: Fix time format
2016-09-07 21:48:03 +10:00
Daniel Oaks
b5e7d8968f
accounts: Add SASL EXTERNAL handler
2016-09-07 21:32:58 +10:00
Daniel Oaks
70665850aa
accounts: Add SASL PLAIN handler
2016-09-07 20:46:01 +10:00
Daniel Oaks
1679bc9ac2
accounts: Add initial SASL handler, still need to write mechanism handlers
2016-09-06 16:31:59 +10:00
Daniel Oaks
5d6b4127ff
registration: Fix comment
2016-09-05 23:00:21 +10:00
Daniel Oaks
e3fbdebc48
registration: Hook up reg to actual accounts
2016-09-05 22:54:09 +10:00
Daniel Oaks
5269dc8776
accounts: Very roughly introduce account type
2016-09-05 22:35:13 +10:00
Daniel Oaks
739f8d71d2
server: Close db and store more properly
2016-09-05 22:14:20 +10:00
Daniel Oaks
90d5f7d6a2
registration: Very initial, very skodgy 'working' account reg
2016-09-05 19:43:32 +10:00
Daniel Oaks
4cb196f50a
server: Close store properly, on shutdown
2016-09-05 19:39:16 +10:00
Daniel Oaks
6e96a175d6
registration: Add new password manager, integrate registration and credential types
2016-09-05 18:45:42 +10:00
Daniel Oaks
68c83a95d4
WHOIS: Fixes, add certfp
2016-09-05 14:23:57 +10:00
Daniel Oaks
49034cb20e
certfp: Add certfp retrieval from client
2016-09-05 13:53:39 +10:00
Daniel Oaks
d3d88cfa0c
registration: Move REG CREATE to its' own function
2016-09-04 21:42:19 +10:00
Daniel Oaks
6e9722dee5
accounts: Rename some args, check credential type
2016-09-04 21:15:28 +10:00
Daniel Oaks
e7fced804e
accounts: Fix broken numeric, write more framework for reg
2016-09-04 20:08:53 +10:00
Daniel Oaks
e4b6c1852b
accounts: Add very initial, extremely broken account work (not including config changes)
2016-09-04 19:25:33 +10:00
Daniel Oaks
1746be2bb8
db: Add very initial buntdb datastore
2016-08-19 23:21:52 +10:00
Daniel Oaks
2ab8d4cb6e
names: Allow more characters in channel names -- from jlatt/ergonomadic#39 <3
2016-08-14 14:15:31 +10:00
Daniel Oaks
a177ca36b1
server: Add some comments and clean up a bit -- from jlatt/ergonomadic#39 <3
2016-08-14 14:13:01 +10:00
Daniel Oaks
43553390d6
WHOWAS: Make maximum number of entries configurable
2016-08-14 14:07:50 +10:00
Daniel Oaks
6e66c5c8a7
channel: Prevent duping error code in channel.Persist -- from jlatt/ergonomadic#39 <3
2016-08-14 13:34:24 +10:00
Daniel Oaks
e33a810522
capability: Add extended-join and userhost-in-names
2016-08-14 11:59:33 +10:00
Daniel Oaks
ef592d160c
capability: Add server-time
2016-08-13 22:04:21 +10:00
Daniel Oaks
e04ef1ca11
NICK: Fix setting nicks after registration
2016-08-13 20:54:15 +10:00
Daniel Oaks
842f0d05ab
strings: Only allow # channels, since we only implement those
2016-08-13 20:53:56 +10:00
Daniel Oaks
5a8e7709b2
strings: Disallow more broken nicknames
2016-08-13 20:53:23 +10:00
Daniel Oaks
1b67af7e85
strings: Also explicitly disallow . in nicknames
2016-08-12 23:38:19 +10:00
Daniel Oaks
9d853d5be7
strings: Don't allow nicks to start with dashes or 0-9
2016-08-12 23:33:44 +10:00
Daniel Oaks
5e55e35774
OPER: Fix sent MODE string
2016-08-12 22:26:45 +10:00
Daniel Oaks
a5911ad14c
server: Add configurable NICKLEN and CHANNELLEN
2016-08-12 22:20:32 +10:00
Daniel Oaks
d810033a02
client: Timeout ident more nicely
2016-07-02 19:12:00 +10:00
Daniel Oaks
199f8bd8ae
USER: disallow usernames that break the protocol
2016-06-30 23:55:44 +10:00
Daniel Oaks
19c2bb69fc
Allow looking up usernames with ident on connection
2016-06-30 19:28:34 +10:00
Daniel Oaks
1d51bb450a
constants: Make SEM_VER the actual version number conforming to Semantec Versioning, and VER the composed number
2016-06-30 17:42:24 +10:00
Daniel Oaks
748bc759cb
Cleanups reported by goreportcard
2016-06-30 15:43:27 +10:00
Daniel Oaks
5d3b185881
client: Use more accurate QUIT message for ping timeouts
2016-06-30 15:35:34 +10:00
Daniel Oaks
b820559050
modes: Add TLS umode (+Z)
2016-06-29 01:09:07 +10:00
Daniel Oaks
2874d4f897
remove empty file
2016-06-28 16:25:11 +10:00
Daniel Oaks
138f61d852
remove empty file
2016-06-28 16:24:28 +10:00
Daniel Oaks
670cf51452
modes: Migrating useful mode structs and functions directly to modes
2016-06-28 16:22:35 +10:00
Daniel Oaks
41473bb444
Fix PASS handling
2016-06-28 16:06:17 +10:00
Daniel Oaks
bded3202c2
channels: send RPL_CHANNELCREATED and RPL_TOPICTIME
2016-06-26 21:06:28 +10:00
Daniel Oaks
34a099b61a
Fix PING and PONG
2016-06-22 22:04:13 +10:00
Daniel Oaks
e19c1527a4
modes: Fix modes, re-add channel modes
2016-06-22 21:35:26 +10:00
Daniel Oaks
04442ddef1
Stuff is no longer completely broken. Just mostly.
2016-06-20 22:53:45 +10:00
Daniel Oaks
b8dc10f92d
nickname: Fix
2016-06-20 10:04:53 +10:00
Daniel Oaks
9e7a590f23
server: Fix
2016-06-19 21:59:18 +10:00
Daniel Oaks
2a519c8061
use server.name and server.nameString, name for checking and getting nice comparison, nameString for reply outputs
2016-06-19 15:43:16 +10:00
Daniel Oaks
7b13858f8c
client: Fix
2016-06-19 15:37:29 +10:00
Daniel Oaks
7fcc6bdbc4
channels: Fix
2016-06-19 14:55:24 +10:00
Daniel Oaks
c2e5386966
commands: Fix comment
2016-06-19 12:53:52 +10:00
Daniel Oaks
08225c201d
continue work reorganising and redoing EVERYTHING
2016-06-19 10:01:30 +10:00
Daniel Oaks
e83283e7fd
urgh this should not even be commited yet, this will all be squashed out
2016-06-17 22:17:42 +10:00
Daniel Oaks
dbca03e948
Split numerics into their own new file
2016-06-16 19:41:07 +10:00
Daniel Oaks
3a5314bd8e
Add basic ClientSocket work
2016-06-15 22:16:07 +10:00