116 Commits

Author SHA1 Message Date
contact
075fed636d ci: add builds.sr.ht manifest
git-svn-id: file:///srv/svn/repo/suika/trunk@116 f0ae65fe-ee39-954e-97ec-027ff2717ef4
2020-03-18 09:28:58 +00:00
delthas
5bb7c8bf6d Add upstream INVITE support
git-svn-id: file:///srv/svn/repo/suika/trunk@115 f0ae65fe-ee39-954e-97ec-027ff2717ef4
2020-03-18 09:26:25 +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
f169a0a35a Split user logic into its own file
git-svn-id: file:///srv/svn/repo/suika/trunk@101 f0ae65fe-ee39-954e-97ec-027ff2717ef4
2020-03-16 10:18:41 +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
b6135cf1cb Add sojuctl to .gitignore
git-svn-id: file:///srv/svn/repo/suika/trunk@99 f0ae65fe-ee39-954e-97ec-027ff2717ef4
2020-03-13 17:14:14 +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
63f9c8a3cf Forward NOTICE messages coming from upstream connections
git-svn-id: file:///srv/svn/repo/suika/trunk@97 f0ae65fe-ee39-954e-97ec-027ff2717ef4
2020-03-13 15:39:49 +00:00
contact
68661c503a Update dependencies
go-irc v3.1.1 contains a breaking change.

References: https://github.com/go-irc/irc/issues/76

git-svn-id: file:///srv/svn/repo/suika/trunk@96 f0ae65fe-ee39-954e-97ec-027ff2717ef4
2020-03-13 15:18:53 +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
e0962406e4 schema: add Channel.key
git-svn-id: file:///srv/svn/repo/suika/trunk@94 f0ae65fe-ee39-954e-97ec-027ff2717ef4
2020-03-13 11:30:01 +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
07c41b00eb Add upstream CAP LS support
git-svn-id: file:///srv/svn/repo/suika/trunk@92 f0ae65fe-ee39-954e-97ec-027ff2717ef4
2020-03-13 10:26:43 +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
7a61e91057 schema: add UNIQUE constraints
git-svn-id: file:///srv/svn/repo/suika/trunk@87 f0ae65fe-ee39-954e-97ec-027ff2717ef4
2020-03-12 14:33:49 +00:00
contact
4b38c644b2 schema: make User.password NOT NULL
git-svn-id: file:///srv/svn/repo/suika/trunk@86 f0ae65fe-ee39-954e-97ec-027ff2717ef4
2020-03-12 14:23:46 +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
79f3b73eab cmd/jouncectl: new command
Allows to create users.

git-svn-id: file:///srv/svn/repo/suika/trunk@84 f0ae65fe-ee39-954e-97ec-027ff2717ef4
2020-03-11 18:01:03 +00:00
contact
ff387f021a Pass-through QUIT messages
git-svn-id: file:///srv/svn/repo/suika/trunk@83 f0ae65fe-ee39-954e-97ec-027ff2717ef4
2020-03-06 17:51:11 +00:00
contact
1037541a30 Pass-through NICK messages for other users
git-svn-id: file:///srv/svn/repo/suika/trunk@82 f0ae65fe-ee39-954e-97ec-027ff2717ef4
2020-03-06 17:43:56 +00:00
contact
b6d2338737 Use a RWMutex for DB
git-svn-id: file:///srv/svn/repo/suika/trunk@81 f0ae65fe-ee39-954e-97ec-027ff2717ef4
2020-03-04 19:15:38 +00:00
contact
9de66e9cb0 readme: pipe commands into sqlite3 instead of using -init
This makes it so sqlite3 exits after executing the file.

git-svn-id: file:///srv/svn/repo/suika/trunk@80 f0ae65fe-ee39-954e-97ec-027ff2717ef4
2020-03-04 19:13:20 +00:00
contact
c75d825938 go fmt
git-svn-id: file:///srv/svn/repo/suika/trunk@79 f0ae65fe-ee39-954e-97ec-027ff2717ef4
2020-03-04 18:23:24 +00:00
contact
4d15bbafe3 readme: add instructions to initialize database
git-svn-id: file:///srv/svn/repo/suika/trunk@78 f0ae65fe-ee39-954e-97ec-027ff2717ef4
2020-03-04 17:27:33 +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
89c458b92c Fix TOPIC parsing, broadcast to downstream clients
git-svn-id: file:///srv/svn/repo/suika/trunk@74 f0ae65fe-ee39-954e-97ec-027ff2717ef4
2020-03-04 14:45:14 +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
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
b0ceb14bd4 cmd/jounce: fix non-TLS listener address
git-svn-id: file:///srv/svn/repo/suika/trunk@70 f0ae65fe-ee39-954e-97ec-027ff2717ef4
2020-03-03 14:15:57 +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
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