+#if APPLE_OSX_mDNSResponder
+
+mDNSlocal mStatus handle_release_request(request_state *request)
+{
+ mStatus err = 0;
+ char name[256], regtype[MAX_ESCAPED_DOMAIN_NAME], domain[MAX_ESCAPED_DOMAIN_NAME];
+ domainname instance;
+
+ // extract the data from the message
+ DNSServiceFlags flags = get_flags(&request->msgptr, request->msgend);
+
+ if (get_string(&request->msgptr, request->msgend, name, 256) < 0 ||
+ get_string(&request->msgptr, request->msgend, regtype, MAX_ESCAPED_DOMAIN_NAME) < 0 ||
+ get_string(&request->msgptr, request->msgend, domain, MAX_ESCAPED_DOMAIN_NAME) < 0)
+ {
+ LogMsg("ERROR: handle_release_request - Couldn't read name/regtype/domain");
+ return(mStatus_BadParamErr);
+ }
+
+ if (!request->msgptr)
+ {
+ LogMsg("%3d: PeerConnectionRelease(unreadable parameters)", request->sd);
+ return(mStatus_BadParamErr);
+ }
+
+ if (build_domainname_from_strings(&instance, name, regtype, domain) < 0)
+ {
+ LogMsg("ERROR: handle_release_request bad “%s” “%s” “%s”", name, regtype, domain);
+ return(mStatus_BadParamErr);
+ }
+
+ LogOperation("%3d: PeerConnectionRelease(%X %##s) START PID[%d](%s)",
+ request->sd, flags, instance.c, get_peer_pid(request->sd, pid_name), pid_name);
+
+ external_connection_release(&instance);
+ return(err);
+}
+
+#else // APPLE_OSX_mDNSResponder
+
+mDNSlocal mStatus handle_release_request(request_state *request)
+{
+ (void) request;
+ return mStatus_UnsupportedErr;
+}
+
+#endif // APPLE_OSX_mDNSResponder
+