Index: /trunk/Makefile
===================================================================
--- /trunk/Makefile	(revision 803)
+++ /trunk/Makefile	(revision 804)
@@ -7,5 +7,5 @@
 MANDIR ?= share/man
 
-all: suika suikactl doc/suika.1
+all: suika suikactl suika-znc-import doc/suika.1
 
 suika:
Index: /trunk/bridge.go
===================================================================
--- /trunk/bridge.go	(revision 803)
+++ /trunk/bridge.go	(revision 804)
@@ -1,3 +1,3 @@
-package soju
+package suika
 
 import (
Index: /trunk/certfp.go
===================================================================
--- /trunk/certfp.go	(revision 803)
+++ /trunk/certfp.go	(revision 804)
@@ -1,3 +1,3 @@
-package soju
+package suika
 
 import (
@@ -58,5 +58,5 @@
 	cert := &x509.Certificate{
 		SerialNumber: serialNumber,
-		Subject:      pkix.Name{CommonName: "soju auto-generated certificate"},
+		Subject:      pkix.Name{CommonName: "suika auto-generated certificate"},
 		NotBefore:    notBefore,
 		NotAfter:     notAfter,
Index: /trunk/cmd/suika-znc-import/main.go
===================================================================
--- /trunk/cmd/suika-znc-import/main.go	(revision 803)
+++ /trunk/cmd/suika-znc-import/main.go	(revision 804)
@@ -17,8 +17,8 @@
 )
 
-const usage = `usage: soju-znc-import [options...] <znc config path>
+const usage = `usage: suika-znc-import [options...] <znc config path>
 
 Imports configuration from a ZNC file. Users and networks are merged if they
-already exist in the soju database. ZNC settings overwrite existing soju
+already exist in the suika database. ZNC settings overwrite existing suika
 settings.
 
@@ -26,5 +26,5 @@
 
   -help             Show this help message
-  -config <path>    Path to soju config file
+  -config <path>    Path to suika config file
   -user <username>  Limit import to username (may be specified multiple times)
   -network <name>   Limit import to network (may be specified multiple times)
@@ -65,5 +65,5 @@
 	ctx := context.Background()
 
-	db, err := soju.OpenDB(cfg.SQLDriver, cfg.SQLSource)
+	db, err := suika.OpenDB(cfg.SQLDriver, cfg.SQLSource)
 	if err != nil {
 		log.Fatalf("failed to open database: %v", err)
@@ -87,5 +87,5 @@
 		log.Fatalf("failed to list users in DB: %v", err)
 	}
-	existingUsers := make(map[string]*soju.User, len(l))
+	existingUsers := make(map[string]*suika.User, len(l))
 	for i, u := range l {
 		existingUsers[u.Username] = &l[i]
@@ -108,5 +108,5 @@
 		} else {
 			// "!!" is an invalid crypt format, thus disables password auth
-			u = &soju.User{Username: username, Password: "!!"}
+			u = &suika.User{Username: username, Password: "!!"}
 			usersCreated++
 			log.Printf("user %q: creating new user", username)
@@ -124,5 +124,5 @@
 			log.Fatalf("failed to list networks for user %q: %v", username, err)
 		}
-		existingNetworks := make(map[string]*soju.Network, len(l))
+		existingNetworks := make(map[string]*suika.Network, len(l))
 		for i, n := range l {
 			existingNetworks[n.GetName()] = &l[i]
@@ -176,5 +176,5 @@
 				logger.Printf("updating existing network")
 			} else {
-				n = &soju.Network{Name: netName}
+				n = &suika.Network{Name: netName}
 				logger.Printf("creating new network")
 			}
@@ -195,5 +195,5 @@
 				logger.Fatalf("failed to list channels: %v", err)
 			}
-			existingChannels := make(map[string]*soju.Channel, len(l))
+			existingChannels := make(map[string]*suika.Channel, len(l))
 			for i, ch := range l {
 				existingChannels[ch.Name] = &l[i]
@@ -214,5 +214,5 @@
 					logger.Printf("channel %q: updating existing channel", chName)
 				} else {
-					ch = &soju.Channel{Name: chName}
+					ch = &suika.Channel{Name: chName}
 					logger.Printf("channel %q: creating new channel", chName)
 				}
@@ -233,5 +233,5 @@
 
 	if usersCreated > 0 {
-		log.Printf("warning: user passwords haven't been imported, please set them with `sojuctl change-password <username>`")
+		log.Printf("warning: user passwords haven't been imported, please set them with `suikactl change-password <username>`")
 	}
 
Index: /trunk/cmd/suika/main.go
===================================================================
--- /trunk/cmd/suika/main.go	(revision 803)
+++ /trunk/cmd/suika/main.go	(revision 804)
@@ -60,5 +60,5 @@
 )
 
