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
Jeremy Latt
c5c7469cf0
good ol' fashioned refactoring
2014-02-22 13:15:31 -08:00
Jeremy Latt
1283bd35c7
encapsulate client replies in method
2014-02-22 11:40:32 -08:00
Jeremy Latt
39fb4bfb53
restrict new channels to channel regex
2014-02-21 17:19:02 -08:00
Jeremy Latt
c8701febd0
loosen restrictions on WHO replies
2014-02-21 11:09:46 -08:00
Jeremy Latt
c1edddb9a1
fix whois reply
2014-02-20 20:47:05 -08:00
Jeremy Latt
e1c4c8e8cc
don't send prefix on server-originated string coded replies
2014-02-20 20:08:32 -08:00
Jeremy Latt
23f01ff9ee
handle CAP command silently in registration too
2014-02-20 19:55:03 -08:00
Jeremy Latt
ad513da486
do hostname lookups in the client read thread
2014-02-20 13:03:33 -08:00
Jeremy Latt
97881b555d
async hostname lookups
2014-02-20 11:51:45 -08:00
Jeremy Latt
9960089226
format replies to strings instead of using a Reply struct
2014-02-19 22:20:34 -08:00
Jeremy Latt
25ebab37d3
replies shouldn't contain references to client
2014-02-19 19:30:49 -08:00
Jeremy Latt
af6a8ee6f0
remove channel buffering
2014-02-19 18:22:57 -08:00
Jeremy Latt
95f267ea4f
buffer all channels
2014-02-19 17:48:03 -08:00
Jeremy Latt
f090c616b3
reduce writes
2014-02-18 20:28:35 -08:00
Jeremy Latt
0cd6be8008
clean up nickname setting logic
2014-02-18 15:36:58 -08:00
Jeremy Latt
9e471b5b5d
solve quit/connection close race
2014-02-18 13:25:21 -08:00
Jeremy Latt
2bc1b952a0
do idle in the server goroutine instead of the timeout goroutine
2014-02-18 11:22:56 -08:00