contact
2efaeb272a
Add upstreamConn.SendMessage
...
Allows us to change upstreamConn implementation details without updating
the whole codebase.
git-svn-id: file:///srv/svn/repo/suika/trunk@60 f0ae65fe-ee39-954e-97ec-027ff2717ef4
2020-02-17 15:17:31 +00:00
contact
48ac93422a
Document Ring
...
git-svn-id: file:///srv/svn/repo/suika/trunk@59 f0ae65fe-ee39-954e-97ec-027ff2717ef4
2020-02-17 15:09:35 +00:00
contact
e3ecbd8410
Forward PRIVMSG coming from downstream
...
git-svn-id: file:///srv/svn/repo/suika/trunk@58 f0ae65fe-ee39-954e-97ec-027ff2717ef4
2020-02-17 14:56: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
68300060dc
Add downstreamConn.writeMessages
...
This logic will become more complicated in upcoming commits.
git-svn-id: file:///srv/svn/repo/suika/trunk@56 f0ae65fe-ee39-954e-97ec-027ff2717ef4
2020-02-17 11:41:27 +00:00
contact
6c9fb7125b
Abbreviate {upstream,downstream}Conn with uc and dc
...
This makes it clearer than just `c` when we manipulate both kinds at the
same time.
git-svn-id: file:///srv/svn/repo/suika/trunk@55 f0ae65fe-ee39-954e-97ec-027ff2717ef4
2020-02-17 11:36:42 +00:00
contact
b6dfb5b24a
Don't write to downstreamConn.messages directly
...
Use a helper function instead. This will allow us to change
downstreamConn implementation details without having to update the whole
codebase.
git-svn-id: file:///srv/svn/repo/suika/trunk@54 f0ae65fe-ee39-954e-97ec-027ff2717ef4
2020-02-17 11:27:48 +00:00
contact
c29b1ebe54
readme: add some high-level goals, add contributing links
...
git-svn-id: file:///srv/svn/repo/suika/trunk@53 f0ae65fe-ee39-954e-97ec-027ff2717ef4
2020-02-17 11:19:27 +00:00
contact
cef8fa0e97
Switch license to AGPLv3
...
git-svn-id: file:///srv/svn/repo/suika/trunk@52 f0ae65fe-ee39-954e-97ec-027ff2717ef4
2020-02-07 16:41:51 +00:00
contact
155c149e56
Add names to consumers
...
git-svn-id: file:///srv/svn/repo/suika/trunk@51 f0ae65fe-ee39-954e-97ec-027ff2717ef4
2020-02-07 16:35:57 +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
c0c85ba8bf
Handle downstream JOIN messages
...
git-svn-id: file:///srv/svn/repo/suika/trunk@48 f0ae65fe-ee39-954e-97ec-027ff2717ef4
2020-02-07 12:31:09 +00:00
contact
e1d601ffef
Send fake RPL_CREATED message
...
git-svn-id: file:///srv/svn/repo/suika/trunk@47 f0ae65fe-ee39-954e-97ec-027ff2717ef4
2020-02-07 12:23:09 +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
a9bec2045a
Close connection from writer goroutine
...
Connections were being closed from the reader goroutine, causing issues
when sending messages and immediately closing the connection.
git-svn-id: file:///srv/svn/repo/suika/trunk@45 f0ae65fe-ee39-954e-97ec-027ff2717ef4
2020-02-07 11:42:24 +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
16dd0965fb
Add parseMessageParams helper
...
git-svn-id: file:///srv/svn/repo/suika/trunk@43 f0ae65fe-ee39-954e-97ec-027ff2717ef4
2020-02-07 11:36:02 +00:00
contact
fd5b120726
Allow changing nickname
...
git-svn-id: file:///srv/svn/repo/suika/trunk@42 f0ae65fe-ee39-954e-97ec-027ff2717ef4
2020-02-07 11:19:42 +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
7fb28b65f8
Forward PRIVMSG messages
...
git-svn-id: file:///srv/svn/repo/suika/trunk@36 f0ae65fe-ee39-954e-97ec-027ff2717ef4
2020-02-07 10:07:01 +00:00
contact
e0e69d10b7
Handle channel mode changes
...
git-svn-id: file:///srv/svn/repo/suika/trunk@35 f0ae65fe-ee39-954e-97ec-027ff2717ef4
2020-02-07 10:01:53 +00:00
contact
5c2f2af4ac
Handle third-party JOIN and PART messages
...
git-svn-id: file:///srv/svn/repo/suika/trunk@34 f0ae65fe-ee39-954e-97ec-027ff2717ef4
2020-02-07 09:54:03 +00:00
contact
f12f2137b1
Use a dedicated goroutine to write upstream messages
...
git-svn-id: file:///srv/svn/repo/suika/trunk@33 f0ae65fe-ee39-954e-97ec-027ff2717ef4
2020-02-06 21:46:46 +00:00
contact
9e545decc7
Add missing bridge.go, oops
...
git-svn-id: file:///srv/svn/repo/suika/trunk@32 f0ae65fe-ee39-954e-97ec-027ff2717ef4
2020-02-06 21:45:54 +00:00
contact
240fc1d12c
Remove downstreamConn.WriteMessage
...
It wasn't clear what this function was doing
git-svn-id: file:///srv/svn/repo/suika/trunk@31 f0ae65fe-ee39-954e-97ec-027ff2717ef4
2020-02-06 21:35:24 +00:00
contact
039588cbd1
Send channel info to downstream on registration
...
git-svn-id: file:///srv/svn/repo/suika/trunk@30 f0ae65fe-ee39-954e-97ec-027ff2717ef4
2020-02-06 21:29:24 +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
d3cf72b744
De-duplicate downstream QUIT handling
...
git-svn-id: file:///srv/svn/repo/suika/trunk@28 f0ae65fe-ee39-954e-97ec-027ff2717ef4
2020-02-06 21:22:14 +00:00
contact
4f2a8d542a
Forward channel information
...
git-svn-id: file:///srv/svn/repo/suika/trunk@27 f0ae65fe-ee39-954e-97ec-027ff2717ef4
2020-02-06 21:19:31 +00:00
contact
566d25c8fa
Write to downstream conn in dedicated goroutine
...
git-svn-id: file:///srv/svn/repo/suika/trunk@26 f0ae65fe-ee39-954e-97ec-027ff2717ef4
2020-02-06 20:52:04 +00:00
contact
8fecd67730
Mark channel info as complete on RPL_ENDOFNAMES
...
git-svn-id: file:///srv/svn/repo/suika/trunk@25 f0ae65fe-ee39-954e-97ec-027ff2717ef4
2020-02-06 20:43:22 +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
6b28c42796
Split IRC helpers to separate file
...
git-svn-id: file:///srv/svn/repo/suika/trunk@20 f0ae65fe-ee39-954e-97ec-027ff2717ef4
2020-02-06 18:24:32 +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
7a654da242
Handle NOTICE from upstream servers
...
git-svn-id: file:///srv/svn/repo/suika/trunk@18 f0ae65fe-ee39-954e-97ec-027ff2717ef4
2020-02-06 17:10:13 +00:00
contact
6f73e3bdf9
Handle MODE messages from upstream servers
...
git-svn-id: file:///srv/svn/repo/suika/trunk@17 f0ae65fe-ee39-954e-97ec-027ff2717ef4
2020-02-06 17:07:35 +00:00
contact
d360f10590
Handle upstream RPL_MYINFO messages
...
git-svn-id: file:///srv/svn/repo/suika/trunk@16 f0ae65fe-ee39-954e-97ec-027ff2717ef4
2020-02-06 16:04:49 +00:00
contact
710aba2fc2
Send standard user/channel modes to downstream connections
...
git-svn-id: file:///srv/svn/repo/suika/trunk@15 f0ae65fe-ee39-954e-97ec-027ff2717ef4
2020-02-06 15:50:47 +00:00
contact
5d8a9e5f21
Ignore some upstream messages
...
git-svn-id: file:///srv/svn/repo/suika/trunk@14 f0ae65fe-ee39-954e-97ec-027ff2717ef4
2020-02-06 15:39:09 +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