@@ -27,7 +27,7 @@
2727-- and other private/reserved names), so two default-built servers cannot
2828-- federate with each other. The default is only suitable for a single-node,
2929-- non-federated deployment.
30−serverHost : Text
30+serverHost : ServerName
3131serverHost = "localhost"
3232-- Network interface the HTTP listener binds to. "0.0.0.0" accepts connections
3333-- on every IPv4 interface (the typical default behind a reverse proxy);
@@ -247,7 +247,7 @@ type Session = {token: Text, pubkey: PubkeyHex, expiresAt: Timestamp, ip: Text}
247247-- `receivedAt`. Any send time the sender wants to convey lives inside
248248-- `encryptedBlob` (the server cannot read it).
249249type Message = {toKey: PubkeyHex, encryptedBlob: BlobHex, receivedAt: Timestamp}
250−-- Last-known location of a pubkey, either local (`server == serverHostN`) or
250+-- Last-known location of a pubkey, either local (`server == serverHost`) or
251251-- learned from a peer via gossip. Multiple entries per pubkey are allowed.
252252type PresenceEntry = {pubkey: PubkeyHex, server: ServerName, expiresAt: Timestamp}
253253-- A message queued for cross-server delivery to `toServer`. `retries` is
@@ -547,12 +547,9 @@ else s
547547normalizeServerName : Text -> Text
548548normalizeServerName = \s -> toLower (stripTrailingDot s)
549549
550−-- This server's own hostname in canonical form (used everywhere for self-checks).
551−serverHostN : Text
552−serverHostN = normalizeServerName serverHost
553550-- True when `s` refers to this server.
554551isLocalServer : Text -> Bool
555−isLocalServer = \s -> s == serverHostN
552+isLocalServer = \s -> s == serverHost
556553-- True when `s` refers to any server other than this one.
557554isRemote : Text -> Bool
558555isRemote = \s -> not isLocalServer s
@@ -782,7 +779,7 @@ presenceForKey = \presence pubkey t -> filter presence (\p -> p.pubkey == pubkey
782779
783780-- Resolve a key's server for client lookup, masking remote identities behind "remote".
784781maskedServer : [PresenceEntry] -> PubkeyHex -> Timestamp -> Text
785−maskedServer = \pres pubkey t -> (\here -> if any here (\p -> isLocalServer p.server) then serverHostN else if count here > 0 then "remote" else "") (presenceForKey pres pubkey t)
782+maskedServer = \pres pubkey t -> (\here -> if any here (\p -> isLocalServer p.server) then serverHost else if count here > 0 then "remote" else "") (presenceForKey pres pubkey t)
786783
787784-- Project items through `getServer`, drop our own hostname, and dedupe.
788785-- Used to derive peer recipient lists from forwards/presence/etc.
@@ -838,10 +835,7 @@ sendBatchedGossip = \peers events -> forEach peers (\server -> do
838835 t <- now
839836 failures <- *forwardFailures
840837 when (shouldRetryServer server t failures) (do
841− result <- fetch (federationUrl server) (RecvGossip {
842− events,
843− fromServer: serverHostN
844− })
838+ result <- fetch (federationUrl server) (RecvGossip {events, fromServer: serverHost})
845839 case result of
846840 Err _ -> recordFailure server
847841 Ok _ -> clearFailure server))
@@ -874,7 +868,7 @@ retryPendingForwards = do
874868 result <- fetch (federationUrl server) (ForwardMessage {
875869 f.toKey,
876870 f.encryptedBlob,
877− fromServer: serverHostN
871+ fromServer: serverHost
878872 })
879873 success <- case result of
880874 Err _ -> do
@@ -1028,7 +1022,7 @@ handleVerifyAuth = \pubkey challenge signature revokeOthers clientIp -> do
10281022 *sessions = capList (union pruned [newSession]) maxSessions (\s -> s.expiresAt)
10291023 pres <- *presence
10301024 let prunedPres = removeWhere pres (\p -> p.pubkey == pubkey && isLocalServer p.server)
1031− let newPres = union prunedPres [{pubkey, server: serverHostN, expiresAt: expiry}]
1025+ let newPres = union prunedPres [{pubkey, server: serverHost, expiresAt: expiry}]
10321026 *presence = newPres
10331027 yield {valid: True {}, peers: knownPeerServersFromPresence newPres})
10341028 if not result.valid
@@ -1225,7 +1219,7 @@ forkForwardsTo = \to encryptedBlob servers -> forEach servers (\server -> do
12251219 result <- fetch (federationUrl server) (ForwardMessage {
12261220 toKey: to,
12271221 encryptedBlob,
1228− fromServer: serverHostN
1222+ fromServer: serverHost
12291223 })
12301224 case result of
12311225 Err _ -> recordFailure server
@@ -1438,10 +1432,7 @@ handlePingPeer = \server authorization -> withMaintAuth authorization (yield {
14381432then yield {ok: False {}, latencyMs: 0, error: "invalid_server"}
14391433else do
14401434 startTime <- now
1441− result <- fetch (federationUrl server) (RecvGossip {
1442− events: [],
1443− fromServer: serverHostN
1444− })
1435+ result <- fetch (federationUrl server) (RecvGossip {events: [], fromServer: serverHost})
14451436 endTime <- now
14461437 case result of
14471438 Err e -> yield {ok: False {}, latencyMs: endTime - startTime, error: show e}