mirror of
https://github.com/fosrl/olm.git
synced 2026-02-08 05:56:41 +00:00
10
api/api.go
10
api/api.go
@@ -50,6 +50,7 @@ type PeerStatus struct {
|
||||
type StatusResponse struct {
|
||||
Connected bool `json:"connected"`
|
||||
Registered bool `json:"registered"`
|
||||
Terminated bool `json:"terminated"`
|
||||
Version string `json:"version,omitempty"`
|
||||
OrgID string `json:"orgId,omitempty"`
|
||||
PeerStatuses map[int]*PeerStatus `json:"peers,omitempty"`
|
||||
@@ -71,6 +72,7 @@ type API struct {
|
||||
connectedAt time.Time
|
||||
isConnected bool
|
||||
isRegistered bool
|
||||
isTerminated bool
|
||||
version string
|
||||
orgID string
|
||||
}
|
||||
@@ -206,6 +208,12 @@ func (s *API) SetRegistered(registered bool) {
|
||||
s.isRegistered = registered
|
||||
}
|
||||
|
||||
func (s *API) SetTerminated(terminated bool) {
|
||||
s.statusMu.Lock()
|
||||
defer s.statusMu.Unlock()
|
||||
s.isTerminated = terminated
|
||||
}
|
||||
|
||||
// SetVersion sets the olm version
|
||||
func (s *API) SetVersion(version string) {
|
||||
s.statusMu.Lock()
|
||||
@@ -295,6 +303,7 @@ func (s *API) handleStatus(w http.ResponseWriter, r *http.Request) {
|
||||
resp := StatusResponse{
|
||||
Connected: s.isConnected,
|
||||
Registered: s.isRegistered,
|
||||
Terminated: s.isTerminated,
|
||||
Version: s.version,
|
||||
OrgID: s.orgID,
|
||||
PeerStatuses: s.peerStatuses,
|
||||
@@ -420,6 +429,7 @@ func (s *API) GetStatus() StatusResponse {
|
||||
return StatusResponse{
|
||||
Connected: s.isConnected,
|
||||
Registered: s.isRegistered,
|
||||
Terminated: s.isTerminated,
|
||||
Version: s.version,
|
||||
OrgID: s.orgID,
|
||||
PeerStatuses: s.peerStatuses,
|
||||
|
||||
@@ -167,6 +167,9 @@ func StartTunnel(config TunnelConfig) {
|
||||
|
||||
tunnelRunning = true // Also set it here in case it is called externally
|
||||
|
||||
// Reset terminated status when tunnel starts
|
||||
apiServer.SetTerminated(false)
|
||||
|
||||
// debug print out the whole config
|
||||
logger.Debug("Starting tunnel with config: %+v", config)
|
||||
|
||||
@@ -744,6 +747,7 @@ func StartTunnel(config TunnelConfig) {
|
||||
|
||||
olm.RegisterHandler("olm/terminate", func(msg websocket.WSMessage) {
|
||||
logger.Info("Received terminate message")
|
||||
apiServer.SetTerminated(true)
|
||||
Close()
|
||||
|
||||
if globalConfig.OnTerminated != nil {
|
||||
|
||||
Reference in New Issue
Block a user