Commit Graph

296 Commits

Author SHA1 Message Date
Jeremy Latt 2e212e3692 Merge pull request #35 from jlatt/fix-goroutine-leak
fix two bugs
2014-03-28 14:41:00 -07:00
Jeremy Latt 2d2e63a1b7 Merge pull request #33 from jlatt/async-write-flush
async all write buffer flushes
2014-03-28 14:34:37 -07:00
Jeremy Latt b0bb0faadc remove unnecessary String()s; rename parse functions 2014-03-28 14:33:31 -07:00
Jeremy Latt 21a86c3216 fix gcstats debugging command 2014-03-28 13:03:06 -07:00
Jeremy Latt f32df20a83 get rid of useless assignment 2014-03-28 12:11:01 -07:00
Jeremy Latt 63a46498ce reuse replies where possible 2014-03-27 19:04:34 -07:00
Jeremy Latt 3b12dec207 cleanup 2014-03-27 18:58:12 -07:00
Jeremy Latt 2dc69c7e3d use a Scanner instead of ReadString 2014-03-27 18:53:01 -07:00
Jeremy Latt 5f268e4847 async all write buffer flushes 2014-03-27 18:34:31 -07:00
Jeremy Latt d696f2313e stop leaking client goroutines; closes #34 2014-03-27 16:49:22 -07:00
Jeremy Latt c2e3bbe494 fix whois; closes #32 2014-03-27 16:48:13 -07:00
Edmund Huber 2272aae213 spelling and gofmt 2014-03-23 06:50:07 +01:00
Edmund Huber 34b01b115e add a type for CTCP-encoded strings, and NOTICEs for error cases 2014-03-23 06:47:21 +01:00
Edmund Huber 6267b6a40c clean up /theater so that it doesn't need a bunch of pointers and that it reuses channel-scoped-user-modes machinery 2014-03-22 22:25:24 +01:00
Jeremy Latt bffad06a26 v1.4 2014-03-21 23:25:19 -07:00
Edmund Huber d5bdc78d55 adding theater-mode, fixes #15 2014-03-20 05:05:18 +01:00
Jeremy Latt 8c44bb9ff3 ONICK command to allow operators to change users' nicks 2014-03-17 12:56:35 -07:00
Jeremy Latt abf00e22ec LIKE quoting should convert to string for SQL 2014-03-17 12:56:12 -07:00
Jeremy Latt 874f3628c9 fix another Name => string conversion 2014-03-15 19:18:57 -07:00
Jeremy Latt 7a9f1d750b explain why CheckPassword happens in client thread 2014-03-15 15:12:29 -07:00
Jeremy Latt 7db4347419 bind to listening sockets before asyncing 2014-03-13 17:19:39 -07:00
Jeremy Latt d85e6681d9 move modes code to its own file; fix SQL (un)marshalling 2014-03-13 13:22:38 -07:00
Jeremy Latt 39b7c2a915 Merge remote-tracking branch 'origin/master' into cleanup
Conflicts:
	irc/client.go
	irc/commands.go
	irc/constants.go
	irc/reply.go
	irc/server.go
	irc/types.go
2014-03-13 12:38:44 -07:00
Jeremy Latt 2006aff9f7 break up types.go
- remove old interfaces, move to relevant files
- remove Phase in favor of a boolean flag
2014-03-12 17:52:25 -07:00
Jeremy Latt 0126edc7af move capability handling code to a single file 2014-03-12 17:38:11 -07:00
Jeremy Latt e15f47c766 move to channel-based logging 2014-03-12 17:17:26 -07:00
Jeremy Latt 77d053ccac get rid of editableCommand 2014-03-12 17:10:48 -07:00
Jeremy Latt d1a299792e don't buffer channels (except signal channel) 2014-03-12 16:58:11 -07:00
Jeremy Latt 4268c4a936 don't set CapNegotiating for blind CAP REQ 2014-03-12 16:57:15 -07:00
Jeremy Latt 96a108f8da mark unicode normalization with type 2014-03-12 16:45:22 -07:00
Jeremy Latt 97886dd00f relax regex restrictions for nicknames 2014-03-08 20:03:36 -08:00
Jeremy Latt f1b610e1c1 v1.3 2014-03-08 19:24:55 -08:00
Jeremy Latt 465313c9ac Merge remote-tracking branch 'origin/master' into user-mask
Conflicts:
	irc/types.go
