Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Tags: emersion/soju

Tags

v0.9.0

Toggle v0.9.0's commit message

Verified

This tag was signed with the committer’s verified signature. The key has expired.
emersion Simon Ser
soju v0.9.0

Calvin Lee (1):
      doc/ext/bouncer-networks: fix typo in ADDNETWORK example

Conrad Hoffmann (1):
      user: fix goroutine leak on upstream error

John Regan (3):
      postgres: optimize queries for large message stores
      postgres: simplify nested queries
      postgres: remove some uneeded table aliases

Kirill Primak (1):
      Add support for irc://, ws://, and http:// listening URIs

Shivaram Lingamneni (1):
      downstream: use Dialer to block Web push to internal IPs

Simon Ser (32):
      downstream: add ACCOUNTEXTBAN to ISUPPORT passthrough list
      Remove remaining comments about multi-upstream mode
      Upgrade dependencies
      downstream: sanity check Web push endpoint
      downstream: set LINELEN for bouncer connections
      downstream: fix missing client arg in two JOIN errors
      cmd/sojudb: add note about interactions with soju daemon
      downstream: send extended-join params for self-JOIN messages
      downstream: handle ircError in downstreamConn.register
      Upgrade dependencies
      database/sqlite: enable foreign keys
      database: enable WAL for SQLite
      config: bail out if a source is given when a driver doesn't need it
      database/sqlite: set options for modernc build
      doc: document HTTP endpoints
      doc/file-uploads: new article
      upstream: don't send push notifications for TAGMSG
      cmd/soju: close HTTP servers on shutdown
      Use HTTPS URL for Web Push subscriber
      Switch to new go-scfg upstream
      doc/ext/webpush: add examples
      Upgrade dependencies
      cmd/sojuctl: don't print timestamp in log messages
      service: drop some angle-brackets for fixed choice options help
      service: print less confusing error when -h/-help is used
      service: print full help command when handling -h/-help
      config: set default message-store to db
      doc: mention manual reconnection after certfp/sasl service commands
      db: create indexes for foreign keys
      database: move migrations to a separate file
      contrib: print network address when name is unset
      doc/ext/filehost: add examples

alexpdp7 (1):
      Update Gamja and Goguma links

delthas (24):
      Make max-user-networks a limit of enabled networks
      Add per-user max-networks limit
      fileupload: Fail early on file too large
      Enable user impersonation with SASL
      Run user run commands as an admin
      Enable using unix://drive:/path on Windows
      fileupload: Allow previewing uploaded media files
      fileupload: Allow previewing PDFs without downloading them
      Prevent non-admin users from adding Unix socket networks
      service: Fix race condition on user run
      Add an auth HTTP backend
      Fix creating users with 0 max networks by default
      fileupload: Add an http backend
      Support soju.im/SAFERATE ISUPPORT
      database: Do not index ANSI colors in the message text
      service: Add channel create
      Enable using both a plain & an oauth auth backend at once
      fileupload: Forward HTTP store response on error
      Fix attempting to store last message ID with no backlog clients
      service: add server debug
      downstream: Fix connecting with explicit network on non-admin users
      Add support for channel pinned/muted status through METADATA
      Fix build error when disabling SQLite
      Fix panic on pin/mute of service on downstream without network

hexadecimalDinosaur (1):
      Add Halloy client

pips (1):
      docs(contrib): Add relayd tls configuration

v0.8.2

Toggle v0.8.2's commit message

Verified

This tag was signed with the committer’s verified signature. The key has expired.
emersion Simon Ser
soju v0.8.2

Conrad Hoffmann (2):
      conn: avoid deadlock on shutdown
      upstream: fix accidental variable shadowing

James Reynolds (1):
      upstream: prevent notifications that don't cause messages

Prototyped (1):
      contrib/znc-import: recommend using sojudb for changing user passwords

Simon Ser (3):
      Revert "conn: fix goroutine leak"
      conn: rework concurrency logic
      server: close admin socket on CAP/NICK/USER/PASS

Tim Culverhouse (1):
      deps: replace nhooyr.io/websocket with github.com/coder/websocket

v0.8.1

Toggle v0.8.1's commit message

Verified

This tag was signed with the committer’s verified signature. The key has expired.
emersion Simon Ser
soju v0.8.1

Conrad Hoffmann (1):
      conn: fix goroutine leak

Gregory Anders (1):
      Fix channel membership prefixes in cached WHO replies

Krystian Chachuła (1):
      Set IRC, WS and HTTP Unix sockets' mode to 775

