private void BrowseReply(IntPtr sdRef, DNSServiceFlags flags, UInt32 interfaceIndex, DNSServiceErrorType errorCode, String serviceName, String regtype, String replyDomain, IntPtr context) { bool moreComing = ((flags & DNSServiceFlags.MoreComing) != 0); if ((flags & DNSServiceFlags.Add) != 0) { // Add NetService newService = new NetService(replyDomain, regtype, serviceName); newService.InheritInvokeOptions(this); foundServices.Add(newService); if (DidFindService != null) { DidFindService(this, newService, moreComing); } } else { // Remove foreach (NetService service in foundServices) { if (service.Name == serviceName && service.Type == regtype && service.Domain == replyDomain) { foundServices.Remove(service); if (DidRemoveService != null) { DidRemoveService(this, service, moreComing); } break; } } } }
private void BrowseReply(IntPtr sdRef, DNSServiceFlags flags, UInt32 interfaceIndex, DNSServiceErrorType errorCode, String serviceName, String regtype, String replyDomain, IntPtr context) { bool moreComing = ((flags & DNSServiceFlags.MoreComing) != 0); if ((flags & DNSServiceFlags.Add) != 0) { // Add NetService newService = new NetService(replyDomain, regtype, serviceName); newService.InheritInvokeOptions(this); foundServices.Add(newService); if (DidFindService != null) DidFindService(this, newService, moreComing); } else { // Remove foreach (NetService service in foundServices) { if (service.Name == serviceName && service.Type == regtype && service.Domain == replyDomain) { foundServices.Remove(service); if (DidRemoveService != null) DidRemoveService(this, service, moreComing); break; } } } }
private static void BrowseReply(IntPtr sdRef, DNSServiceFlags flags, UInt32 interfaceIndex, DNSServiceErrorType errorCode, String serviceName, String regtype, String replyDomain, IntPtr context) { GCHandle gch = (GCHandle)context; NetServiceBrowser c = (NetServiceBrowser)gch.Target; bool moreComing = ((flags & DNSServiceFlags.kDNSServiceFlagsMoreComing) != 0); if ((flags & DNSServiceFlags.kDNSServiceFlagsAdd) != 0) { /* add */ NetService newService = new NetService(replyDomain, regtype, serviceName); newService.InheritInvokeOptions(c); c.foundServices.Add(newService); if (c.DidFindService != null) c.DidFindService(c, newService, moreComing); } else { /* remove */ foreach (NetService service in c.foundServices) { if (service.Name == serviceName && service.Type == regtype && service.Domain == replyDomain) { c.foundServices.Remove(service); if (c.DidRemoveService != null) c.DidRemoveService(c, service, moreComing); break; } } } }