-func loadConfig() (*config.Server, *soju.Config, error) {
+func loadConfig() (*config.Server, *suika.Config, error) {
 	var raw *config.Server
 	if configPath != "" {
@@ -89,5 +89,5 @@
 	}
 
-	cfg := &soju.Config{
+	cfg := &suika.Config{
 		Hostname:        raw.Hostname,
 		Title:           raw.Title,
@@ -124,5 +124,5 @@
 	}
 
-	db, err := soju.OpenDB(cfg.SQLDriver, cfg.SQLSource)
+	db, err := suika.OpenDB(cfg.SQLDriver, cfg.SQLSource)
 	if err != nil {
 		log.Fatalf("failed to open database: %v", err)
@@ -138,7 +138,7 @@
 	}
 
-	srv := soju.NewServer(db)
+	srv := suika.NewServer(db)
 	srv.SetConfig(serverCfg)
-	srv.Logger = soju.NewLogger(log.Writer(), debug)
+	srv.Logger = suika.NewLogger(log.Writer(), debug)
 
 	for _, listen := range cfg.Listen {
@@ -242,5 +242,5 @@
 		case "ident":
 			if srv.Identd == nil {
-				srv.Identd = soju.NewIdentd()
+				srv.Identd = suika.NewIdentd()
 			}
 
@@ -316,5 +316,5 @@
 	}
 
-	if db, ok := db.(soju.MetricsCollectorDatabase); ok && srv.MetricsRegistry != nil {
+	if db, ok := db.(suika.MetricsCollectorDatabase); ok && srv.MetricsRegistry != nil {
 		srv.MetricsRegistry.MustRegister(db.MetricsCollector())
 	}
@@ -345,5 +345,5 @@
 }
 
-func proxyProtoListener(ln net.Listener, srv *soju.Server) net.Listener {
+func proxyProtoListener(ln net.Listener, srv *suika.Server) net.Listener {
 	return &proxyproto.Listener{
 		Listener: ln,
Index: /trunk/cmd/suikactl/main.go
===================================================================
--- /trunk/cmd/suikactl/main.go	(revision 803)
+++ /trunk/cmd/suikactl/main.go	(revision 804)
@@ -16,5 +16,5 @@
 )
 
-const usage = `usage: sojuctl [-config path] <action> [options...]
+const usage = `usage: suikactl [-config path] <action> [options...]
 
   create-user <username> [-admin]  Create a new user
@@ -45,5 +45,5 @@
 	}
 
-	db, err := soju.OpenDB(cfg.SQLDriver, cfg.SQLSource)
+	db, err := suika.OpenDB(cfg.SQLDriver, cfg.SQLSource)
 	if err != nil {
 		log.Fatalf("failed to open database: %v", err)
@@ -74,5 +74,5 @@
 		}
 
-		user := soju.User{
+		user := suika.User{
 			Username: username,
 			Password: string(hashed),
Index: /trunk/config/config.go
===================================================================
--- /trunk/config/config.go	(revision 803)
+++ /trunk/config/config.go	(revision 804)
@@ -64,5 +64,5 @@
 		Hostname:        hostname,
 		SQLDriver:       "sqlite3",
-		SQLSource:       "soju.db",
+		SQLSource:       "suika.db",
 		MaxUserNetworks: -1,
 		MultiUpstream:   true,
Index: /trunk/conn.go
===================================================================
--- /trunk/conn.go	(revision 803)
+++ /trunk/conn.go	(revision 804)
@@ -1,3 +1,3 @@
-package soju
+package suika
 
 import (
Index: /trunk/db.go
===================================================================
--- /trunk/db.go	(revision 803)
+++ /trunk/db.go	(revision 804)
@@ -1,3 +1,3 @@
-package soju
+package suika
 
 import (
Index: /trunk/db_postgres.go
===================================================================
--- /trunk/db_postgres.go	(revision 803)
+++ /trunk/db_postgres.go	(revision 804)
@@ -1,3 +1,3 @@
-package soju
+package suika
 
 import (
@@ -149,5 +149,5 @@
 	}
 	if version > len(postgresMigrations) {
-		return fmt.Errorf("soju (version %d) older than schema (version %d)", len(postgresMigrations), version)
+		return fmt.Errorf("suika (version %d) older than schema (version %d)", len(postgresMigrations), version)
 	}
 
@@ -344,5 +344,5 @@
 			// keep saslPlain* nil
 		default:
-			return fmt.Errorf("soju: cannot store network: unsupported SASL mechanism %q", network.SASL.Mechanism)
+			return fmt.Errorf("suika: cannot store network: unsupported SASL mechanism %q", network.SASL.Mechanism)
 		}
 	}
Index: /trunk/db_postgres_test.go
===================================================================
--- /trunk/db_postgres_test.go	(revision 803)
+++ /trunk/db_postgres_test.go	(revision 804)
@@ -1,3 +1,3 @@
-package soju
+package suika
 
 import (
Index: /trunk/db_sqlite.go
===================================================================
--- /trunk/db_sqlite.go	(revision 803)
+++ /trunk/db_sqlite.go	(revision 804)
@@ -1,3 +1,3 @@
-package soju
+package suika
 
 import (
@@ -230,5 +230,5 @@
 		return nil
 	} else if version > len(sqliteMigrations) {
-		return fmt.Errorf("soju (version %d) older than schema (version %d)", len(sqliteMigrations), version)
+		return fmt.Errorf("suika (version %d) older than schema (version %d)", len(sqliteMigrations), version)
 	}
 
@@ -507,5 +507,5 @@
 			// keep saslPlain* nil
 		default:
-			return fmt.Errorf("soju: cannot store network: unsupported SASL mechanism %q", network.SASL.Mechanism)
+			return fmt.Errorf("suika: cannot store network: unsupported SASL mechanism %q", network.SASL.Mechanism)
 		}
 	}
Index: /trunk/db_sqlite_test.go
===================================================================
--- /trunk/db_sqlite_test.go	(revision 803)
+++ /trunk/db_sqlite_test.go	(revision 804)
@@ -1,3 +1,3 @@
-package soju
+package suika
 
 import (
Index: /trunk/downstream.go
===================================================================
--- /trunk/downstream.go	(revision 803)
+++ /trunk/downstream.go	(revision 804)
@@ -1,3 +1,3 @@
-package soju
+package suika
 
 import (
@@ -410,5 +410,5 @@
 	if dc.network != nil {
 		if dc.network != net {
-			panic("soju: tried to marshal an entity for another network")
+			panic("suika: tried to marshal an entity for another network")
 		}
 		return name
@@ -424,5 +424,5 @@
 	if dc.network != nil {
 		if dc.network != net {
-			panic("soju: tried to marshal a user prefix for another network")
+			panic("suika: tried to marshal a user prefix for another network")
 		}
 		return prefix
@@ -632,5 +632,5 @@
 
 func (dc *downstreamConn) sendPing(msgID string) {
-	token := "soju-msgid-" + msgID
+	token := "suika-msgid-" + msgID
 	dc.SendMessage(&irc.Message{
 		Command: "PING",
@@ -640,9 +640,9 @@
 
 func (dc *downstreamConn) handlePong(token string) {
-	if !strings.HasPrefix(token, "soju-msgid-") {
+	if !strings.HasPrefix(token, "suika-msgid-") {
 		dc.logger.Printf("received unrecognized PONG token %q", token)
 		return
 	}
-	msgID := strings.TrimPrefix(token, "soju-msgid-")
+	msgID := strings.TrimPrefix(token, "suika-msgid-")
 	dc.ackMsgID(msgID)
 }
@@ -1412,5 +1412,5 @@
 		Prefix:  dc.srv.prefix(),
 		Command: irc.RPL_WELCOME,
-		Params:  []string{dc.nick, "Welcome to soju, " + dc.nick},
+		Params:  []string{dc.nick, "Welcome to suika, " + dc.nick},
 	})
 	dc.SendMessage(&irc.Message{
@@ -1422,5 +1422,5 @@
 		Prefix:  dc.srv.prefix(),
 		Command: irc.RPL_MYINFO,
-		Params:  []string{dc.nick, dc.srv.Config().Hostname, "soju", "aiwroO", "OovaimnqpsrtklbeI"},
+		Params:  []string{dc.nick, dc.srv.Config().Hostname, "suika", "aiwroO", "OovaimnqpsrtklbeI"},
 	})
 	for _, msg := range generateIsupport(dc.srv.prefix(), dc.nick, isupport) {
@@ -2258,5 +2258,5 @@
 				Prefix:  dc.srv.prefix(),
 				Command: irc.RPL_WHOISSERVER,
-				Params:  []string{dc.nick, dc.nick, dc.srv.Config().Hostname, "soju"},
+				Params:  []string{dc.nick, dc.nick, dc.srv.Config().Hostname, "suika"},
 			})
 			if dc.user.Admin {
@@ -2288,5 +2288,5 @@
 				Prefix:  dc.srv.prefix(),
 				Command: irc.RPL_WHOISSERVER,
-				Params:  []string{dc.nick, serviceNick, dc.srv.Config().Hostname, "soju"},
+				Params:  []string{dc.nick, serviceNick, dc.srv.Config().Hostname, "suika"},
 			})
 			dc.SendMessage(&irc.Message{
Index: /trunk/ident.go
===================================================================
--- /trunk/ident.go	(revision 803)
+++ /trunk/ident.go	(revision 804)
@@ -1,3 +1,3 @@
-package soju
+package suika
 
 import (
Index: /trunk/irc.go
===================================================================
--- /trunk/irc.go	(revision 803)
+++ /trunk/irc.go	(revision 804)
@@ -1,3 +1,3 @@
-package soju
+package suika
 
 import (
Index: /trunk/irc_test.go
===================================================================
--- /trunk/irc_test.go	(revision 803)
+++ /trunk/irc_test.go	(revision 804)
@@ -1,3 +1,3 @@
-package soju
+package suika
 
 import (
Index: /trunk/msgstore.go
===================================================================
--- /trunk/msgstore.go	(revision 803)
+++ /trunk/msgstore.go	(revision 804)
@@ -1,3 +1,3 @@
-package soju
+package suika
 
 import (
Index: /trunk/msgstore_fs.go
===================================================================
--- /trunk/msgstore_fs.go	(revision 803)
+++ /trunk/msgstore_fs.go	(revision 804)
@@ -1,3 +1,3 @@
-package soju
+package suika
 
 import (
Index: /trunk/msgstore_memory.go
===================================================================
--- /trunk/msgstore_memory.go	(revision 803)
+++ /trunk/msgstore_memory.go	(revision 804)
@@ -1,3 +1,3 @@
-package soju
+package suika
 
 import (
Index: /trunk/net_go113.go
===================================================================
--- /trunk/net_go113.go	(revision 803)
+++ /trunk/net_go113.go	(revision 804)
@@ -2,5 +2,5 @@
 // +build !go1.16
 
-package soju
+package suika
 
 import (
Index: /trunk/net_go116.go
===================================================================
--- /trunk/net_go116.go	(revision 803)
+++ /trunk/net_go116.go	(revision 804)
@@ -2,5 +2,5 @@
 // +build go1.16
 
-package soju
+package suika
 
 import (
Index: /trunk/rate.go
===================================================================
--- /trunk/rate.go	(revision 803)
+++ /trunk/rate.go	(revision 804)
@@ -1,3 +1,3 @@
-package soju
+package suika
 
 import (
Index: /trunk/server.go
===================================================================
--- /trunk/server.go	(revision 803)
+++ /trunk/server.go	(revision 804)
@@ -1,3 +1,3 @@
-package soju
+package suika
 
 import (
@@ -210,5 +210,5 @@
 
 	factory.NewGaugeFunc(prometheus.GaugeOpts{
-		Name: "soju_users_active",
+		Name: "suika_users_active",
 		Help: "Current number of active users",
 	}, func() float64 {
@@ -220,35 +220,35 @@
 
 	factory.NewGaugeFunc(prometheus.GaugeOpts{
-		Name: "soju_downstreams_active",
+		Name: "suika_downstreams_active",
 		Help: "Current number of downstream connections",
 	}, s.metrics.downstreams.Float64)
 
 	factory.NewGaugeFunc(prometheus.GaugeOpts{
-		Name: "soju_upstreams_active",
+		Name: "suika_upstreams_active",
 		Help: "Current number of upstream connections",
 	}, s.metrics.upstreams.Float64)
 
 	s.metrics.upstreamOutMessagesTotal = factory.NewCounter(prometheus.CounterOpts{
-		Name: "soju_upstream_out_messages_total",
+		Name: "suika_upstream_out_messages_total",
 		Help: "Total number of outgoing messages sent to upstream servers",
 	})
 
 	s.metrics.upstreamInMessagesTotal = factory.NewCounter(prometheus.CounterOpts{
-		Name: "soju_upstream_in_messages_total",
+		Name: "suika_upstream_in_messages_total",
 		Help: "Total number of incoming messages received from upstream servers",
 	})
 
 	s.metrics.downstreamOutMessagesTotal = factory.NewCounter(prometheus.CounterOpts{
-		Name: "soju_downstream_out_messages_total",
+		Name: "suika_downstream_out_messages_total",
 		Help: "Total number of outgoing messages sent to downstream clients",
 	})
 
 	s.metrics.downstreamInMessagesTotal = factory.NewCounter(prometheus.CounterOpts{
-		Name: "soju_downstream_in_messages_total",
+		Name: "suika_downstream_in_messages_total",
 		Help: "Total number of incoming messages received from downstream clients",
 	})
 
 	s.metrics.upstreamConnectErrorsTotal = factory.NewCounter(prometheus.CounterOpts{
-		Name: "soju_upstream_connect_errors_total",
+		Name: "suika_upstream_connect_errors_total",
 		Help: "Total number of upstream connection errors",
 	})
Index: /trunk/server_test.go
===================================================================
--- /trunk/server_test.go	(revision 803)
+++ /trunk/server_test.go	(revision 804)
@@ -1,3 +1,3 @@
-package soju
+package suika
 
 import (
@@ -10,8 +10,8 @@
 )
 
-var testServerPrefix = &irc.Prefix{Name: "soju-test-server"}
+var testServerPrefix = &irc.Prefix{Name: "suika-test-server"}
 
 const (
-	testUsername = "soju-test-user"
+	testUsername = "suika-test-user"
 	testPassword = testUsername
 )
@@ -133,5 +133,5 @@
 		Prefix:  testServerPrefix,
 		Command: irc.RPL_YOURHOST,
-		Params:  []string{nick, "Your host is soju-test-server"},
+		Params:  []string{nick, "Your host is suika-test-server"},
 	})
 	c.WriteMessage(&irc.Message{
@@ -143,5 +143,5 @@
 		Prefix:  testServerPrefix,
 		Command: irc.RPL_MYINFO,
-		Params:  []string{nick, testServerPrefix.Name, "soju", "aiwroO", "OovaimnqpsrtklbeI"},
+		Params:  []string{nick, testServerPrefix.Name, "suika", "aiwroO", "OovaimnqpsrtklbeI"},
 	})
 	c.WriteMessage(&irc.Message{
Index: /trunk/service.go
===================================================================
--- /trunk/service.go	(revision 803)
+++ /trunk/service.go	(revision 804)
@@ -1,3 +1,3 @@
-package soju
+package suika
 
 import (
@@ -22,5 +22,5 @@
 const serviceNick = "BouncerServ"
 const serviceNickCM = "bouncerserv"
-const serviceRealname = "soju bouncer service"
+const serviceRealname = "suika bouncer service"
 
 // maxRSABits is the maximum number of RSA key bits used when generating a new
@@ -262,5 +262,5 @@
 				"create": {
 					usage:  "-username <username> -password <password> [-realname <realname>] [-admin]",
-					desc:   "create a new soju user",
+					desc:   "create a new suika user",
 					handle: handleUserCreate,
 					admin:  true,
Index: /trunk/service_test.go
===================================================================
--- /trunk/service_test.go	(revision 803)
+++ /trunk/service_test.go	(revision 804)
@@ -1,3 +1,3 @@
-package soju
+package suika
 
 import (
@@ -23,8 +23,8 @@
 
 func TestSplit(t *testing.T) {
-	assertSplit(t, "  ch 'up' #soju    'relay'-det\"ache\"d  message  ", []string{
+	assertSplit(t, "  ch 'up' #suika    'relay'-det\"ache\"d  message  ", []string{
 		"ch",
 		"up",
-		"#soju",
+		"#suika",
 		"relay-detached",
 		"message",
Index: /trunk/upstream.go
===================================================================
--- /trunk/upstream.go	(revision 803)
+++ /trunk/upstream.go	(revision 804)
@@ -1,3 +1,3 @@
-package soju
+package suika
 
 import (
@@ -200,6 +200,5 @@
 
 		// Don't do the TLS handshake immediately, because we need to register
-		// the new connection with identd ASAP. See:
-		// https://todo.sr.ht/~emersion/soju/69#event-41859
+		// the new connection with identd ASAP.
 		netConn = tls.Client(netConn, tlsConfig)
 	case "irc+insecure":
@@ -473,9 +472,9 @@
 
 		if msg.Prefix.Name == serviceNick {
-			uc.logger.Printf("skipping %v from soju's service: %v", msg.Command, msg)
+			uc.logger.Printf("skipping %v from suika's service: %v", msg.Command, msg)
 			break
 		}
 		if entity == serviceNick {
-			uc.logger.Printf("skipping %v to soju's service: %v", msg.Command, msg)
+			uc.logger.Printf("skipping %v to suika's service: %v", msg.Command, msg)
 			break
 		}
Index: /trunk/user.go
===================================================================
--- /trunk/user.go	(revision 803)
+++ /trunk/user.go	(revision 804)
@@ -1,3 +1,3 @@
-package soju
+package suika
 
 import (