Simon Ser (12):
      Upgrade dependencies
      doc: document username argument for "user status"
      xirc: fix chunking in GenerateSASL
      downstream: fix WHO membership prefix order without server-specific flags
      doc: use openssl -verify_quiet instead of discarding stderr
      Migrate to Codeberg
      contrib/clients: remove note about chat.sr.ht
      downstream: drop TODO about WHOX mask2
      downstream: reflect AWAY status in self-WHO reply without upstream
      Stop dereferencing *conn
      conn: return net.ErrClosed in conn.Close
      conn: document conn.ReadMessage

delthas (1):
      service: user status: accept username filter

v0.8.0

Toggle v0.8.0's commit message

Verified

This tag was signed with the committer’s verified signature. The key has expired.
emersion Simon Ser
soju v0.8.0

This release contains the following new features:

- Support for a new file-upload IRC extension, to allow clients to
  upload files to the bouncer. The extension is disabled by default and
  requires an HTTP listener to be set up.
- Unix domain sockets are now supported for HTTP and WebSocket listeners.
- Round-robien DNS resolution is used when per-user IP addresses are set
  up, to better spread load for larger bouncer deployments.
- Highlights are now ignored when they appear inside a URL.

Full commit history below.

Alex McGrath (1):
      fileupload: add CORS header fields

Egor (1):
      Add unix domain socket listeners for HTTP and WS

Henrique Dias (1):
      Upgrade to go-sqlite3 to fix musl build

Moritz Poldrack (2):
      Fix crash on start when file-upload is disabled
      doc: add documentation for the file-upload key

Simon Ser (43):
      doc/man: add note that memory message store is basic
      Add .b4-config
      contrib/certbot: new document
      contrib/tlstunnel: new document
      database: move schema into separate file
      contrib/certbot: set -eu in renewal hook
      server: fix malformed Web Push subscriber URI
      downstream: use fresh context to send timeout errors
      Add conn.Shutdown
      upstream: consoldate TCP dial into function
      config: use scfg unmarshaler
      Add https:// and http+insecure:// listeners
      cmd/soju: add withDefaultPort helper
      config: fix MaxUserNetworks default value
      service: don't send PART if not joined in "channel delete"
      doc/per-user-ip: fix subnet length in ip route command
      Upgrade dependencies
      doc/ext/bouncer-networks: drop work-in-progress disclaimer
      Add support for file uploads
      Add http-ingress config directive
      doc/ext/filehost: fix heading level
      downstream: fix FILEHOST endpoint
      fileupload: serve select MIME types as inline
      doc: note that file uploads require an HTTP listener
      config: validate http-origin patterns
      Upgrade dependencies
      Wire up server logger to testing package
      Ignore highlights in URLs
      fileupload: append ext to filename if missing
      fileupload: hardcode a few primary file extensions
      fileupload: URL-escape output filename
      upstream: use round-robin DNS resolution when per-user IPs are set up
      Upgrade dependencies
      upstream: fix conditional for resolveIPAddr
      auth/pam: upgrade to github.com/msteinert/pam v2
      server: print error on getOrCreateUser failure
      fileupload: fix http-origin pattern matching
      upstream: fix panic on malformed RPL_CHANNELMODEIS
      downstream: shallow copy message in SendMessage instead of deep copy
      downstream: ensure numerics always carry a source prefix
      Drop unnecessary prefixes for numerics
      Drop source prefix from most non-numeric server messages
      Remove RLIMIT_NOFILE bump

Tomasz Hołubowicz (1):
      contrib/clients: update information on ERC for Emacs

delthas (1):
      Automatically join a stored channel on INVITE

dubious (1):
      Upstream change for senpai

jacob1 (2):
      Fix missing prefix on away numerics
      Include prefix in CAP messages again

v0.7.0

Toggle v0.7.0's commit message

Verified

This tag was signed with the committer’s verified signature. The key has expired.
emersion Simon Ser
soju v0.7.0

This is a smaller release, it contains small new features and bug fixes.

