2021-02-25 17:46:40 -08:00
|
|
|
package client
|
|
|
|
|
|
|
|
import (
|
|
|
|
"fmt"
|
2021-04-03 16:39:33 -07:00
|
|
|
"log"
|
2021-02-25 17:46:40 -08:00
|
|
|
"sync"
|
|
|
|
"time"
|
|
|
|
|
2021-09-24 10:37:32 -07:00
|
|
|
gs "git.dragonheim.net/dragonheim/gagent/internal/gstructs"
|
2021-05-23 08:42:29 -07:00
|
|
|
|
2021-02-25 17:46:40 -08:00
|
|
|
zmq "github.com/pebbe/zmq4"
|
|
|
|
)
|
|
|
|
|
|
|
|
// Main is the initiation function for a Client
|
2021-10-04 13:06:09 -07:00
|
|
|
func Main(wg *sync.WaitGroup, config gs.GagentConfig, rid int, agent string) {
|
|
|
|
defer wg.Done()
|
2021-05-21 23:03:50 +00:00
|
|
|
log.Printf("[INFO] Starting client\n")
|
2021-02-25 17:46:40 -08:00
|
|
|
|
2021-05-21 23:03:50 +00:00
|
|
|
// Generate connect string for this router.
|
|
|
|
var rport = int64(config.ClientPort)
|
|
|
|
if config.Routers[rid].ClientPort != 0 {
|
|
|
|
rport = config.Routers[rid].ClientPort
|
|
|
|
}
|
|
|
|
connectString := fmt.Sprintf("tcp://%s:%d", config.Routers[rid].RouterAddr, rport)
|
|
|
|
log.Printf("[DEBUG] Attempting to connect to %s\n", connectString)
|
2021-02-25 17:46:40 -08:00
|
|
|
|
2021-05-21 23:03:50 +00:00
|
|
|
var mu sync.Mutex
|
2021-02-25 17:46:40 -08:00
|
|
|
|
2021-05-21 23:03:50 +00:00
|
|
|
sock, _ := zmq.NewSocket(zmq.REQ)
|
2021-02-25 17:46:40 -08:00
|
|
|
defer sock.Close()
|
|
|
|
|
|
|
|
sock.SetIdentity(config.UUID)
|
|
|
|
sock.Connect(connectString)
|
|
|
|
|
|
|
|
go func() {
|
|
|
|
mu.Lock()
|
2021-05-21 23:03:50 +00:00
|
|
|
log.Printf("[DEBUG] Start sending agent...\n")
|
2021-02-25 17:46:40 -08:00
|
|
|
sock.SendMessage(agent)
|
2021-05-21 23:03:50 +00:00
|
|
|
log.Printf("[DEBUG] End sending agent...\n")
|
2021-02-25 17:46:40 -08:00
|
|
|
mu.Unlock()
|
|
|
|
}()
|
|
|
|
|
2021-05-21 23:03:50 +00:00
|
|
|
// time.Sleep(10 * time.Millisecond)
|
|
|
|
time.Sleep(10 * time.Millisecond)
|
|
|
|
|
|
|
|
// for {
|
|
|
|
// time.Sleep(10 * time.Millisecond)
|
|
|
|
// mu.Lock()
|
|
|
|
// msg, err := sock.RecvMessage(zmq.DONTWAIT)
|
|
|
|
// if err == nil {
|
|
|
|
// log.Println(msg[0], config.UUID)
|
|
|
|
// }
|
|
|
|
// mu.Unlock()
|
|
|
|
// }
|
2021-10-04 13:06:09 -07:00
|
|
|
|
2021-02-25 17:46:40 -08:00
|
|
|
}
|