代码拉取完成,页面将自动刷新
package guac
type Status int
const (
// Undefined Add to instead null
Undefined Status = -1
// Success indicates the operation succeeded.
Success Status = iota
// Unsupported indicates the requested operation is unsupported.
Unsupported
// ServerError indicates the operation could not be performed due to an internal failure.
ServerError
// ServerBusy indicates the operation could not be performed as the server is busy.
ServerBusy
// UpstreamTimeout indicates the operation could not be performed because the upstream server is not responding.
UpstreamTimeout
// UpstreamError indicates the operation was unsuccessful due to an error or otherwise unexpected
// condition of the upstream server.
UpstreamError
// ResourceNotFound indicates the operation could not be performed as the requested resource does not exist.
ResourceNotFound
// ResourceConflict indicates the operation could not be performed as the requested resource is already in use.
ResourceConflict
// ResourceClosed indicates the operation could not be performed as the requested resource is now closed.
ResourceClosed
// UpstreamNotFound indicates the operation could not be performed because the upstream server does
// not appear to exist.
UpstreamNotFound
// UpstreamUnavailable indicates the operation could not be performed because the upstream server is not
// available to service the request.
UpstreamUnavailable
// SessionConflict indicates the session within the upstream server has ended because it conflicted
// with another session.
SessionConflict
// SessionTimeout indicates the session within the upstream server has ended because it appeared to be inactive.
SessionTimeout
// SessionClosed indicates the session within the upstream server has been forcibly terminated.
SessionClosed
// ClientBadRequest indicates the operation could not be performed because bad parameters were given.
ClientBadRequest
// ClientUnauthorized indicates the user is not authorized.
ClientUnauthorized
// ClientForbidden indicates the user is not allowed to do the operation.
ClientForbidden
// ClientTimeout indicates the client took too long to respond.
ClientTimeout
// ClientOverrun indicates the client sent too much data.
ClientOverrun
// ClientBadType indicates the client sent data of an unsupported or unexpected type.
ClientBadType
// ClientTooMany indivates the operation failed because the current client is already using too many resources.
ClientTooMany
)
type statusData struct {
name string
// The most applicable HTTP error code.
httpCode int
// The most applicable WebSocket error code.
websocketCode int
// The Guacamole protocol Status code.
guacCode int
}
func newStatusData(name string, httpCode, websocketCode, guacCode int) (ret statusData) {
ret.name = name
ret.httpCode = httpCode
ret.websocketCode = websocketCode
ret.guacCode = guacCode
return
}
var guacamoleStatusMap = map[Status]statusData{
Success: newStatusData("Success", 200, 1000, 0x0000),
Unsupported: newStatusData("Unsupported", 501, 1011, 0x0100),
ServerError: newStatusData("SERVER_ERROR", 500, 1011, 0x0200),
ServerBusy: newStatusData("SERVER_BUSY", 503, 1008, 0x0201),
UpstreamTimeout: newStatusData("UPSTREAM_TIMEOUT", 504, 1011, 0x0202),
UpstreamError: newStatusData("UPSTREAM_ERROR", 502, 1011, 0x0203),
ResourceNotFound: newStatusData("RESOURCE_NOT_FOUND", 404, 1002, 0x0204),
ResourceConflict: newStatusData("RESOURCE_CONFLICT", 409, 1008, 0x0205),
ResourceClosed: newStatusData("RESOURCE_CLOSED", 404, 1002, 0x0206),
UpstreamNotFound: newStatusData("UPSTREAM_NOT_FOUND", 502, 1011, 0x0207),
UpstreamUnavailable: newStatusData("UPSTREAM_UNAVAILABLE", 502, 1011, 0x0208),
SessionConflict: newStatusData("SESSION_CONFLICT", 409, 1008, 0x0209),
SessionTimeout: newStatusData("SESSION_TIMEOUT", 408, 1002, 0x020A),
SessionClosed: newStatusData("SESSION_CLOSED", 404, 1002, 0x020B),
ClientBadRequest: newStatusData("CLIENT_BAD_REQUEST", 400, 1002, 0x0300),
ClientUnauthorized: newStatusData("CLIENT_UNAUTHORIZED", 403, 1008, 0x0301),
ClientForbidden: newStatusData("CLIENT_FORBIDDEN", 403, 1008, 0x0303),
ClientTimeout: newStatusData("CLIENT_TIMEOUT", 408, 1002, 0x0308),
ClientOverrun: newStatusData("CLIENT_OVERRUN", 413, 1009, 0x030D),
ClientBadType: newStatusData("CLIENT_BAD_TYPE", 415, 1003, 0x030F),
ClientTooMany: newStatusData("CLIENT_TOO_MANY", 429, 1008, 0x031D),
}
// String returns the name of the status.
func (s Status) String() string {
if v, ok := guacamoleStatusMap[s]; ok {
return v.name
}
return ""
}
// GetHTTPStatusCode returns the most applicable HTTP error code.
func (s Status) GetHTTPStatusCode() int {
if v, ok := guacamoleStatusMap[s]; ok {
return v.httpCode
}
return -1
}
// GetWebSocketCode returns the most applicable HTTP error code.
func (s Status) GetWebSocketCode() int {
if v, ok := guacamoleStatusMap[s]; ok {
return v.websocketCode
}
return -1
}
// GetGuacamoleStatusCode returns the corresponding Guacamole protocol Status code.
func (s Status) GetGuacamoleStatusCode() int {
if v, ok := guacamoleStatusMap[s]; ok {
return v.guacCode
}
return -1
}
// FromGuacamoleStatusCode returns the Status corresponding to the given Guacamole protocol Status code.
func FromGuacamoleStatusCode(code int) (ret Status) {
// Search for a Status having the given Status code
for k, v := range guacamoleStatusMap {
if v.guacCode == code {
ret = k
return
}
}
// No such Status found
ret = Undefined
return
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。