Make hostname dns safe, allow string in ping command

Signed-off-by: Kristoffer Dalby <kristoffer@tailscale.com>
This commit is contained in:
Kristoffer Dalby 2022-10-21 14:07:46 +02:00
parent ecce82d44a
commit d242ceac46
No known key found for this signature in database
3 changed files with 7 additions and 7 deletions

View file

@ -58,7 +58,7 @@ func TestPingAll(t *testing.T) {
for _, client := range allClients { for _, client := range allClients {
for _, ip := range allIps { for _, ip := range allIps {
err := client.Ping(ip) err := client.Ping(ip.String())
if err != nil { if err != nil {
t.Errorf("failed to ping %s from %s: %s", ip, client.Hostname(), err) t.Errorf("failed to ping %s from %s: %s", ip, client.Hostname(), err)
} else { } else {

View file

@ -14,5 +14,5 @@ type TailscaleClient interface {
IPs() ([]netip.Addr, error) IPs() ([]netip.Addr, error)
Status() (*ipnstate.Status, error) Status() (*ipnstate.Status, error)
WaitForPeers(expected int) error WaitForPeers(expected int) error
Ping(ip netip.Addr) error Ping(hostnameOrIP string) error
} }

View file

@ -46,7 +46,7 @@ func New(
return nil, err return nil, err
} }
hostname := fmt.Sprintf("ts-%s-%s", version, hash) hostname := fmt.Sprintf("ts-%s-%s", strings.ReplaceAll(version, ".", "-"), hash)
// TODO(kradalby): figure out why we need to "refresh" the network here. // TODO(kradalby): figure out why we need to "refresh" the network here.
// network, err = dockertestutil.GetFirstOrCreateNetwork(pool, network.Network.Name) // network, err = dockertestutil.GetFirstOrCreateNetwork(pool, network.Network.Name)
@ -220,14 +220,14 @@ func (t *TailscaleInContainer) WaitForPeers(expected int) error {
} }
// TODO(kradalby): Make multiping, go routine magic. // TODO(kradalby): Make multiping, go routine magic.
func (t *TailscaleInContainer) Ping(ip netip.Addr) error { func (t *TailscaleInContainer) Ping(hostnameOrIP string) error {
return t.pool.Retry(func() error { return t.pool.Retry(func() error {
command := []string{ command := []string{
"tailscale", "ping", "tailscale", "ping",
"--timeout=1s", "--timeout=1s",
"--c=10", "--c=10",
"--until-direct=true", "--until-direct=true",
ip.String(), hostnameOrIP,
} }
result, _, err := dockertestutil.ExecuteCommand( result, _, err := dockertestutil.ExecuteCommand(
@ -238,8 +238,8 @@ func (t *TailscaleInContainer) Ping(ip netip.Addr) error {
if err != nil { if err != nil {
log.Printf( log.Printf(
"failed to run ping command from %s to %s, err: %s", "failed to run ping command from %s to %s, err: %s",
t.hostname, t.Hostname(),
ip.String(), hostnameOrIP,
err, err,
) )