35 Commits

Author SHA1 Message Date
contact
18c962e5c0 Add SQLite database
Closes: https://todo.sr.ht/~emersion/jounce/9

git-svn-id: file:///srv/svn/repo/suika/trunk@77 f0ae65fe-ee39-954e-97ec-027ff2717ef4
2020-03-04 17:22:58 +00:00
contact
1d0f4c3577 Remove unused user.getChannel, move getUpstream to user
git-svn-id: file:///srv/svn/repo/suika/trunk@75 f0ae65fe-ee39-954e-97ec-027ff2717ef4
2020-03-04 15:00:19 +00:00
contact
47ec2ff976 Allow clients to specify an upstream name in their username
git-svn-id: file:///srv/svn/repo/suika/trunk@73 f0ae65fe-ee39-954e-97ec-027ff2717ef4
2020-03-04 14:44:13 +00:00
contact
0b985cd81c Retry connecting to upstream servers
Rate-limit retries in case connecting immediately fails.

git-svn-id: file:///srv/svn/repo/suika/trunk@71 f0ae65fe-ee39-954e-97ec-027ff2717ef4
2020-03-03 14:26:19 +00:00
contact
9edf0cde7e Enable TCP keep-alive on all connections
git-svn-id: file:///srv/svn/repo/suika/trunk@67 f0ae65fe-ee39-954e-97ec-027ff2717ef4
2020-02-18 16:26:17 +00:00
contact
5c79834aeb Don't leave connections half-opened
git-svn-id: file:///srv/svn/repo/suika/trunk@65 f0ae65fe-ee39-954e-97ec-027ff2717ef4
2020-02-18 15:54:06 +00:00
contact
d9e356a580 Add a -debug flag
git-svn-id: file:///srv/svn/repo/suika/trunk@64 f0ae65fe-ee39-954e-97ec-027ff2717ef4
2020-02-18 15:31:18 +00:00
contact
c326b2708f Fix issues related to Ring
- RingConsumer is now used directly in the goroutine responsible for
  writing downstream messages. This allows the ring buffer not to be
  consumed on write error.
- RingConsumer now has a channel attached. This allows PRIVMSG messages
  to always use RingConsumer, instead of also directly pushing messages
  to all downstream connections.
- Multiple clients with the same history name are now supported.
- Ring is now protected by a mutex

git-svn-id: file:///srv/svn/repo/suika/trunk@57 f0ae65fe-ee39-954e-97ec-027ff2717ef4
2020-02-17 14:46:29 +00:00
contact
64dcb3b383 Add an in-memory ring buffer
References: https://todo.sr.ht/~emersion/jounce/2