2014-03-08 19:23:10 -08:00
Jeremy Latt 81df7b4a5c comments and improvements for client set 2014-03-08 19:22:04 -08:00
Jeremy Latt 33df043961 fix CAP messages 2014-03-08 14:00:13 -08:00
Jeremy Latt cf76d2bd77 persist and load channel mask lists 2014-03-07 18:14:39 -08:00
Jeremy Latt 04c30c8c9b channel invite mode/list 2014-03-07 17:36:20 -08:00
Jeremy Latt cd2042dfea Merge remote-tracking branch 'origin/master' into user-mask 2014-03-07 17:10:14 -08:00
Jeremy Latt d4093e7f8b mask lists (ban, except, invite) 2014-03-07 17:09:49 -08:00
Jeremy Latt f56db354ee fix client auth for no password
All clients are authorized if the server lacks a password.
2014-03-06 20:10:02 -08:00
Jeremy Latt 5d46e7d7fa Merge remote-tracking branch 'origin/master' into user-mask
Conflicts:
	irc/reply.go
	irc/server.go
	irc/types.go
2014-03-06 17:44:37 -08:00
Jeremy Latt 4bcd42ff34 Merge pull request #8 from jlatt/cap-protocol
basic capability negotiation
2014-03-06 17:39:12 -08:00
Jeremy Latt 12ae89ca14 minor cleanup/refactoring 2014-03-06 17:07:23 -08:00
Jeremy Latt adde42a1bf update ClientLookupSet when username changes 2014-03-06 16:53:15 -08:00
Jeremy Latt 76852b0370 implement WHOWAS with a shared ringbuffer 2014-03-06 13:55:40 -08:00
Jeremy Latt 41a6027d4e move ClientLookupSet to its own file 2014-03-06 13:10:54 -08:00
Jeremy Latt b2055595e1 WHOWAS command 2014-03-06 12:14:21 -08:00
Jeremy Latt 69cdad45ac partially-working sqlite-based usermasks 2014-03-06 11:56:32 -08:00
Jeremy Latt 832a5e1e19 allow empty server password 2014-03-06 11:00:48 -08:00
Jeremy Latt d54f530d13 Merge remote-tracking branch 'origin/master' into cap-protocol
Conflicts:
	irc/server.go
2014-03-06 10:34:50 -08:00
Jeremy Latt 5c6f8ff92a improve logging 2014-03-05 23:07:55 -08:00
Jeremy Latt fa5b1e6cf7 Merge pull request #9 from jlatt/gcfg
switch from JSON to gcfg config files
2014-03-05 23:02:22 -08:00
Jeremy Latt 04bb79a610 fix invite message to clients 2014-03-05 22:55:22 -08:00
Jeremy Latt d6688a3047 allow | in nicks 2014-03-02 13:10:47 -08:00
Jeremy Latt 0874692aa8 send proper replies for cap protocol 2014-03-02 12:54:48 -08:00
Jeremy Latt 92e7a7961f notify on more signals 2014-03-02 11:51:29 -08:00
Jeremy Latt fa165a9d74 Merge remote-tracking branch 'origin/master' into gcfg
Conflicts:
	ergonomadic.go
	irc/config.go
	irc/server.go
