Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type AcctRequest ¶
type AcctRequest struct {
NasIp string `json:"nas_ip" yaml:"nas_ip"`
NasName string `json:"nas_name" yaml:"nas_name"`
DeviceMac string `json:"device_mac"`
DhcpServerName string `json:"dhcp_server_name"`
DhcpServerId string `json:"dhcp_server_id"`
FramedIpAddress string `json:"ip_address"`
AuthType string `json:"auth_type"`
Class string `json:"class_id"`
StatusType string `json:"status_type"`
SessionTime int64 `json:"session_time"`
TerminateCause string `json:"terminate_cause"`
InputOctets int64 `json:"input_octets"`
OutputOctets int64 `json:"output_octets"`
PoolName string `json:"pool_name"`
SessionId string `json:"session_id"`
}
type AuthError ¶
type AuthError struct {
Kind AuthErrorKind
Err error
ExtraAttributes map[string]string
}
AuthError carries the kind of an authorize() failure. Any other error is KindError.
type AuthErrorKind ¶
type AuthErrorKind string
AuthErrorKind tells the radius handler how to answer when authorize() fails. It mirrors the FreeRADIUS module codes used by the legacy Perl script:
- KindError (RLM_MODULE_FAIL): infrastructure failure unrelated to the request (clientdb down, script crashed, no free worker). No answer is sent, so the NAS retries later.
- KindInvalid (RLM_MODULE_INVALID): this request cannot be served, e.g. circuit_id did not parse. Answered with Access-Reject.
- KindReject (RLM_MODULE_REJECT): explicit business decision to deny the device. Answered with Access-Reject.
const ( KindError AuthErrorKind = "ERROR" KindInvalid AuthErrorKind = "INVALID" KindReject AuthErrorKind = "REJECT" )
func ClassifyAuthError ¶
func ClassifyAuthError(err error) AuthErrorKind
type AuthRequest ¶
type AuthRequest struct {
NasIp string `json:"nas_ip" yaml:"nas_ip"`
NasName string `json:"nas_name" yaml:"nas_name"`
DeviceMac string `json:"device_mac"`
DhcpServerName string `json:"dhcp_server_name"`
DhcpServerId string `json:"dhcp_server_id"`
AgentOption *AuthRequestOption `json:"option"`
FramedIpAddress string `json:"ip_address"`
Class string `json:"class_id"`
}
type AuthRequestOption ¶
type AuthResponse ¶
type AuthResponse struct {
Time time.Time `json:"-"`
IpAddress string `json:"ip_address"`
PoolName string `json:"pool_name"`
LeaseTimeSec int `json:"lease_time_sec"`
Status string `json:"status"`
Error string `json:"error"`
Class string `json:"class_id"`
ExtraAttributes map[string]string `json:"extra_attributes"`
}
Click to show internal directories.
Click to hide internal directories.