Files
overlord/Overlord-Client/cmd/agent/config/identity_iostarget.go
T

39 lines
850 B
Go

//go:build ios || ios_target
package config
import (
"crypto/rand"
"encoding/hex"
"log"
"os"
"strings"
)
const iosMachineIDFile = "config/ios_machine_id"
func platformMachineID() string {
data, err := os.ReadFile(iosMachineIDFile)
if err == nil {
if id := strings.TrimSpace(string(data)); id != "" {
return id
}
}
b := make([]byte, 16)
if _, err := rand.Read(b); err != nil {
log.Printf("[identity] WARNING: failed to generate iOS machine ID: %v", err)
return ""
}
id := hex.EncodeToString(b)
if err := os.MkdirAll("config", 0700); err != nil {
log.Printf("[identity] WARNING: failed to create config dir for iOS machine ID: %v", err)
return id
}
if err := os.WriteFile(iosMachineIDFile, []byte(id), 0600); err != nil {
log.Printf("[identity] WARNING: failed to persist iOS machine ID: %v", err)
}
return id
}