125 Commits

Author SHA1 Message Date
contact
b360940009 Add network.upstream helper
git-svn-id: file:///srv/svn/repo/suika/trunk@136 f0ae65fe-ee39-954e-97ec-027ff2717ef4
2020-03-21 09:24:38 +00:00
contact
c6ee21b3c6 Fix typo
git-svn-id: file:///srv/svn/repo/suika/trunk@135 f0ae65fe-ee39-954e-97ec-027ff2717ef4
2020-03-21 07:44:03 +00:00
contact
63d9b733a9 Fix empty SASL challenge message
We were sending an empty string. We need to send "+" instead.

git-svn-id: file:///srv/svn/repo/suika/trunk@134 f0ae65fe-ee39-954e-97ec-027ff2717ef4
2020-03-21 07:41:14 +00:00
contact
a29ce6fc7d Avoid sending JOIN twice for the same channel
git-svn-id: file:///srv/svn/repo/suika/trunk@132 f0ae65fe-ee39-954e-97ec-027ff2717ef4
2020-03-20 21:53:05 +00:00
contact
1577d3620c Move upstreamConn.history to network
git-svn-id: file:///srv/svn/repo/suika/trunk@131 f0ae65fe-ee39-954e-97ec-027ff2717ef4
2020-03-20 21:48:17 +00:00
contact
4389f5de5b Fix deadlocks in single-upstream mode
git-svn-id: file:///srv/svn/repo/suika/trunk@130 f0ae65fe-ee39-954e-97ec-027ff2717ef4
2020-03-20 09:42:17 +00:00
delthas
577365e189 Fix MODE downstream support
- Fix replies without client as first argument
- Replace wrong prefix check with a proper entity type check

git-svn-id: file:///srv/svn/repo/suika/trunk@129 f0ae65fe-ee39-954e-97ec-027ff2717ef4
2020-03-20 09:11:27 +00:00
delthas
94d76ebfb4 Add WHOIS support
git-svn-id: file:///srv/svn/repo/suika/trunk@128 f0ae65fe-ee39-954e-97ec-027ff2717ef4
2020-03-20 09:11:27 +00:00
delthas
522f2fe8a5 Add WHO support
git-svn-id: file:///srv/svn/repo/suika/trunk@127 f0ae65fe-ee39-954e-97ec-027ff2717ef4
2020-03-19 23:29:03 +00:00
contact
b7f48f8766 Remove some IRCv3 constants
go-irc v3.1.2 adds some missing IRCv3 constants.

git-svn-id: file:///srv/svn/repo/suika/trunk@125 f0ae65fe-ee39-954e-97ec-027ff2717ef4
2020-03-19 13:51:45 +00:00
contact
2030b6aefd Fix history name
dc.username contains the raw account username, not the username supplied
by the client.

git-svn-id: file:///srv/svn/repo/suika/trunk@124 f0ae65fe-ee39-954e-97ec-027ff2717ef4
2020-03-19 13:44:49 +00:00
delthas
c4fc09cea0 Add create-network bouncer service command
git-svn-id: file:///srv/svn/repo/suika/trunk@120 f0ae65fe-ee39-954e-97ec-027ff2717ef4
2020-03-19 00:14:44 +00:00
delthas
cbb0e4e8fa Add suffixing for multi-upstream connections
git-svn-id: file:///srv/svn/repo/suika/trunk@119 f0ae65fe-ee39-954e-97ec-027ff2717ef4
2020-03-18 23:06:48 +00:00
contact
0504ff78cf Add basic infrastructure for bouncer service
git-svn-id: file:///srv/svn/repo/suika/trunk@117 f0ae65fe-ee39-954e-97ec-027ff2717ef4
2020-03-18 11:23:08 +00:00
contact
57eaf243fa Fix typo
git-svn-id: file:///srv/svn/repo/suika/trunk@114 f0ae65fe-ee39-954e-97ec-027ff2717ef4
2020-03-17 15:17:39 +00:00
contact
be09463daa Fix echo PRIVMSG messages
git-svn-id: file:///srv/svn/repo/suika/trunk@113 f0ae65fe-ee39-954e-97ec-027ff2717ef4
2020-03-17 15:15:54 +00:00
contact
3edc848651 Add downstream SASL support
git-svn-id: file:///srv/svn/repo/suika/trunk@112 f0ae65fe-ee39-954e-97ec-027ff2717ef4
2020-03-16 15:16:27 +00:00
contact
164a26f6b8 Allow CAP command when registered
git-svn-id: file:///srv/svn/repo/suika/trunk@111 f0ae65fe-ee39-954e-97ec-027ff2717ef4
2020-03-16 14:12:46 +00:00
contact
6d755b782f Log downstream messages before registration
git-svn-id: file:///srv/svn/repo/suika/trunk@110 f0ae65fe-ee39-954e-97ec-027ff2717ef4
2020-03-16 14:10:16 +00:00
contact
de72ae8f31 Protect upstreamConn.history with a lock
git-svn-id: file:///srv/svn/repo/suika/trunk@109 f0ae65fe-ee39-954e-97ec-027ff2717ef4
2020-03-16 14:08:56 +00:00
contact
65f45675ec Add CAP support for downstream connections
git-svn-id: file:///srv/svn/repo/suika/trunk@108 f0ae65fe-ee39-954e-97ec-027ff2717ef4
2020-03-16 14:05:24 +00:00
contact
b013602e14 Don't reply to PING when client is unregistered
git-svn-id: file:///srv/svn/repo/suika/trunk@107 f0ae65fe-ee39-954e-97ec-027ff2717ef4
2020-03-16 13:32:38 +00:00
contact
656f73b959 Make downstreamConn.runUntilegistered exit with an error on EOF
git-svn-id: file:///srv/svn/repo/suika/trunk@106 f0ae65fe-ee39-954e-97ec-027ff2717ef4
2020-03-16 13:30:49 +00:00
contact
7515b2a1da Echo downstream PRIVMSGs to other downstream connections
git-svn-id: file:///srv/svn/repo/suika/trunk@105 f0ae65fe-ee39-954e-97ec-027ff2717ef4
2020-03-16 13:28:45 +00:00
contact
4c1c98048c Rename consumption to ringMessage
git-svn-id: file:///srv/svn/repo/suika/trunk@104 f0ae65fe-ee39-954e-97ec-027ff2717ef4
2020-03-16 13:05:48 +00:00
contact
55f987eb29 Per-user dispatcher goroutine
This allows message handlers to read upstream/downstream connection
information without causing any race condition.

