blob: 01f97390fd01f162fe57fc4e59ece51c9f6fbbce [file] [log] [blame]
// Copyright 2020 The Fuchsia Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
package main
/*
#include "dnssdfinder.h"
*/
import "C"
import (
"fmt"
)
type dnsSDError int32
const (
dnsSDNoError = dnsSDError(C.kDNSServiceErr_NoError)
dnsSDUnknown = dnsSDError(C.kDNSServiceErr_Unknown)
dnsSDNoSuchName = dnsSDError(C.kDNSServiceErr_NoSuchName)
dnsSDNoMemory = dnsSDError(C.kDNSServiceErr_NoMemory)
dnsSDBadParam = dnsSDError(C.kDNSServiceErr_BadParam)
dnsSDBadReference = dnsSDError(C.kDNSServiceErr_BadReference)
dnsSDBadState = dnsSDError(C.kDNSServiceErr_BadState)
dnsSDBadFlags = dnsSDError(C.kDNSServiceErr_BadFlags)
dnsSDUnsupported = dnsSDError(C.kDNSServiceErr_Unsupported)
dnsSDNotInitialized = dnsSDError(C.kDNSServiceErr_NotInitialized)
dnsSDAlreadyRegistered = dnsSDError(C.kDNSServiceErr_AlreadyRegistered)
dnsSDNameConflict = dnsSDError(C.kDNSServiceErr_NameConflict)
dnsSDInvalid = dnsSDError(C.kDNSServiceErr_Invalid)
dnsSDFirewall = dnsSDError(C.kDNSServiceErr_Firewall)
dnsSDIncompatible = dnsSDError(C.kDNSServiceErr_Incompatible)
dnsSDBadInterfaceIndex = dnsSDError(C.kDNSServiceErr_BadInterfaceIndex)
dnsSDRefused = dnsSDError(C.kDNSServiceErr_Refused)
dnsSDNoSuchRecord = dnsSDError(C.kDNSServiceErr_NoSuchRecord)
dnsSDNoAuth = dnsSDError(C.kDNSServiceErr_NoAuth)
dnsSDNoSuchKey = dnsSDError(C.kDNSServiceErr_NoSuchKey)
dnsSDNATTraversal = dnsSDError(C.kDNSServiceErr_NATTraversal)
dnsSDDoubleNAT = dnsSDError(C.kDNSServiceErr_DoubleNAT)
dnsSDBadTime = dnsSDError(C.kDNSServiceErr_BadTime)
dnsSDBadSig = dnsSDError(C.kDNSServiceErr_BadSig)
dnsSDBadKey = dnsSDError(C.kDNSServiceErr_BadKey)
dnsSDTransient = dnsSDError(C.kDNSServiceErr_Transient)
dnsSDServiceNotRunning = dnsSDError(C.kDNSServiceErr_ServiceNotRunning)
dnsSDNATPortMappingUnsupported = dnsSDError(C.kDNSServiceErr_NATPortMappingUnsupported)
dnsSDNATPortMappingDisabled = dnsSDError(C.kDNSServiceErr_NATPortMappingDisabled)
dnsSDNoRouter = dnsSDError(C.kDNSServiceErr_NoRouter)
dnsSDPollingMode = dnsSDError(C.kDNSServiceErr_PollingMode)
dnsSDTimeout = dnsSDError(C.kDNSServiceErr_Timeout)
)
func (d dnsSDError) Error() string {
switch d {
case dnsSDNoError:
return "NoError"
case dnsSDUnknown:
return "Unknown"
case dnsSDNoSuchName:
return "NoSuchName"
case dnsSDNoMemory:
return "NoMemory"
case dnsSDBadParam:
return "BadParam"
case dnsSDBadReference:
return "BadReference"
case dnsSDBadState:
return "BadState"
case dnsSDBadFlags:
return "BadFlags"
case dnsSDUnsupported:
return "Unsupported"
case dnsSDNotInitialized:
return "NotInitialized"
case dnsSDAlreadyRegistered:
return "AlreadyRegistered"
case dnsSDNameConflict:
return "NameConflict"
case dnsSDInvalid:
return "Invalid"
case dnsSDFirewall:
return "Firewall"
case dnsSDIncompatible:
return "Incompatible"
case dnsSDBadInterfaceIndex:
return "BadInterfaceIndex"
case dnsSDRefused:
return "Refused"
case dnsSDNoSuchRecord:
return "NoSuchRecord"
case dnsSDNoAuth:
return "NoAuth"
case dnsSDNoSuchKey:
return "NoSuchKey"
case dnsSDNATTraversal:
return "NATTraversal"
case dnsSDDoubleNAT:
return "DoubleNAT"
case dnsSDBadTime:
return "BadTime"
case dnsSDBadSig:
return "BadSig"
case dnsSDBadKey:
return "BadKey"
case dnsSDTransient:
return "Transient"
case dnsSDServiceNotRunning:
return "ServiceNotRunning"
case dnsSDNATPortMappingUnsupported:
return "NATPortMappingUnsupported"
case dnsSDNATPortMappingDisabled:
return "NATPortMappingDisabled"
case dnsSDNoRouter:
return "NoRouter"
case dnsSDPollingMode:
return "PollingMode"
case dnsSDTimeout:
return "Timeout"
default:
return fmt.Sprintf("Unrecognized Error Code: %d", d)
}
}
func (d dnsSDError) Is(other error) bool {
otherConv, ok := other.(dnsSDError)
if !ok {
return false
}
return otherConv == d
}