Daniel Oaks
ee3853f845
restapi: Initial commit
2016-11-06 12:49:39 +10:00
Daniel Oaks
c3174bb648
Various crash fixes, and little cleanups for safety
2016-11-04 21:38:47 +10:00
Daniel Oaks
8c797d0f76
Initial DLINE changes
2016-11-04 12:42:58 +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
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
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
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
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
6cd71e1b9e
Add REHASH command
2016-10-19 21:38:31 +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
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
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
da6f350563
modes: Remove ReOp channel mode (unused)
2016-10-14 20:55:26 +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
5e72409695
Move from ascii(ish) unicode encoding to prelim rfc7700 using functions instead
2016-10-11 23:51:46 +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
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
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
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
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
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
e33a810522
capability: Add extended-join and userhost-in-names
2016-08-14 11:59:33 +10:00
Daniel Oaks
842f0d05ab
strings: Only allow # channels, since we only implement those
2016-08-13 20:53:56 +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
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
b820559050
modes: Add TLS umode (+Z)
2016-06-29 01:09:07 +10:00
Daniel Oaks
41473bb444
Fix PASS handling
2016-06-28 16:06:17 +10:00
Daniel Oaks
34a099b61a
Fix PING and PONG
2016-06-22 22:04:13 +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
7fcc6bdbc4
channels: Fix
2016-06-19 14:55:24 +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
2f08401a0f
Attempt to add mostly-correct license info at the top of each file... track this stuff a bit better
2016-06-15 21:50:56 +10:00
Daniel Oaks
3a9a643d30
server: Let websocket listeners also be TLS
2016-04-28 20:41:26 +10:00
Daniel Oaks
2fb6acb92a
restructure SSL/TLS a bit, name config items better
2016-04-28 20:12:23 +10:00
Daniel Oaks
cd7d30a997
Set default channel modes to +nt
2016-04-21 19:29:50 +10:00
Daniel Oaks
8885f14f19
PROXY: Restrict to specified addresses/hostnames
2016-04-21 16:53:55 +10:00
Daniel Oaks
fb345a2dd4
user: Don't parse the second and third params anymore
2016-04-15 18:45:05 +10:00
Daniel Oaks
9acdeedec6
commands: Simplify and unify minimum required number of args handling
2016-04-15 15:57:08 +10:00
Daniel Oaks
8b79662f1a
modes: use secret instead of private, it's the standard these days. fix secret channel hiding in whois
2016-04-14 22:33:38 +10:00
Daniel Oaks
0ccabead31
cap: Properly suspend registration for CAP negotiation
2016-04-14 11:25:23 +10:00
Daniel Oaks
a241ea7dd6
version: Return RPL_ISUPPORT tokens, as standard
2016-04-14 09:55:22 +10:00
Daniel Oaks
3972fc49ed
privileges: Add founder/admin/halfop (qah), remove owner (O)
...
channel owner is from 2812 and unused in the real world
2016-04-14 09:36:02 +10:00
Daniel Oaks
c3288823af
Add native SSL/TLS listener support from @enmand for our new config
2016-04-13 20:45:09 +10:00
Daniel Oaks
8dc2732137
server: Store MOTD in memory rather than reading it from disk every time. Fixes #3
2016-04-13 15:49:30 +10:00
Daniel Oaks
56641ff650
isupport: Don't advertise stuff that's still TODO
2016-04-13 08:59:00 +10:00
Daniel Oaks
78928c0322
isupport: STATUSMSG isn't supported, don't advertise it
2016-04-13 08:58:52 +10:00
Daniel Oaks
a013205fd1
Support network name
2016-04-13 08:58:41 +10:00
Daniel Oaks
c88cd328f8
Very initial RPL_ISUPPORT numeric support
2016-04-13 08:57:34 +10:00
Daniel Oaks
c705bdaac5
irc/server: MOTD does not need to be clipped at 80 chars, has not been standard for a long while now
2016-04-13 08:46:14 +10:00
Edmund Huber
fce54343ea
touchups to irc/websocket.go per review comments
2015-06-06 16:11:06 -07:00
Edmund Huber
62302ec92e
fail WebSockets with subprotocols here, because gorilla leaves it up for us to deal with subprotocols
2015-06-06 15:19:07 -07:00
Niels Freier
6a69a65860
WebSocket layer to be able to connect "web" client
...
Currently working with a mini irc js implem, the flow:
* PASS
* NICK
* USER
* JOIN
* PRIVMSG
works and the ping/pong timeout keep the communication open.
2015-05-04 09:47:26 +04:00
Jeremy Latt
6c10add399
improve performance by using less goroutines
...
- get rid of command channel in Client
- get rid of loginTimer; use other timers instead
- move debugging code to debug.go
2014-04-15 12:10:02 -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
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
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
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
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
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
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
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
9aeb813cf5
restrict nicknames to proper character set
2014-02-26 13:42:29 -08:00
Jeremy Latt
4df8ec12f6
allow nick changing
2014-02-26 12:24:52 -08:00
Jeremy Latt
66f9b42125
avoid duplicate mode changes
2014-02-25 22:19:21 -08:00
Jeremy Latt
9dc229b98f
skip nick change if there is no difference
2014-02-25 20:47:59 -08:00
Jeremy Latt
45bb0d05e7
normalize all unicode input from the client
2014-02-25 20:22:07 -08:00
Jeremy Latt
b30e247e77
properly persist channels
2014-02-25 15:57:35 -08:00
Jeremy Latt
02abeeb164
persistent channels persisted to a sqlite db
2014-02-25 11:11:34 -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
0bf968e19e
move command parsing and hostname lookups into the socket routine
2014-02-23 17:04:24 -08:00
Jeremy Latt
3b56b5bf42
expose various go internals as a DEBUG command
2014-02-23 10:04:31 -08:00