Commit Graph

734 Commits

Author SHA1 Message Date
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