ext/dnssd/errors.c in dnssd-1.1.0 vs ext/dnssd/errors.c in dnssd-1.2
- old
+ new
@@ -2,43 +2,34 @@
#include <assert.h>
VALUE eDNSSDError;
static VALUE eDNSSDUnknownError;
-#define DNSSD_ERROR_START (-65556)
-#define DNSSD_ERROR_END (-65536)
+#define DNSSD_ERROR_START (DNSServiceErrorType)(-65792) /* 0xFFFE FF00 */
+#define DNSSD_ERROR_END (DNSServiceErrorType)(-65537) /* 0xFFFE FFFF */
static VALUE dnssd_errors[DNSSD_ERROR_END - DNSSD_ERROR_START];
static void
-dnssd_errors_store(VALUE error, int num) {
- assert(DNSSD_ERROR_START <= num && num < DNSSD_ERROR_END);
- dnssd_errors[num - DNSSD_ERROR_START] = error;
+dnssd_errors_store(VALUE error, DNSServiceErrorType err) {
+ assert(DNSSD_ERROR_START <= err && err <= DNSSD_ERROR_END);
+ dnssd_errors[err - DNSSD_ERROR_START] = error;
}
void
-dnssd_check_error_code(DNSServiceErrorType e) {
- int num = (int)e;
- if (num) {
- if(DNSSD_ERROR_START <= num && num < DNSSD_ERROR_END) {
- rb_raise(dnssd_errors[num - DNSSD_ERROR_START],
- "DNSSD operation failed with error code: %d", num);
+dnssd_check_error_code(DNSServiceErrorType err) {
+ if (err) {
+ if(DNSSD_ERROR_START <= err && err < DNSSD_ERROR_END) {
+ rb_raise(dnssd_errors[err - DNSSD_ERROR_START],
+ "DNSSD operation failed with error code: %d", err);
} else {
rb_raise(eDNSSDUnknownError,
- "DNSSD operation failed with unrecognized error code: %d", num);
+ "DNSSD operation failed with unrecognized error code: %d", err);
}
}
}
-void
-dnssd_instantiation_error(const char *what) {
- rb_raise(rb_eRuntimeError,
- "cannot instantiate %s, use DNSSD "
- "enumerate_domains(), browse(), resolve() or register() instead",
- what);
-}
-
/* Document-class: DNSSD::Error
*
* Base class of all DNS Service Discovery related errors.
*
*/
@@ -49,57 +40,88 @@
VALUE mDNSSD = rb_define_module("DNSSD");
eDNSSDError = rb_define_class_under(mDNSSD, "Error", rb_eStandardError);
eDNSSDUnknownError = rb_define_class_under(mDNSSD, "UnknownError", eDNSSDError);
- dnssd_errors_store(eDNSSDUnknownError, -65537);
+ dnssd_errors_store(eDNSSDUnknownError, kDNSServiceErr_Unknown);
error_class = rb_define_class_under(mDNSSD, "NoSuchNameError", eDNSSDError);
- dnssd_errors_store(error_class, -65538);
+ dnssd_errors_store(error_class, kDNSServiceErr_NoSuchName);
- dnssd_errors_store(rb_eNoMemError, -65539);
+ error_class = rb_define_class_under(mDNSSD, "NoMemoryError", eDNSSDError);
+ dnssd_errors_store(error_class, kDNSServiceErr_NoMemory);
error_class = rb_define_class_under(mDNSSD, "BadParamError", eDNSSDError);
- dnssd_errors_store(error_class, -65540);
+ dnssd_errors_store(error_class, kDNSServiceErr_BadParam);
error_class = rb_define_class_under(mDNSSD, "BadReferenceError", eDNSSDError);
- dnssd_errors_store(error_class, -65541);
+ dnssd_errors_store(error_class, kDNSServiceErr_BadReference);
error_class = rb_define_class_under(mDNSSD, "BadStateError", eDNSSDError);
- dnssd_errors_store(error_class, -65542);
+ dnssd_errors_store(error_class, kDNSServiceErr_BadState);
error_class = rb_define_class_under(mDNSSD, "BadFlagsError", eDNSSDError);
- dnssd_errors_store(error_class, -65543);
+ dnssd_errors_store(error_class, kDNSServiceErr_BadFlags);
error_class = rb_define_class_under(mDNSSD, "UnsupportedError", eDNSSDError);
- dnssd_errors_store(error_class, -65544);
+ dnssd_errors_store(error_class, kDNSServiceErr_Unsupported);
error_class = rb_define_class_under(mDNSSD, "NotInitializedError", eDNSSDError);
- dnssd_errors_store(error_class, -65545);
+ dnssd_errors_store(error_class, kDNSServiceErr_NotInitialized);
error_class = rb_define_class_under(mDNSSD, "AlreadyRegisteredError", eDNSSDError);
- dnssd_errors_store(error_class, -65547);
+ dnssd_errors_store(error_class, kDNSServiceErr_AlreadyRegistered);
error_class = rb_define_class_under(mDNSSD, "NameConflictError", eDNSSDError);
- dnssd_errors_store(error_class, -65548);
+ dnssd_errors_store(error_class, kDNSServiceErr_NameConflict);
error_class = rb_define_class_under(mDNSSD, "InvalidError", eDNSSDError);
- dnssd_errors_store(error_class, -65549);
+ dnssd_errors_store(error_class, kDNSServiceErr_Invalid);
+ error_class = rb_define_class_under(mDNSSD, "FirewallError", eDNSSDError);
+ dnssd_errors_store(error_class, kDNSServiceErr_Firewall);
+
error_class = rb_define_class_under(mDNSSD, "ClientIncompatibleError", eDNSSDError);
- dnssd_errors_store(error_class, -65551);
+ dnssd_errors_store(error_class, kDNSServiceErr_Incompatible);
error_class = rb_define_class_under(mDNSSD, "BadInterfaceIndexError", eDNSSDError);
- dnssd_errors_store(error_class, -65552);
+ dnssd_errors_store(error_class, kDNSServiceErr_BadInterfaceIndex);
- error_class = rb_define_class_under(mDNSSD, "ReferenceUsedError", eDNSSDError);
- dnssd_errors_store(error_class, -65553);
+ error_class = rb_define_class_under(mDNSSD, "RefusedError", eDNSSDError);
+ dnssd_errors_store(error_class, kDNSServiceErr_Refused);
error_class = rb_define_class_under(mDNSSD, "NoSuchRecordError", eDNSSDError);
- dnssd_errors_store(error_class, -65554);
+ dnssd_errors_store(error_class, kDNSServiceErr_NoSuchRecord);
error_class = rb_define_class_under(mDNSSD, "NoAuthenticationError", eDNSSDError);
- dnssd_errors_store(error_class, -65555);
+ dnssd_errors_store(error_class, kDNSServiceErr_NoAuth);
error_class = rb_define_class_under(mDNSSD, "NoSuchKeyError", eDNSSDError);
- dnssd_errors_store(error_class, -65556);
+ dnssd_errors_store(error_class, kDNSServiceErr_NoSuchKey);
+
+ error_class = rb_define_class_under(mDNSSD, "NATTraversalError", eDNSSDError);
+ dnssd_errors_store(error_class, kDNSServiceErr_NATTraversal);
+
+ error_class = rb_define_class_under(mDNSSD, "DoubleNATError", eDNSSDError);
+ dnssd_errors_store(error_class, kDNSServiceErr_DoubleNAT);
+
+ error_class = rb_define_class_under(mDNSSD, "BadTimeError", eDNSSDError);
+ dnssd_errors_store(error_class, kDNSServiceErr_BadTime);
+
+ error_class = rb_define_class_under(mDNSSD, "BadSigError", eDNSSDError);
+ dnssd_errors_store(error_class, kDNSServiceErr_BadSig);
+
+ error_class = rb_define_class_under(mDNSSD, "BadKeyError", eDNSSDError);
+ dnssd_errors_store(error_class, kDNSServiceErr_BadKey);
+
+ error_class = rb_define_class_under(mDNSSD, "TransientError", eDNSSDError);
+ dnssd_errors_store(error_class, kDNSServiceErr_Transient);
+
+ error_class = rb_define_class_under(mDNSSD, "ServiceNotRunningError", eDNSSDError);
+ dnssd_errors_store(error_class, kDNSServiceErr_ServiceNotRunning);
+
+ error_class = rb_define_class_under(mDNSSD, "NATPortMappingUnsupported", eDNSSDError);
+ dnssd_errors_store(error_class, kDNSServiceErr_NATPortMappingUnsupported);
+
+ error_class = rb_define_class_under(mDNSSD, "NATPortMappingDisabled", eDNSSDError);
+ dnssd_errors_store(error_class, kDNSServiceErr_NATPortMappingDisabled);
}