- The new draft/pre-away extension allows short-lived and background clients
  (e.g. chathistorysync and Goguma's background worker) to not toggle the
  auto-away status.
- The new draft/no-implicit-names extension allows clients with low bandwidth
  to connect faster (e.g. Goguma with 3G).
- The contrib/migrate-db script is now a lot faster.
- SASL ANONYMOUS is now supported to log out from an upstream network.
- STATUSMSG messages are now properly routed.

Full commit history below.

Antonio Mika (1):
      Update user.go to not broadcast a push notification when generated from us

Calvin Lee (4):
      fix empty CHATHISTORY TARGETS
      database: batch msg inserts
      contrib/migrate-db: use explicit src/dest network
      Fix saving `+draft/react` is msgstores

Eric Mertens (7):
      Fix capability associated with account message-tag
      Don't drop RPL_LISTSTART - passthrough to downstream
      ERR_NOSUCHSERVER unqueues WHOIS
      Pass MODE and TOPIC through for unjoined channels
      Add support for STATUSMSG
      Forward complete MODE message to upstream when changing modes
      Only log unhandled messages in debug mode

Simon Ser (62):
      downstream: set CLIENTTAGDENY=* when upstream is missing message-tags
      upstream: add forwardMsgByID
      upstream: forward ERR_NOSUCHNICK
      upstream: don't print "unhandled message" for registration errors
      downstream: return channel in cached WHO reply
      gitignore: add doc/sojuctl.1
      user: fix dup upstream connections due to race
      user: unconditonally stop network in updateNetwork()
      downstream: return FAIL on unknown BOUNCER command before registration
      downstream: take irc.Message in handleCap
      Improve Server.Handle readability
      downstream: inline authenticate function
      user: fix upstream connections closed after 1 minute
      downstream: fix connection registration
      Stop setting *user in downstreamConn.register
      downstream: rename downstreamRegistration.password to pass
      downstream: add support for ANONYMOUS SASL auth
      downstream: error out if SASL PLAIN identity is specified
      upstream: introduce upstreamConn.forwardMessage
      downstream: pass context to SendMessage
      contrib/systemd: add AmbientCapabilities=CAP_NET_BIND_SERVICE
      doc/packaging: add section about binding to privileged ports
      database/sqlite: fix missing argument in DeleteUser
      Panic if isHighlight is called with empty nick
      Use database.GetNick in network.isHighlight
      service: reject params for commands that don't take any
      Rename Config.Log{Driver,Path} to MsgStore
      Add CHATHISTORY test
      downstream: fix nick in auth error message
      msgstore/znclog: fix panic on malformed input line
      msgstore/znclog: fix error message
      downstream: improve SASL error logging
      Upgrade dependencies
      server: add metric for goroutine panics
      Introduce soju.im/pre-away
      Replace soju.im/pre-away with draft/pre-away
      service: add a way to reset a network certfp
      Upgrade dependencies
      doc: expand on message store specificities
      doc: clarify that client suffixes are not required for chathistory
      doc: remove mention of dropped multi-upstream mode
      contrib/clients: drop mention of single-upstream mode
      Use * instead of nick in some numeric replies
      server: drop TODO about configurable vars
      Use downstreamConn.upstreamForCommand when handling user MODE
      Remove remnant comments about multi-upstream mode
      Don't send bouncer-networks updates for removed networks
      build: cleanup all man pages
      build: improve readability of Go -ldflags
      service: convert network certfp to lower-case
      doc: add openssl command to fetch server fingerprint
      go fmt
      database: add NewNetwork
      database: fix default value for Network.AutoAway
      database: add NewUser
      cmd/sojudb: use User.SetPassword
      contrib/znc-import: leave password empty by default
      database: drop unnecessary comment
      Upgrade dependencies
      upstream: use unspecified AWAY reason if possible
      conn: drop ErrClosed workaround for WebSocket
      Add support for draft/no-implicit-names

delthas (1):
      Fix SEARCH queries with special characters on SQLite

sentriz (1):
      database: use postgresQueryTimeout for PostgresDB StoreMessages

v0.6.2

Toggle v0.6.2's commit message

Verified

This tag was signed with the committer’s verified signature. The key has expired.
emersion Simon Ser
soju v0.6.2

Simon Ser (5):
      service: reject params for commands that don't take any
      downstream: fix nick in auth error message
      msgstore/znclog: fix panic on malformed input line
      msgstore/znclog: fix error message
      downstream: improve SASL error logging

v0.6.1

Toggle v0.6.1's commit message

Verified

This tag was signed with the committer’s verified signature. The key has expired.
emersion Simon Ser
soju v0.6.1

Simon Ser (14):
      downstream: set CLIENTTAGDENY=* when upstream is missing message-tags
      upstream: add forwardMsgByID
      upstream: forward ERR_NOSUCHNICK
      upstream: don't print "unhandled message" for registration errors
      downstream: return channel in cached WHO reply
      gitignore: add doc/sojuctl.1
      user: fix dup upstream connections due to race
      user: unconditonally stop network in updateNetwork()
      downstream: return FAIL on unknown BOUNCER command before registration
      user: fix upstream connections closed after 1 minute
      downstream: error out if SASL PLAIN identity is specified
      database/sqlite: fix missing argument in DeleteUser
      Panic if isHighlight is called with empty nick
      Use database.GetNick in network.isHighlight

v0.6.0

Toggle v0.6.0's commit message

Verified

This tag was signed with the committer’s verified signature. The key has expired.
emersion Simon Ser
soju v0.6.0

Note to packagers: a new document (docs/packaging.md) has been added to
explain how soju should be integrated in distributions. This release
contains many changes around the build process and installation.

Highlights for this release:

- A new database message store has been introduced. Instead of being
  stored in plain-text files, messages can be stored in the database.
  This is useful for improved performance, full-text search, and
  retaining IRCv3 message tags.
- The old sojuctl has been renamed to sojudb. The new sojuctl is a tool
  which executes service commands on a running soju instance. An admin
  Unix socket is used for this purpose and needs to be enabled in the
  configuration file.
- External authentication has been added. This can be used to integrate
  with an OAuth 2.0 server or PAM.
- New service commands: "channel delete" is a more convenient way to get
  rid of channels saved but not joined, "user run" executes command as
  another user, "user status" to list registered users
- Users can be disabled to not use any runtime resource while keeping
  their on-disk data intact. There are new configuration options to
  automatically disable inactive users after a delay and re-enable
  inactive users on authentication.
- WHO information is now cached, reducing latency and mitigating rate
  limits when multiple clients are connected.
- TLS certificate pinning for upstream servers has been implemented.
  This can be useful to connect to servers with a self-signed
  certificate.
- Auto-away can now be disabled.
- Multi-upstream mode has been completely removed. The multi-upstream-mode
  configuration option has been dropped.
- Go 1.19 is now the minimum required Go version.

Full commit history below.

Enterprisey (1):
      contrib/clients: Warn about Hexchat password limit

Kirill Primak (1):
      service: update "user {create,update}" help

Sandra Snan (1):
      Be more clear that -connect-command needs quotes

Simon Ser (100):
      config: use structs to group DB/MsgAuth
      database/sqlite: make optional
      Upgrade dependencies
      downstream: don't echo back SASL mechanism
      downstream: fix CHATHISTORY LATEST without a bound
      downstream: remove outdated Web Push TODO
      server: close queued up connections on shutdown
      server: log when waiting for user goroutines on shutdown
      downstream: refuse to enable multi-upstream mode
      downstream: drop downstreamConn.isMultiUpstream
      downstream: drop downstreamConn.unmarshalText
      downstream: drop downstreamConn.marshalUserPrefix
      downstream: drop downstreamConn.marshalMessage
      downstream: drop downstreamConn.marshalEntity
      upstream: remove heuristic to marshal nick in errors
      upstream: use forEachDownstreamByID to forward RPL_AWAY
      irc: drop needMarshaling from applyChannelModes return values
      doc: drop multi-upstream mode bits
      config: drop multi-upstream-mode
      downstream: drop downstreamConn.unmarshalEntity{,Network}
      downstream: stop sending HTTP OPTIONS request on WEBPUSH REGISTER
      Use ratified extended-monitor cap name
      Use ratified extended-monitor cap name for needAllDownstreamCaps
      contrib/clients: reference read_marker.py for Weechat
      Upgrade to gopkg.in/irc.v4
      Upgrade dependencies
      Add WHO cache
      downstream: check channel name validity on JOIN
      downstream: use ERR_BADCHANMASK for invalid channel name
      service: add channel delete command
      service: send PART in channel delete
      service: fix typo in network -cerfp flag name
      doc: document command parsing rules for the service
      downstream: set empty CHANTYPES for bouncer connection
      doc: add "user run" to man page
      service: drop unnecessary admin check in handleUserRun
      database/sqlite: introduce sqliteTime type
      database: store user creation date
      user: take context in user.stop
      Add a flag to disable users
      service: indicate which users are disabled in "user status"
      Add user downstream interaction time
      Add disable-inactive-user config option
      Add enable-user-on-auth config directive
      service: add -disable-password
      Use database.User.SetPassword in server tests
      Add infrastructure for external authentication
      Add support for external OAuth 2.0 authentication
      Add support for SASL OAUTHBEARER
      Auto-create users after external auth when enable-user-on-auth is on
      Add support for PAM authentication
      config: add missing "pam" case
      downstream: only send CHATHISTORY ISUPPORT when supported
      Add a default path for the config file
      build: add sharedstatedir variable
      build: add RUNDIR variable
      build: don't record DESTDIR in config.DefaultPath
      build: invoke `go build` once only
      Drop permissions on Unix admin socket
      database/postgres: fix nil time errors
      downstream: send MSGREFTYPES ISUPPORT
      msgstore: move ZNC log functions to separate package
      Rate limit Web Push checks
      readme: merge paragraphs about GOFLAGS
      doc/packaging: new page
      Bump minimum Go version to 1.19
      Drop isErrClosed
      Remove legacy Go build comments
      identd: reference RFC
      identd: use UNKNOWN for OS name
      Silence "Web Push subscription expired" errors
      Move authError to auth package
      upstream: drop unnecessary casemapIsSet field
      upstream: convert ISUPPORT tokens to upper-case
      downstream: reset map with correct casemapping on MONITOR C
      upstream: drop unnecessary network nil check
      Drop unused partialCasemap() helper
      Add downstreamConn.updateCasemapping()
      Pass-through ISUPPORT CASEMAPPING
      Use generics for casemapMap
      Migrate case-mapping to xirc
      Rename casemapMap.setCasemapping to setCaseMapping
      Take case-mapping as param in newCasemapMap()
      Migrate casemapMap to xirc
      xirc: drop CaseMappingNone
      xirc: improve CaseMapping docs
      service: use database.User.SetPassword instead of bcrypt
      Introduce UserUpdateFunc
      downstream: fix nickCM out-of-sync with effective case-mapping
      downstream: fix nil pointer deref in downstreamConn.setUser
      Move DefaultUnixAdminPath to config package
      doc: add man page for sojuctl
      makefile: add variable with command list
      Set User-Agent when sending Web Push notifications
      Prune old Web Push subscriptions
      Bump update time on success in network.broadcastWebPush
      Simplify push subscription pruning logic
      database/sqlite: delete push subscriptions and msgstore in DeleteUser
      downstream: fix panic due to nil user in setUser
      doc/packaging: clarify and expand

delthas (19):
      Truncate message times to the second when using the FS message store
      Fix clearing webpush targets after any MARKREAD
      Avoid sending push notifications for all channel context messages
      Store only select TAGMSG types in message stores
      service: reject commands with unexpected arguments
      service: refactor downstreamConn to serviceContext
      service: add user run
      service: add user status
      xirc: Fix sending hostnames starting with ':' in WHO replies
      service: Store the admin capability independently the user
      service: Enable running service commands without users
      service: Enable running additional commands from a global context
      service: Return the error rather than printing it
      sojuctl: rename to sojudb
      Add administrative unix listen endpoint
      Listen on the default unix admin endpoint in the default configuration
      Add cmd/sojuctl
      Add a database store for messages
      Add support for explicit PostgreSQL schema prefixes for tests

palm93 (2):
      gitignore: add sojudb
      build: fix binaries not being built

rj1 (1):
      Implement TLS fingerprint pinning

sentriz (1):
      database/postgres: fix StoreNetwork positional arguments

zsrv (1):
      Make the auto-away functionality configurable

Łukasz Margiela (1):
      Add build tag for modernc/sqlite driver

Дамјан Георгиевски (1):
      add an example systemd service file

v0.5.2

Toggle v0.5.2's commit message

Verified

This tag was signed with the committer’s verified signature. The key has expired.
emersion Simon Ser
soju v0.5.2

Ember Sawady (2):
      Fix NICK on upstreams supporting MONITOR
      Fix labeled-response without downstream echo-message

Jeff Martin (1):
      server: fix panic stacktrace print formatting

Petr Ročkai (1):
      downstream: fix inverted range in CHATHISTORY LATEST with a timestamp

Reto Brunner (1):
      Use output given to NewLogger

Simon Ser (8):
      downstream: re-format doc comment with Go 1.19 style
      upstream: add timeout for pending commands
      Downgrade Web Push urgency for unimportant messages
      Broadcast Web Push subscriptions in a new goroutine
      downstream: break findWebPushSubscription in two functions
      downstream: add hard limit on Web Push subscriptions
      go fmt
      Pass-through ISUPPORT LINELEN

v0.5.1

Toggle v0.5.1's commit message

Verified

This tag was signed with the committer’s verified signature. The key has expired.
emersion Simon Ser
soju v0.5.1

This bugfix release addresses issues in the PostgreSQL database backend.

Simon Ser (5):
      database/postgres: fix inverted network and user in StoreWebPushSubscription
      database/postgres: make WebPushSubscription.user NOT NULL
      database/postgres: set max open conns
      database/postgres: fix inverted networkID check in StoreWebPushSubscription
      database/postgres: fix inverted networkID check in ListWebPushSubscriptions