Daniel Oaks
f7f049973f
Rip out REST API and web interface.
...
It's not really used and I'd rather not have it here unless I'm able to actively maintain it properly and build out the web interface.
I might re-add it later but for now I'd rather not have it unless anyone's actively using it.
2017-10-05 17:14:16 +10:00
Shivaram Lingamneni
26686d7e86
refactor monitor and /oper implementations
2017-10-04 01:19:27 -04:00
Shivaram Lingamneni
23a66fa502
fix various data races, including 2 introduced by #139
2017-10-02 04:42:50 -04:00
Daniel Oaks
275449e6cc
caps: Move most capability-handling types into the caps package
2017-09-29 17:25:58 +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
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
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
cd8b4877b6
accounts: Check for account logins correctly, fixes registration. Also fix a typo, thanks squigz!
2017-09-28 15:49:01 +10:00
Daniel Oaks
3b0d9c4db9
Send nick parameter correctly on ERR_NOSUCHNICK numerics
2017-09-26 07:52: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
Shivaram Lingamneni
333afe1062
make default channel modes configurable
2017-09-06 17:37:29 -04: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
Daniel Oaks
97cfc0b629
Print warnings to heavily encourage exposing port 6697 as a TLS port
2017-07-27 23:29:08 +10: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
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
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
309ec8191e
Add 'k' snomask for kills (including those coming from dlines and klines)
2017-06-11 10:01:39 -06:00
Daniel Oaks
8a6ba6f9cc
LIST: Start implementing ELIST conditions
2017-06-11 07:45:58 -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
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
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
51425b7764
help: Generate index of help topics
2017-04-30 13:53:49 +10:00
Daniel Oaks
2bd4d03ecc
Prevent copying locks because that's silly
2017-04-30 11:12:25 +10:00
Daniel Oaks
f665ebac16
channels: Help prevent issues when join/parting
2017-04-18 17:19:44 +10:00
Daniel Oaks
e0035dfa04
types: Make ChannelNameMap use mutexes to fix crash
2017-04-17 21:03:02 +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
451c40f170
WHO: Fix a small hang
2017-03-27 14:30:00 +10:00
Daniel Oaks
70b7606996
config: Allow enabling/disabling channel reg
2017-03-24 12:52:38 +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
f29a5f0e70
socket: Very initial SendQ limit
2017-03-14 08:12:39 +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
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
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
29e89b16a0
logger: Very initial working new logs
2017-03-06 15:50:23 +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
9f6c4363b7
USERHOST: Clean up a bit, support multiple nicks
2017-03-06 09:14:15 +10: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
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
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
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
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
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
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
6d6c1936cc
Handle db better, fix bug, update db schema, rest
2016-11-06 13:47:13 +10:00
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