References: https://todo.sr.ht/~emersion/soju/1

git-svn-id: file:///srv/svn/repo/suika/trunk@103 f0ae65fe-ee39-954e-97ec-027ff2717ef4
2020-03-16 11:44:59 +00:00
contact
137eef6768 Rename messages channels to outgoing
git-svn-id: file:///srv/svn/repo/suika/trunk@102 f0ae65fe-ee39-954e-97ec-027ff2717ef4
2020-03-16 10:26:54 +00:00
contact
80d5aefb7b Strip client & network name from username
git-svn-id: file:///srv/svn/repo/suika/trunk@100 f0ae65fe-ee39-954e-97ec-027ff2717ef4
2020-03-16 08:32:18 +00:00
contact
1a9d6a58a0 Rename project to soju
git-svn-id: file:///srv/svn/repo/suika/trunk@98 f0ae65fe-ee39-954e-97ec-027ff2717ef4
2020-03-13 17:13:03 +00:00
contact
68b7b4461c Add support for SASL authentication
We now store SASL credentials in the database and automatically populate
them on NickServ REGISTER/IDENTIFY.

References: https://todo.sr.ht/~emersion/jounce/10

git-svn-id: file:///srv/svn/repo/suika/trunk@95 f0ae65fe-ee39-954e-97ec-027ff2717ef4
2020-03-13 14:12:44 +00:00
contact
fb60233780 Add support for upstream PASS command
git-svn-id: file:///srv/svn/repo/suika/trunk@93 f0ae65fe-ee39-954e-97ec-027ff2717ef4
2020-03-13 11:06:02 +00:00
contact
ad42226219 Auto-save IRC networks
git-svn-id: file:///srv/svn/repo/suika/trunk@91 f0ae65fe-ee39-954e-97ec-027ff2717ef4
2020-03-12 20:28:09 +00:00
contact
9eb7349674 Store NICK changes in the DB
git-svn-id: file:///srv/svn/repo/suika/trunk@90 f0ae65fe-ee39-954e-97ec-027ff2717ef4
2020-03-12 18:17:06 +00:00
contact
9eee83f69d Update DB on JOIN and PART
git-svn-id: file:///srv/svn/repo/suika/trunk@89 f0ae65fe-ee39-954e-97ec-027ff2717ef4
2020-03-12 17:33:03 +00:00
contact
63645c26ca Fix nil dereference when network is specified in username
git-svn-id: file:///srv/svn/repo/suika/trunk@88 f0ae65fe-ee39-954e-97ec-027ff2717ef4
2020-03-12 17:21:41 +00:00
contact
ebad23e080 Add support for PASS to downstream
git-svn-id: file:///srv/svn/repo/suika/trunk@85 f0ae65fe-ee39-954e-97ec-027ff2717ef4
2020-03-11 18:09:32 +00:00
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
b8a8be5d01 Rename network to upstreamName
git-svn-id: file:///srv/svn/repo/suika/trunk@76 f0ae65fe-ee39-954e-97ec-027ff2717ef4
2020-03-04 15:02:45 +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
7c488409a2 Remove upstream prefix for outgoing MODE and PRIVMSG
We shouldn't set the prefix when sending these commands.

git-svn-id: file:///srv/svn/repo/suika/trunk@72 f0ae65fe-ee39-954e-97ec-027ff2717ef4
2020-03-03 14:33:21 +00:00
contact
c52d54edc7 Add functions to translate between upstream and downstream names
git-svn-id: file:///srv/svn/repo/suika/trunk@69 f0ae65fe-ee39-954e-97ec-027ff2717ef4
2020-02-19 17:25:19 +00:00
contact
81ffb3748b Fix PING handlers, again
git-svn-id: file:///srv/svn/repo/suika/trunk@68 f0ae65fe-ee39-954e-97ec-027ff2717ef4
2020-02-18 19:40:32 +00:00
contact
e6fad26ac1 Properly handle PING messages
git-svn-id: file:///srv/svn/repo/suika/trunk@66 f0ae65fe-ee39-954e-97ec-027ff2717ef4
2020-02-18 16:07:58 +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
c88867e28f Fix panic when closing downstream connection
git-svn-id: file:///srv/svn/repo/suika/trunk@63 f0ae65fe-ee39-954e-97ec-027ff2717ef4
2020-02-18 14:08:06 +00:00
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