This repository has been archived on 2020-09-27. You can view files and clone it, but cannot push or open issues or pull requests.
2018-02-10 13:34:42 +01:00
|
|
|
package tester
|
|
|
|
|
|
|
|
import (
|
|
|
|
"crypto/tls"
|
|
|
|
|
|
|
|
"dev.sum7.eu/genofire/yaja/client"
|
|
|
|
"dev.sum7.eu/genofire/yaja/model"
|
|
|
|
)
|
|
|
|
|
|
|
|
type Status struct {
|
|
|
|
client *client.Client
|
2018-02-10 16:45:01 +01:00
|
|
|
account *Account
|
2018-02-10 13:34:42 +01:00
|
|
|
JID *model.JID `json:"jid"`
|
|
|
|
Domain string `json:"domain"`
|
|
|
|
Login bool `json:"is_online"`
|
|
|
|
MessageForConnection map[string]string `json:"-"`
|
|
|
|
Connections map[string]bool `json:"-"`
|
|
|
|
TLSVersion string `json:"tls_version"`
|
|
|
|
}
|
|
|
|
|
2018-02-10 16:45:01 +01:00
|
|
|
func NewStatus(acc *Account) *Status {
|
2018-02-10 13:34:42 +01:00
|
|
|
return &Status{
|
2018-02-10 16:45:01 +01:00
|
|
|
account: acc,
|
|
|
|
JID: acc.JID,
|
|
|
|
Domain: acc.JID.Domain,
|
2018-02-10 13:34:42 +01:00
|
|
|
MessageForConnection: make(map[string]string),
|
|
|
|
Connections: make(map[string]bool),
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
func (s *Status) Update() {
|
|
|
|
if s.client == nil || !s.Login {
|
|
|
|
s.Login = false
|
|
|
|
s.TLSVersion = ""
|
|
|
|
return
|
|
|
|
}
|
|
|
|
if tlsstate := s.client.TLSConnectionState(); tlsstate != nil {
|
|
|
|
switch tlsstate.Version {
|
|
|
|
case tls.VersionSSL30:
|
|
|
|
s.TLSVersion = "SSL 3.0"
|
|
|
|
case tls.VersionTLS10:
|
|
|
|
s.TLSVersion = "TLS 1.0"
|
|
|
|
case tls.VersionTLS11:
|
|
|
|
s.TLSVersion = "TLS 1.1"
|
|
|
|
case tls.VersionTLS12:
|
|
|
|
s.TLSVersion = "TLS 1.2"
|
|
|
|
default:
|
|
|
|
s.TLSVersion = "unknown " + string(tlsstate.Version)
|
|
|
|
}
|
|
|
|
} else {
|
|
|
|
s.TLSVersion = ""
|
|
|
|
}
|
|
|
|
}
|