2014-03-02 11:42:43 -08:00
Jeremy Latt 2340464265 Merge pull request #10 from jlatt/cleanup
cleanup
2014-03-02 11:37:06 -08:00
Jeremy Latt 6aa6f0aeaa notify clients when the server shuts down 2014-03-02 11:36:00 -08:00
Jeremy Latt 8f0d2b89ee v.1.2.12 2014-03-02 11:06:02 -08:00
Edmund Huber 857907320d allow underscores in nicks 2014-03-02 19:56:21 +01:00
Jeremy Latt 22c1cfdc3e chdir instead of relativizing paths in config 2014-03-01 21:51:52 -08:00
Jeremy Latt 9aa7debbfe move password handling into a single file 2014-03-01 15:18:49 -08:00
Jeremy Latt b421971b61 move db init/open functions into a single file 2014-03-01 15:09:58 -08:00
Jeremy Latt 83d021fcb7 switch to gcfg for conf file
- add some validation for config file
- add comments explaining config
- remove TLS listener since most clients can't use it anyway
- remove unused nick generation function
2014-03-01 14:38:01 -08:00
Jeremy Latt 36602c9a3c basic capability negotiation
- multi-prefix is supported as an example
2014-02-28 19:24:38 -08:00
Jeremy Latt 542744d52a fix line parsing function 2014-02-27 21:21:47 -08:00
Jeremy Latt 8c8d371ae2 don't give operator to the first person to enter an empty persistent channel 2014-02-27 20:42:12 -08:00
Jeremy Latt f17855fce9 check channel emptiness when anyone leaves 2014-02-27 18:33:44 -08:00
Jeremy Latt e33a65ec72 fix channel persistence 2014-02-26 21:52:17 -08:00
Jeremy Latt 04f0b2c48d trim trailing space from commands 2014-02-26 16:18:52 -08:00
Jeremy Latt 9aeb813cf5 restrict nicknames to proper character set 2014-02-26 13:42:29 -08:00
Jeremy Latt 6f00f89efa relax unicode parsing rules
NFKC was previously used for all text. Now, we use NFKC for all args but
the last, which may be free text. This arg is normalized with NFC to
allow for formatting characters.
2014-02-26 13:11:29 -08:00
Jeremy Latt 4df8ec12f6 allow nick changing 2014-02-26 12:24:52 -08:00
Jeremy Latt 39911a812d handle mode command with trailing empty arguments 2014-02-26 12:08:01 -08:00
Jeremy Latt 66f9b42125 avoid duplicate mode changes 2014-02-25 22:19:21 -08:00
Jeremy Latt 0d277025c1 fix channel insert statement 2014-02-25 21:59:49 -08:00
Jeremy Latt 9dc229b98f skip nick change if there is no difference 2014-02-25 20:47:59 -08:00
Jeremy Latt e9c5e4794e version 1.2.0 2014-02-25 20:24:30 -08:00
Jeremy Latt 45bb0d05e7 normalize all unicode input from the client 2014-02-25 20:22:07 -08:00
Jeremy Latt c35d5d1b8a code review
- SEM_VER instead of SEMVER
- persist user limit along with other params
2014-02-25 16:13:47 -08:00
Jeremy Latt b30e247e77 properly persist channels 2014-02-25 15:57:35 -08:00
Jeremy Latt a30bb540e9 rewrite parseLine to be much saner about utf8 2014-02-25 13:24:32 -08:00
Jeremy Latt e409bcec99 simplify new channel insert 2014-02-25 13:12:11 -08:00
Jeremy Latt 02abeeb164 persistent channels persisted to a sqlite db 2014-02-25 11:11:34 -08:00
Jeremy Latt de5538f5d5 add persistent flag for channels 2014-02-25 10:04:59 -08:00
Jeremy Latt 0531c40481 simplify semantic version constant 2014-02-25 09:42:50 -08:00
Jeremy Latt 6882edeff7 version 1.1.0 2014-02-25 09:14:50 -08:00
Jeremy Latt 1fe73aaa9e kill command 2014-02-25 09:10:16 -08:00
Jeremy Latt 4d2d18caf1 time command 2014-02-25 07:45:40 -08:00
Jeremy Latt f0305cf01a invite command 2014-02-25 07:35:52 -08:00
Jeremy Latt d6ec1e719b add a version command for sumeet 2014-02-24 22:04:11 -08:00
Jeremy Latt f0773c4e9e increase buffer for a server channel 2014-02-24 19:00:09 -08:00
Jeremy Latt cc6f764c85 minor cleanup 2014-02-24 17:45:04 -08:00
Jeremy Latt 72726a39b8 many changes
- load config sub files relative to config file dir
- load config file by name
- expect bcrypt for passwords
- -genpasswd for generating config-file-safe passwords
- block client thread while checking passwords (PASS and OPER)
2014-02-24 09:48:46 -08:00
Jeremy Latt be089e7f5f do bcrypt in the client main routine 2014-02-23 22:21:39 -08:00
Jeremy Latt 2229645a39 refactor server command loop 2014-02-23 19:13:45 -08:00
Jeremy Latt 41e6baf9d4 get rid of a race; use pointers where possible 2014-02-23 18:05:06 -08:00
Jeremy Latt 0856a9fa81 flag socket as closed when writes fail 2014-02-23 17:16:35 -08:00
Jeremy Latt 0bf968e19e move command parsing and hostname lookups into the socket routine 2014-02-23 17:04:24 -08:00