summaryrefslogtreecommitdiff
path: root/network
diff options
context:
space:
mode:
Diffstat (limited to 'network')
-rw-r--r--network/ip.go33
-rw-r--r--network/network.go27
-rw-r--r--network/session.go23
3 files changed, 56 insertions, 27 deletions
diff --git a/network/ip.go b/network/ip.go
new file mode 100644
index 0000000..0c6451e
--- /dev/null
+++ b/network/ip.go
@@ -0,0 +1,33 @@
+package network
+
+import (
+ "fmt"
+ "log/slog"
+ "math/rand"
+ "net"
+)
+
+func GetOutboundIP() net.IP {
+ conn, err := net.Dial("udp", "8.8.8.8:80")
+ if err != nil {
+ slog.Error("err", err)
+ }
+ defer conn.Close()
+
+ localAddr := conn.LocalAddr().(*net.UDPAddr)
+
+ return localAddr.IP
+}
+
+func GetRandomAvailablePort() (int, error) {
+ for i := 0; i < 100; i += 1 {
+ port := rand.Intn(65535-1024) + 1024
+ addr := fmt.Sprintf(":%d", port)
+ ln, err := net.Listen("tcp", addr)
+ if err == nil {
+ defer ln.Close()
+ return port, nil
+ }
+ }
+ return 0, fmt.Errorf("failed to find an available port after multiple attempts")
+}
diff --git a/network/network.go b/network/network.go
index 5ab2dac..8283993 100644
--- a/network/network.go
+++ b/network/network.go
@@ -4,8 +4,6 @@ import (
"bufio"
"encoding/json"
"fmt"
- "log/slog"
- "math/rand"
"net"
"sync"
"time"
@@ -213,28 +211,3 @@ func (n *TCPNetwork) IsConnected() bool {
defer n.Unlock()
return n.isConnected
}
-
-func GetOutboundIP() net.IP {
- conn, err := net.Dial("udp", "8.8.8.8:80")
- if err != nil {
- slog.Error("err", err)
- }
- defer conn.Close()
-
- localAddr := conn.LocalAddr().(*net.UDPAddr)
-
- return localAddr.IP
-}
-
-func GetRandomAvailablePort() (int, error) {
- for i := 0; i < 100; i += 1 {
- port := rand.Intn(65535-1024) + 1024
- addr := fmt.Sprintf(":%d", port)
- ln, err := net.Listen("tcp", addr)
- if err == nil {
- defer ln.Close()
- return port, nil
- }
- }
- return 0, fmt.Errorf("failed to find an available port after multiple attempts")
-}
diff --git a/network/session.go b/network/session.go
new file mode 100644
index 0000000..a4f60aa
--- /dev/null
+++ b/network/session.go
@@ -0,0 +1,23 @@
+package network
+
+import (
+ "math/rand"
+)
+
+var adjectives = []string{
+ "adamant", "adept", "adventurous", "arcadian", "auspicious",
+ "awesome", "blossoming", "brave", "charming", "chatty",
+ "circular", "considerate", "cubic", "curious", "delighted",
+}
+
+var nouns = []string{
+ "aardvark", "accordion", "apple", "apricot", "bee",
+ "brachiosaur", "cactus", "capsicum", "clarinet", "cowbell",
+ "crab", "cuckoo", "cymbal", "diplodocus", "donkey",
+}
+
+func NewSession() string {
+ noun := nouns[rand.Intn(len(nouns))]
+ adjective := adjectives[rand.Intn(len(adjectives))]
+ return noun + "-" + adjective
+}