(build-actual-packet {log-state :frereth.weald.specs/state :as this}
short-term-nonce
safe-nonce)
(build-raw-template-values {:keys [:frereth.cp.shared/extension
:frereth.cp.shared/my-keys
:frereth.cp.client.state/server-extension
:frereth.cp.client.state/server-security
:frereth.cp.client.state/shared-secrets]
log-state :frereth.weald.specs/state
:as this}
short-term-nonce
internal-nonce-suffix)
Set up the values for injecting into the template
Set up the values for injecting into the template
(cookie-retrieved
{log-state :frereth.weald.specs/state
:keys [:frereth.cp.client.hello/continue :frereth.cp.client.hello/recurse
:frereth.weald.specs/logger :frereth.cp.client.state/server-security]
:as this}
raw-packet
cookie-waiter
start-time
timeout)
(cookie-validation {log-state :frereth.weald.specs/state
:keys [:frereth.cp.shared/network-packet
:frereth.cp.client.state/server-security
:frereth.cp.client.state/shared-secrets]
:as this}
start-time
timeout)
Check whether the cookie matches our expectations
Check whether the cookie matches our expectations
(do-build-packet {:keys [:frereth.cp.shared/packet-nonce] :as this})
Builds a plain-text hello packet
Builds a plain-text hello packet
(do-polling-loop {:keys [:frereth.weald.specs/logger
:frereth.cp.shared.specs/executor
:frereth.cp.client.state/chan->server
:frereth.cp.client.state/server-security]
ips :frereth.cp.client.state/server-ips
:as this}
cookie-waiter
start-time
timeout)
(pick-next-timeout n-remaining)
(possibly-recurse {:keys [:frereth.weald.specs/logger
:frereth.cp.client.state/server-ips]
log-state :frereth.weald.specs/state
:as this}
cookie-waiter
raw-packet)
Try the next server (if any)
Try the next server (if any)
(send-failed! {:keys [:frereth.weald.specs/logger :frereth.weald.specs/state]
:as this}
completion
ex)
(send-succeeded! logger this)
(set-up-server-polling! {log-state :frereth.weald.specs/state
:keys [:frereth.cp.client.state/server-ips]
:as this}
wait-for-cookie!)
Start polling the server(s) with HELLO Packets
Start polling the server(s) with HELLO Packets
cljdoc is a website building & hosting documentation for Clojure/Script libraries
× close