func NewConnection(dsn string) *Connection { c := &Connection{ dsn: dsn, backoff: pct.NewBackoff(20 * time.Second), } return c }
func NewConnection(dsn string) *Connection { c := &Connection{ dsn: dsn, backoff: pct.NewBackoff(20 * time.Second), connectionMux: &sync.Mutex{}, } return c }
func ConnectAPI(agentConfig *agent.Config) (*pct.API, error) { golog.Println("ApiHostname: " + agentConfig.ApiHostname) golog.Println("ApiKey: " + agentConfig.ApiKey) api := pct.NewAPI() backoff := pct.NewBackoff(5 * time.Minute) t0 := time.Now() for time.Now().Sub(t0) < time.Hour*24*7 { time.Sleep(backoff.Wait()) golog.Println("Connecting to API") if err := api.Connect(agentConfig.ApiHostname, agentConfig.ApiKey, agentConfig.AgentUuid); err != nil { golog.Println(err) continue } golog.Println("Connected to API") return api, nil // success } return nil, errors.New("Timeout connecting to " + agentConfig.ApiHostname) }
func NewWebsocketClient(logger *pct.Logger, api pct.APIConnector, link string) (*WebsocketClient, error) { name := logger.Service() c := &WebsocketClient{ logger: logger, api: api, link: link, // -- conn: nil, recvChan: make(chan *proto.Cmd, RECV_BUFFER_SIZE), sendChan: make(chan *proto.Reply, SEND_BUFFER_SIZE), connectChan: make(chan bool, 1), errChan: make(chan error, 2), backoff: pct.NewBackoff(5 * time.Minute), sendSync: pct.NewSyncChan(), recvSync: pct.NewSyncChan(), mux: new(sync.Mutex), name: name, status: pct.NewStatus([]string{name, name + "-link"}), } return c, nil }