* Rename middleware to plugin first pass; mostly used 'sed', few spots where I manually changed text. This still builds a coredns binary. * fmt error * Rename AddMiddleware to AddPlugin * Readd AddMiddleware to remain backwards compat
61 lines
1.2 KiB
Go
61 lines
1.2 KiB
Go
package response
|
|
|
|
import "fmt"
|
|
|
|
// Class holds sets of Types
|
|
type Class int
|
|
|
|
const (
|
|
// All is a meta class encompassing all the classes.
|
|
All Class = iota
|
|
// Success is a class for a successful response.
|
|
Success
|
|
// Denial is a class for denying existence (NXDOMAIN, or a nodata: type does not exist)
|
|
Denial
|
|
// Error is a class for errors, right now defined as not Success and not Denial
|
|
Error
|
|
)
|
|
|
|
func (c Class) String() string {
|
|
switch c {
|
|
case All:
|
|
return "all"
|
|
case Success:
|
|
return "success"
|
|
case Denial:
|
|
return "denial"
|
|
case Error:
|
|
return "error"
|
|
}
|
|
return ""
|
|
}
|
|
|
|
// ClassFromString returns the class from the string s. If not class matches
|
|
// the All class and an error are returned
|
|
func ClassFromString(s string) (Class, error) {
|
|
switch s {
|
|
case "all":
|
|
return All, nil
|
|
case "success":
|
|
return Success, nil
|
|
case "denial":
|
|
return Denial, nil
|
|
case "error":
|
|
return Error, nil
|
|
}
|
|
return All, fmt.Errorf("invalid Class: %s", s)
|
|
}
|
|
|
|
// Classify classifies the Type t, it returns its Class.
|
|
func Classify(t Type) Class {
|
|
switch t {
|
|
case NoError, Delegation:
|
|
return Success
|
|
case NameError, NoData:
|
|
return Denial
|
|
case OtherError:
|
|
fallthrough
|
|
default:
|
|
return Error
|
|
}
|
|
}
|