git-svn-id: file:///srv/svn/repo/suika/trunk@50 f0ae65fe-ee39-954e-97ec-027ff2717ef4
2020-02-07 15:43:54 +00:00
contact
4c94bee6f5 Handle downstream PART messages
git-svn-id: file:///srv/svn/repo/suika/trunk@49 f0ae65fe-ee39-954e-97ec-027ff2717ef4
2020-02-07 12:36:32 +00:00
contact
41b2a11935 Handle downstream MODE messages
git-svn-id: file:///srv/svn/repo/suika/trunk@46 f0ae65fe-ee39-954e-97ec-027ff2717ef4
2020-02-07 12:08:27 +00:00
contact
6f89a1e0f5 Add upstreamConn.register
git-svn-id: file:///srv/svn/repo/suika/trunk@44 f0ae65fe-ee39-954e-97ec-027ff2717ef4
2020-02-07 11:37:44 +00:00
contact
d119170106 Skip unregistered and closed upstream connections
git-svn-id: file:///srv/svn/repo/suika/trunk@41 f0ae65fe-ee39-954e-97ec-027ff2717ef4
2020-02-07 11:02:19 +00:00
contact
17d85a3a9e Add user.forEachDownstream
git-svn-id: file:///srv/svn/repo/suika/trunk@40 f0ae65fe-ee39-954e-97ec-027ff2717ef4
2020-02-07 10:56:36 +00:00
contact
b5b0ce6144 Add user.forEachUpstream
git-svn-id: file:///srv/svn/repo/suika/trunk@39 f0ae65fe-ee39-954e-97ec-027ff2717ef4
2020-02-07 10:46:44 +00:00
contact
7afd236470 Add Server.getUser
git-svn-id: file:///srv/svn/repo/suika/trunk@38 f0ae65fe-ee39-954e-97ec-027ff2717ef4
2020-02-07 10:39:56 +00:00
contact
08c05383eb Per-user connections
git-svn-id: file:///srv/svn/repo/suika/trunk@37 f0ae65fe-ee39-954e-97ec-027ff2717ef4
2020-02-07 10:36:42 +00:00
contact
a5e5e7e39a Keep track of upstream connections in a list
git-svn-id: file:///srv/svn/repo/suika/trunk@29 f0ae65fe-ee39-954e-97ec-027ff2717ef4
2020-02-06 21:25:32 +00:00
contact
de823814a6 Remove downstream conn from list on disconnect
git-svn-id: file:///srv/svn/repo/suika/trunk@24 f0ae65fe-ee39-954e-97ec-027ff2717ef4
2020-02-06 20:30:44 +00:00
contact
fb1c5c5d02 Allow Server to have access to upstreamConn
git-svn-id: file:///srv/svn/repo/suika/trunk@23 f0ae65fe-ee39-954e-97ec-027ff2717ef4
2020-02-06 20:20:22 +00:00
contact
a272efe44d Maintain a list of downstream connections
git-svn-id: file:///srv/svn/repo/suika/trunk@22 f0ae65fe-ee39-954e-97ec-027ff2717ef4
2020-02-06 20:11:35 +00:00
contact
762ec87595 Add per-upstream logger
git-svn-id: file:///srv/svn/repo/suika/trunk@21 f0ae65fe-ee39-954e-97ec-027ff2717ef4
2020-02-06 19:26:03 +00:00
contact
1ce61f3942 Join channels on upstream servers
git-svn-id: file:///srv/svn/repo/suika/trunk@19 f0ae65fe-ee39-954e-97ec-027ff2717ef4
2020-02-06 18:22:04 +00:00
contact
d1ab250d9d Split downstram and upstream code into separate files
git-svn-id: file:///srv/svn/repo/suika/trunk@13 f0ae65fe-ee39-954e-97ec-027ff2717ef4
2020-02-06 15:18:19 +00:00
contact
7a039a8df3 Log upstream server errors
git-svn-id: file:///srv/svn/repo/suika/trunk@12 f0ae65fe-ee39-954e-97ec-027ff2717ef4
2020-02-06 15:13:29 +00:00
contact
bfc082992f Add basic upstream message handler
git-svn-id: file:///srv/svn/repo/suika/trunk@11 f0ae65fe-ee39-954e-97ec-027ff2717ef4
2020-02-06 15:11:28 +00:00
contact
2ff6caa14d Connect to upstream servers
git-svn-id: file:///srv/svn/repo/suika/trunk@10 f0ae65fe-ee39-954e-97ec-027ff2717ef4
2020-02-06 15:03:07 +00:00
contact
b7d8b2a627 Add Server.Logger
git-svn-id: file:///srv/svn/repo/suika/trunk@9 f0ae65fe-ee39-954e-97ec-027ff2717ef4
2020-02-06 14:50:46 +00:00
contact
d4d5e81f35 Rename conn to downstreamConn
git-svn-id: file:///srv/svn/repo/suika/trunk@8 f0ae65fe-ee39-954e-97ec-027ff2717ef4
2020-02-06 14:22:26 +00:00
contact
3f1b868539 Handle PING
git-svn-id: file:///srv/svn/repo/suika/trunk@7 f0ae65fe-ee39-954e-97ec-027ff2717ef4
2020-02-06 11:18:37 +00:00
contact
92a3c3a39d Send ERR_NOMOTD on registration
git-svn-id: file:///srv/svn/repo/suika/trunk@6 f0ae65fe-ee39-954e-97ec-027ff2717ef4
2020-02-06 11:08:54 +00:00
contact
15f3fba181 Add connection registration
git-svn-id: file:///srv/svn/repo/suika/trunk@5 f0ae65fe-ee39-954e-97ec-027ff2717ef4
2020-02-04 17:56:07 +00:00
contact
6a6526c501 Handle NICK and USER
git-svn-id: file:///srv/svn/repo/suika/trunk@4 f0ae65fe-ee39-954e-97ec-027ff2717ef4
2020-02-04 11:19:18 +00:00
contact
18335e2279 Send "unknown command" replies
git-svn-id: file:///srv/svn/repo/suika/trunk@3 f0ae65fe-ee39-954e-97ec-027ff2717ef4
2020-02-04 10:25:53 +00:00
contact
d7aeee7cc9 Add basic IRC listener
git-svn-id: file:///srv/svn/repo/suika/trunk@1 f0ae65fe-ee39-954e-97ec-027ff2717ef4
2020-02-04 09:46:22 +00:00