3
0
mirror of https://github.com/ergochat/ergo.git synced 2024-11-14 07:59:31 +01:00
Commit Graph

721 Commits

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