Commit Graph

1062 Commits

Author SHA1 Message Date
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
Daniel Oaks 989fea18f9 Merge pull request #135 from slingamn/listeners_refactor_again.7
refactor create/update/destroy of listeners
2017-09-25 10:48:22 +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
Daniel Oaks c48d869f4d Allow multiple account registrations for testing 2017-09-11 09:16:13 +10:00
Daniel Oaks 8e32098f1f Quiet mkcerts messages 2017-09-11 09:15:39 +10:00
Daniel Oaks 97010461f7 Merge pull request #133 from slingamn/default_modes.2
implement #132 (configurable default channel modes)
2017-09-07 17:23:12 +10:00
Shivaram Lingamneni 6063d30bc5 add a test for default channel mode parsing 2017-09-06 19:51:50 -04:00
Shivaram Lingamneni 333afe1062 make default channel modes configurable 2017-09-06 17:37:29 -04:00
Shivaram Lingamneni a50e68af4d ignore vim swapfiles 2017-09-06 17:29:09 -04:00
Daniel Oaks 34964a9920 changelog: Document new stuff 2017-09-06 14:41:11 +10:00
Daniel Oaks d052ca8a8d accounts: Disable reg if client's already registered an account 2017-09-06 14:38:55 +10:00
Daniel Oaks eb72c38d0c changelog: Note latest changes, reword some dodgy lines 2017-09-06 14:38:55 +10:00
Daniel Oaks ac91a3e484 strings: Follow latest advice on PRECIS regarding string stabilizing 2017-09-06 14:38:55 +10: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 b975c6f182 Merge pull request #131 from slingamn/hostmask_fix
fix hostmask issue
2017-09-06 02:01:47 +10:00
Shivaram Lingamneni 9a9a85cd55 fix hostmask issue
PTR records ending in . (e.g., `google-public-dns-b.google.com.`)
were considered invalid
2017-09-05 11:43:50 -04:00
Daniel Oaks ffabd26653 Make sure ISUPPORT outputs are sorted and tested 2017-07-30 22:42:37 +10:00
Daniel Oaks 0fe3855582 changelog: Describe new changes 2017-07-27 23:58:37 +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
Daniel Oaks 0b75351e56 Merge pull request #128 from euank/return-bad-ip-err
server: close connection on parse-ip failure
2017-07-26 17:19:08 +10:00
Daniel Oaks c7cf79648e Merge pull request #129 from euank/disallow-colon-nick
strings: disallow ':' in nicks
2017-07-26 17:17:41 +10:00
Euan Kemp 3b47f3d470 config: don't casefold tls names
I don't think casefolding things like `:6697` ever made sense.
Since these are configured by the ircd operator, it makes sense to
assume they'll already be in a canonical form regardless.
2017-07-25 23:28:29 -07:00
Euan Kemp 449ef4cea1 strings: disallow ':' in nicks
This matches the behavior of inspircd at the very least.

Previously, the comment above that section claimed ':' should be
disallowed, but the code didn't do so.

I also simplified the code a little bit and added tests.
2017-07-25 23:28:29 -07: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 9bb0062dbc readme: Add build status 2017-07-26 11:39:50 +10:00
Daniel Oaks 470fc2a469 travis: Also run Go tests where they exist, when running through Travis 2017-07-26 08:04:23 +10:00
Daniel Oaks 73703be181 Merge pull request #126 from enckse/master
simple travisci definition
2017-07-26 07:34:15 +10:00
Sean Enck 68c23102d8
dependency retrieval make rule 2017-07-25 17:01:09 -04:00
Sean Enck 89053fdd15
change location of svg 2017-07-25 16:55:22 -04:00
Sean Enck 28562b0f85
travis basic settings 2017-07-25 16:54:34 -04: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 cc15ec9d2d vendor: Updated submodules 2017-07-14 17:43:29 +10:00
Euan Kemp 2e8a98a925 irc: fix timer memleak
This is a gotcha called out in the `time.After` docs. `time.After` will
leak the underlying channel if nothing ever receives on it.
2017-07-14 17:21:53 +10:00
Daniel Oaks b003cd6287 make: Fix build dirs 2017-07-14 17:21:49 +10:00
Euan Kemp 2f3838d95a make: properly specify targets as phony
None of them are referring to actual files
2017-07-13 23:12:36 -07:00
Euan Kemp e6b6ab2b11 make: remove extraneous slash
The variables were often referenced with a trailing slash, and having
`//` works, but is sloppy.
2017-07-13 23:10:58 -07:00
Daniel Oaks ba8c708318 info: Go over rehashing and the REST API 2017-07-02 08:17:34 +10:00
Daniel Oaks 285059a1bf info: Add S2S plans/info/etc 2017-07-02 07:55:02 +10:00
Daniel Oaks 475570d57f docs: Add a very basic INFO document. 2017-07-02 07:38:33 +10:00
Daniel Oaks 184438b99a readme: Explain new stable branch and go over building more completely 2017-07-01 22:43:15 +10:00
Daniel Oaks 3db81be7e3 startup: Add warning about running unreleased versions 2017-07-01 07:07:48 +10:00
Daniel Oaks c0fbc7908d sasl: Always send a 906 in response to AUTHENTICATE * 2017-06-30 11:06:10 +10:00
Daniel Oaks 7735ddfa03 Setup v0.8.3-unreleased devel ver 2017-06-30 11:04:24 +10:00
Daniel Oaks 376fa70244 Release v0.8.2 2017-06-30 01:14:50 +10:00
Daniel Oaks b633db3c9d modes: Also allow Voice 2017-06-30 01:14:38 +10:00
Daniel Oaks a833399d35 vendor: Updated submodules 2017-06-30 01:02:18 +10:00
Daniel Oaks 6ffc96d495 modes: Let users give other users privs in channels. Silly bug. 2017-06-30 00:59:51 +10:00