Skip to content

Commit

Permalink
limit ext names to 15
Browse files Browse the repository at this point in the history
  • Loading branch information
abhishek9686 committed Nov 14, 2024
1 parent 4498b51 commit c8048da
Showing 1 changed file with 31 additions and 1 deletion.
32 changes: 31 additions & 1 deletion logic/extpeers.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,15 @@ package logic

import (
"encoding/json"
"errors"
"fmt"
"net"
"reflect"
"strings"
"sync"
"time"

"github.com/goombaio/namegenerator"
"github.com/gravitl/netmaker/database"
"github.com/gravitl/netmaker/logger"
"github.com/gravitl/netmaker/logic/acls"
Expand Down Expand Up @@ -281,13 +283,41 @@ func CreateExtClient(extclient *models.ExtClient) error {
}

if extclient.ClientID == "" {
extclient.ClientID = models.GenerateNodeName()
extclient.ClientID, err = GenerateNodeName(extclient.Network)
if err != nil {
return err
}
}

extclient.LastModified = time.Now().Unix()
return SaveExtClient(extclient)
}

// GenerateNodeName - generates a random node name
func GenerateNodeName(network string) (string, error) {
seed := time.Now().UTC().UnixNano()
nameGenerator := namegenerator.NewNameGenerator(seed)
var name string
cnt := 0
for {
if cnt > 10 {
return "", errors.New("couldn't generate random name, try again")
}
cnt += 1
name = nameGenerator.Generate()
if len(name) > 15 {
continue
}
_, err := GetExtClient(name, network)
if err == nil {
// config exists with same name
continue
}
break
}
return name, nil
}

// SaveExtClient - saves an ext client to database
func SaveExtClient(extclient *models.ExtClient) error {
key, err := GetRecordKey(extclient.ClientID, extclient.Network)
Expand Down

0 comments on commit c8048da

Please sign in to comment.