Take the foundation's ports as genesis inputs, check them free, and hand them to the controller as the node's settings (hq ADR 0100)
This commit is contained in:
@@ -5,6 +5,7 @@ import (
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
"net"
|
||||
"strconv"
|
||||
"strings"
|
||||
"time"
|
||||
)
|
||||
@@ -87,6 +88,9 @@ func InstallFromCatalogue(ctx context.Context, o Options, control controlPlane,
|
||||
if _, err := control.tell(ctx, "assign", o.Node, module); err != nil {
|
||||
return err
|
||||
}
|
||||
if err := prepareModule(ctx, o, control, module, say); err != nil {
|
||||
return err
|
||||
}
|
||||
if _, err := pushNode(ctx, o, control, say); err != nil {
|
||||
return err
|
||||
}
|
||||
@@ -120,7 +124,7 @@ func PlaceOnTheNetwork(ctx context.Context, o Options, control controlPlane,
|
||||
Name: "endpoint",
|
||||
Question: "Where do other machines reach this one for the private network? " +
|
||||
"(host:port; the host other machines dial)",
|
||||
Default: derivedEndpoint(brokerAddress),
|
||||
Default: derivedEndpoint(brokerAddress, o.Ports.orDefaults().Hub),
|
||||
}, o.Answers["endpoint"], o.Prompt, say)
|
||||
if err != nil {
|
||||
return err
|
||||
@@ -202,12 +206,12 @@ func builds(manifest []byte) bool {
|
||||
|
||||
// derivedEndpoint is the default place other machines dial for the private network: the same host
|
||||
// they already dial for the broker, on WireGuard's ordinary port. One fact, not two.
|
||||
func derivedEndpoint(brokerAddress string) string {
|
||||
func derivedEndpoint(brokerAddress string, hub int) string {
|
||||
host, _, err := net.SplitHostPort(brokerAddress)
|
||||
if err != nil || host == "" {
|
||||
return ""
|
||||
}
|
||||
return net.JoinHostPort(host, "51820")
|
||||
return net.JoinHostPort(host, strconv.Itoa(hub))
|
||||
}
|
||||
|
||||
func refOr(ref string) string {
|
||||
|
||||
Reference in New Issue
Block a user