3
0
mirror of https://github.com/ergochat/ergo.git synced 2024-11-15 08:29:31 +01:00
Commit Graph

315 Commits

Author SHA1 Message Date
Shivaram Lingamneni
f1e2bbc0e4 more permissive hostname validation
In particular, allow hostnames without periods (like on a LAN).
This shouldn't be a client compability concern since we allow
vhosts without periods.
2019-12-18 09:21:45 -05:00
Shivaram Lingamneni
3480f124cd fix #688 2019-12-17 19:37:33 -05:00
Shivaram Lingamneni
fec1139dc8
Merge pull request #673 from slingamn/proxytls.18
fix #561, take two
2019-11-23 22:09:45 -05:00
Shivaram Lingamneni
7432ef07a7 rename some variables for clarity 2019-11-20 17:43:45 -05:00
Shivaram Lingamneni
50783d5276 fix #561, take 2 2019-11-20 17:35:35 -05:00
Shivaram Lingamneni
4050b6571a fix #646
Includes a partially backwards-incompatible config change
2019-11-18 01:47:18 -05:00
Shivaram Lingamneni
c1acf3ea43 move ISUPPORT regeneration to the end of config loading 2019-09-22 17:26:50 -04:00
Shivaram Lingamneni
ca17e58b3a fix #595 2019-08-31 21:29:23 -04:00
Shivaram Lingamneni
7ed27d4a42 Fix #448, #594 2019-08-27 03:58:04 -04:00
Daniel Oaks
7a56c4e0ad
Merge pull request #591 from slingamn/history_autoresize.4
autoresizing of history buffers (#349)
2019-07-31 06:36:35 +10:00
Shivaram Lingamneni
ce651b4a90 remove obsolete consistency check
tor-listeners.listeners was checked against listen,
but listen is obsolete now, so config load would fail
on a config that used the new style `listeners` instead of
`listen` --- unless tor-listeners.listeners was empty, which
it should be under the new style, but there's no need to enforce
that
2019-07-12 15:19:43 -04:00
Shivaram Lingamneni
6e9a728354 autoresizing of history buffers (#349) 2019-07-03 21:08:37 -04:00
Shivaram Lingamneni
eee0747e5e new format for listener section 2019-06-28 14:43:53 -04:00
Shivaram Lingamneni
5d0b8390e9 refactor listener config loading 2019-06-19 22:33:15 -04:00
Shivaram Lingamneni
3b71be3bf0 fix #537 2019-05-30 05:40:18 -04:00
Shivaram Lingamneni
4b88a60ba6 clean up some old getters 2019-05-22 19:07:12 -04:00
Shivaram Lingamneni
4e13f72ca9 put an upper limit on registration messages
Fixes #505
2019-05-22 16:42:25 -04:00
Shivaram Lingamneni
8fc588375b implement user preferences system 2019-05-19 06:17:30 -04:00
Shivaram Lingamneni
18cf816396 add a manual entry for cloaks 2019-05-12 19:19:36 -04:00
Shivaram Lingamneni
11076be0ee review fixes 2019-05-12 16:26:23 -04:00
Shivaram Lingamneni
2451737f87 give cloaks their own package 2019-05-12 04:03:50 -04:00
Shivaram Lingamneni
c28e6d13f9 implement ip cloaking 2019-05-12 02:52:12 -04:00
Shivaram Lingamneni
c193def606 fix some issues found with staticcheck.io 2019-05-10 01:44:14 -04:00
Shivaram Lingamneni
ce6a3e42df load isupport directly into the config object
eliminates Server.configurableStateMutex
2019-05-10 00:32:10 -04:00
Shivaram Lingamneni
61d666a25b load motd directly into the config object 2019-05-10 00:13:48 -04:00
Shivaram Lingamneni
fbc6c84a01 add client compatibility switches 2019-05-09 15:41:08 -04:00
Shivaram Lingamneni
c2faeed4b5 initial implementation of bouncer functionality 2019-04-14 20:48:50 -04:00
Daniel Oaks
0b644065b7 Review and spec updates 2019-04-08 11:36:48 +10:00
Shivaram Lingamneni
85493ef031 upgrade message-tags to non-draft version 2019-03-07 04:31:08 -05:00
Shivaram Lingamneni
5f26023d88 Merge remote-tracking branch 'origin/master' into tor.2 2019-02-26 14:46:15 -05:00
Shivaram Lingamneni
b0f89062fa add support for tor (#369) 2019-02-25 22:09:09 -05:00
Shivaram Lingamneni
c6b9fe0218 fix #384 2019-02-19 03:12:47 -05:00
Shivaram Lingamneni
370255bec1 review fixes 2019-02-06 15:47:20 -05:00
Shivaram Lingamneni
eff2571096 limit the number of channels a client can join 2019-02-06 04:55:05 -05:00
Shivaram Lingamneni
ff7bbc4a9c track channel registrations per account
* limit the total number of registrations per account
* when an account is unregistered, unregister all its channels
2019-02-06 04:34:45 -05:00
Daniel Oaks
71a33890b8
Merge pull request #344 from slingamn/history.4
add CHATHISTORY and HISTORY implementations
2019-02-05 22:16:45 +10:00
Shivaram Lingamneni
1c23af8767 add sasl-only config option 2019-02-05 00:51:58 -05:00
Shivaram Lingamneni
51fcedc5a1 review fix 2019-02-04 12:16:28 -05:00
Shivaram Lingamneni
f6b3008f8f add CHATHISTORY and HISTORY implementations 2019-02-04 05:33:36 -05:00
Shivaram Lingamneni
057d00b2c8
Merge pull request #341 from oragono/restrict-usernames
Restrict idents as other servers do
2019-02-03 15:24:08 -05:00
Daniel Oaks
151002e232 Up identlen default to 20 2019-02-04 05:01:46 +10:00
Daniel Oaks
7eef390756 Handle translations a little better 2019-02-04 03:54:10 +10:00
Daniel Oaks
46f8ef9ed3 Be less strict with our language file loading, and handle multiple credits better 2019-02-03 20:21:07 +10:00
Daniel Oaks
cfbb4361dc Restrict ident length similar to other servers 2019-02-03 19:24:59 +10:00
Daniel Oaks
63fde2d62a Re-enable MaxLine 2019-01-12 22:17:51 +10:00
Shivaram Lingamneni
2ee89b15b3 per-user settings for nickname enforcement 2019-01-02 10:15:59 -05:00
Shivaram Lingamneni
f94f737b31 add support for login throttling 2019-01-02 10:15:59 -05:00
Shivaram Lingamneni
2c7c8fbaf9 history replay enhancements 2018-12-28 13:45:55 -05:00
Shivaram Lingamneni
a0bf548fc5 draft/resume-0.2 implementation, message history support 2018-11-26 05:23:27 -05:00
Shivaram Lingamneni
c3d197f4ff make unix domain socket permissions configurable 2018-08-28 19:28:49 -04:00
Shivaram Lingamneni
cbc2b07d35 Merge remote-tracking branch 'origin/master' into passhashing.2 2018-08-15 13:02:05 -04:00
Shivaram Lingamneni
a2c2419084 remove stackimpact 2018-08-14 23:26:43 -04:00
Shivaram Lingamneni
6eda236eab remove allow-multiple-per-connection 2018-08-14 22:50:20 -04:00
Shivaram Lingamneni
3c12fb6254 fix #283 (remove unnecessary log.Fatal)
The server should never crash during rehash, even if the config is invalid.
2018-08-06 10:08:58 -04:00
Shivaram Lingamneni
dfb0a57040 refactor the password hashing / password autoupgrade system 2018-08-06 02:26:21 -04:00
Shivaram Lingamneni
7154f14781 move handling of RecoverFromErrors into LoadConfig 2018-07-16 04:08:24 -04:00
Shivaram Lingamneni
1383190249 refactor rehash to rely more on server.config 2018-07-16 03:46:40 -04:00
Shivaram Lingamneni
74fa58dda0 Merge remote-tracking branch 'origin/master' into vhosts.4 2018-04-23 21:46:12 -04:00
Shivaram Lingamneni
cc9941cb07 review fixes, bug fixes 2018-04-23 02:38:35 -04:00
Shivaram Lingamneni
fad2475c3f modes refactor, #255 2018-04-22 19:36:15 -04:00
Shivaram Lingamneni
3db71415c9 review fixes 2018-04-20 03:59:01 -04:00
Shivaram Lingamneni
5e62cc4ebc initial vhosts implementation, #183 2018-04-19 03:00:56 -04:00
Shivaram Lingamneni
69fd3ac324 implement database auto-upgrades (#243) 2018-04-16 16:35:01 -04:00
Shivaram Lingamneni
7cfa75a59e
Merge pull request #218 from slingamn/socketwriter.1
refactor irc.Socket
2018-03-28 13:26:03 -04:00
Shivaram Lingamneni
36018174b0 default fakelag to off, add explicit cooldown config 2018-03-28 13:18:08 -04:00
Shivaram Lingamneni
1bf5e2a7c8 implement fakelag (#189) 2018-03-22 11:04:21 -04:00
Shivaram Lingamneni
d1f5c59eef fix #190 2018-03-17 23:26:07 -04:00
Shivaram Lingamneni
b0f262bc0c
Merge pull request #206 from slingamn/ghost.2
nickserv: implement GHOST, GROUP, DROP, and INFO
2018-03-14 09:42:20 -04:00
Shivaram Lingamneni
211ed6af99 add an option to expose a pprof http endpoint 2018-03-13 16:55:30 -04:00
Shivaram Lingamneni
a022befffe nickserv: implement GHOST, GROUP, DROP, and INFO 2018-03-02 17:05:47 -05:00
Shivaram Lingamneni
be86684e96 implement #199 2018-02-26 22:48:52 -05:00
Shivaram Lingamneni
988cb22692 changes to nick reservation
* Clients are now renamed, not disconnected, on reservation timeout
* Nick reservation config is now its own subsection
2018-02-18 04:46:14 -05:00
Shivaram Lingamneni
ad73d68807 refactor account registration, add nick enforcement 2018-02-11 05:30:40 -05:00
Daniel Oaks
2419f69879 Move all errors into errors.go 2018-02-03 22:03:36 +10:00
Daniel Oaks
afd6ca610c Split language into a subpackage 2018-02-03 19:46:14 +10:00
Daniel Oaks
cabb3b219d Fix some config loading issues 2018-01-28 10:52:07 +10:00
Daniel Oaks
1a5ff05493 Update translation framework 2018-01-23 16:50:19 +10:00
Daniel Oaks
ddec79f8d0 Update translation framework a touch more 2018-01-23 15:09:47 +10:00
Daniel Oaks
75dcff7183 Update translation framework, add badge to readme 2018-01-23 15:06:55 +10:00
Daniel Oaks
b2afd55285 Don't load example translation file, make example actually list all translatable strings 2018-01-22 22:16:07 +10:00
Daniel Oaks
e99f22488f Make LANGUAGE support work 2018-01-22 17:30:31 +10:00
Daniel Oaks
ba77a95c81 Very initial beginning of languages implementation 2018-01-21 16:11:16 +10:00
Shivaram Lingamneni
7b58bf76ef make error recovery configurable 2017-10-26 04:19:01 -04:00
Daniel Oaks
b0649cb5d3 WEBIRC: Allow protecting with fingerprint and parse tls flag 2017-10-16 08:47:49 +10:00
Daniel Oaks
e1868f8a47 WEBIRC: Export fields so the config loads properly 2017-10-15 18:15:18 +10:00
Daniel Oaks
34987ba53a Allow WEBIRC from specified hosts 2017-10-15 16:18:14 +10:00
Shivaram Lingamneni
d66470f1c4 review fix: rename various packages and objects 2017-10-09 17:38:06 -04:00
Shivaram Lingamneni
ac9ac5ef19 create separate irc/connection_limiting package 2017-10-09 13:24:12 -04:00
Daniel Oaks
695faefd93 Allow formatting codes in the MOTD 2017-10-08 20:17:49 +10:00
Daniel Oaks
68b1dc9e72 Split passwd into its' own subpackage 2017-10-06 00:03:53 +10:00
Daniel Oaks
207c1074df Split utils out to a separate subpackage 2017-10-05 23:47:43 +10:00
Shivaram Lingamneni
aff1752d67 refactor logging to implement #142 2017-10-05 21:05:57 +10:00
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
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
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
Shivaram Lingamneni
0f0f2d1314 refactor listener update/destroy code
Don't close and reopen listeners
2017-09-11 18:40:15 -04:00
Daniel Oaks
c48d869f4d Allow multiple account registrations for testing 2017-09-11 09:16:13 +10:00
Shivaram Lingamneni
333afe1062 make default channel modes configurable 2017-09-06 17:37:29 -04: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
Daniel Oaks
1c0c4841a1 General comments, fix misspellings and lints 2017-06-19 14:53:16 -06:00
Daniel Oaks
a8fa131244 Move to new repo 2017-06-14 12:00:53 -06:00
Daniel Oaks
fd793d6adb Add very initial snomasks 2017-05-08 09:15:16 +10:00
Daniel Oaks
7ac96114c3 log: Allow logging to stdout 2017-05-01 18:51:37 +10:00
Daniel Oaks
5c518531be Integrate StackImpact profiling 2017-04-30 12:35:07 +10:00
Daniel Oaks
22216d4d60 Fix lots of nits 2017-04-16 11:31:33 +10:00
Daniel Oaks
317a804644 Fix dates at top of source files 2017-03-27 22:15:02 +10:00
Daniel Oaks
70b7606996 config: Allow enabling/disabling channel reg 2017-03-24 12:52:38 +10:00
Daniel Oaks
f29a5f0e70 socket: Very initial SendQ limit 2017-03-14 08:12:39 +10:00
Daniel Oaks
439331cfb8 logger: Move to separate package, make *much* nicer 2017-03-10 22:02:08 +10:00
Daniel Oaks
5c38800a02 config: Advertise STS draft, fix subsequent REHASHing 2017-03-09 19:07:35 +10:00
Daniel Oaks
29e89b16a0 logger: Very initial working new logs 2017-03-06 15:50:23 +10:00
Daniel Oaks
1ddeec9225 config: Parse logger config 2017-03-06 13:31:10 +10:00
Daniel Oaks
3058161f62 config: Fix accounts registration/authentication 2017-03-06 09:43:52 +10:00
Daniel Oaks
52127edde3 config: Better explain linelen 2017-01-18 09:46:30 +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
91d59575ce Add initial automated connection throttling 2017-01-12 21:17:50 +10:00
Daniel Oaks
ee3853f845 restapi: Initial commit 2016-11-06 12:49:39 +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
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
b84dbb1a06 Support cap-notify and enabling/disabling SASL 2016-10-22 22:18:41 +10:00
Daniel Oaks
1bab81091f Add MONITOR command 2016-10-16 20:14:56 +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
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
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
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
43553390d6 WHOWAS: Make maximum number of entries configurable 2016-08-14 14:07:50 +10:00
Daniel Oaks
a5911ad14c server: Add configurable NICKLEN and CHANNELLEN 2016-08-12 22:20:32 +10:00
Daniel Oaks
19c2bb69fc Allow looking up usernames with ident on connection 2016-06-30 19:28:34 +10:00
Daniel Oaks
41473bb444 Fix PASS handling 2016-06-28 16:06:17 +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
2fb6acb92a restructure SSL/TLS a bit, name config items better 2016-04-28 20:12:23 +10:00
Daniel Oaks
8885f14f19 PROXY: Restrict to specified addresses/hostnames 2016-04-21 16:53:55 +10:00
Daniel Oaks
77bf7173ff Require that server names must be hostnames, and nicks cannot be hostnames 2016-04-21 10:48:15 +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
a013205fd1 Support network name 2016-04-13 08:58:41 +10:00
Daniel Oaks
29d80366a6 Use docopt for command-line processing and new YAML configuration format 2016-04-13 08:46:14 +10:00
Roberto Besser
404151fe9d code.google.com is shutting down, change import to use gopkg.in 2016-02-20 18:16:04 -08: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
Edmund Huber
d5bdc78d55 adding theater-mode, fixes #15 2014-03-20 05:05:18 +01: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
e15f47c766 move to channel-based logging 2014-03-12 17:17:26 -07:00
Jeremy Latt
96a108f8da mark unicode normalization with type 2014-03-12 16:45:22 -07:00
Jeremy Latt
5c6f8ff92a improve logging 2014-03-05 23:07:55 -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
22c1cfdc3e chdir instead of relativizing paths in config 2014-03-01 21:51:52 -08:00
Jeremy Latt
9aa7debbfe move password handling into a single file 2014-03-01 15:18:49 -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
02abeeb164 persistent channels persisted to a sqlite db 2014-02-25 11:11:34 -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
09887b2db3 motd command 2014-02-11 16:35:32 -08:00
Jeremy Latt
8d0adf253d configure ipv4/6 in config file 2014-02-10 13:52:28 -08:00
Jeremy Latt
db0f494604 TLS support 2014-02-09 19:41:00 -08:00
Jeremy Latt
8a90634c0a irc operators 2014-02-09 10:07:40 -08:00
Jeremy Latt
281558072a configure server with json 2014-02-09 07:53:42 -08:00