private void OnRegisterReply(ServiceRef sdRef, ServiceFlags flags, ServiceError errorCode, string name, string regtype, string domain, IntPtr context) { RegisterServiceEventArgs args = new RegisterServiceEventArgs(); args.Service = this; args.IsRegistered = false; args.NameConflict = false; args.Error = errorCode; if (errorCode == ServiceError.NoError) { Name = name; RegType = regtype; ReplyDomain = domain; args.IsRegistered = true; } else if (errorCode == ServiceError.NameConflict) { args.NameConflict = true; } RegisterServiceEventHandler handler = Response; if (handler != null) { handler(this, args); } }
public void Stop() { if (sd_ref != ServiceRef.Zero) { sd_ref.Deallocate(); sd_ref = ServiceRef.Zero; } if (thread != null) { thread.Abort(); thread = null; } }
private void OnBrowseReply(ServiceRef sdRef, ServiceFlags flags, uint interfaceIndex, ServiceError errorCode, string serviceName, string regtype, string replyDomain, IntPtr context) { BrowseService service = new BrowseService(); service.Flags = flags; service.Name = serviceName; service.RegType = regtype; service.ReplyDomain = replyDomain; service.InterfaceIndex = interfaceIndex; ServiceBrowseEventArgs args = new ServiceBrowseEventArgs(); args.Service = service; args.MoreComing = (flags & ServiceFlags.MoreComing) != 0; if ((flags & ServiceFlags.Add) != 0) { lock (service_table.SyncRoot) { service_table[serviceName] = service; } ServiceBrowseEventHandler handler = ServiceAdded; if (handler != null) { handler(this, args); } } else { lock (service_table.SyncRoot) { service_table.Remove(serviceName); } ServiceBrowseEventHandler handler = ServiceRemoved; if (handler != null) { handler(this, args); } } }
private void OnResolveReply(ServiceRef sdRef, ServiceFlags flags, uint interfaceIndex, ServiceError errorCode, string fullname, string hosttarget, ushort port, ushort txtLen, IntPtr txtRecord, IntPtr contex) { is_resolved = true; resolve_pending = false; InterfaceIndex = interfaceIndex; FullName = fullname; HostTarget = hosttarget; this.port = (short)port; TxtRecord = new TxtRecord(txtLen, txtRecord); EventHandler handler = Resolved; if (handler != null) { handler(this, new EventArgs()); } sdRef.Deallocate(); }
public static extern ServiceError DNSServiceRegister(out ServiceRef sdRef, ServiceFlags flags, uint interfaceIndex, string name, string regtype, string domain, string host, ushort port, ushort txtLen, byte [] txtRecord, DNSServiceRegisterReply callBack, IntPtr context);
public static extern ServiceError DNSServiceResolve(out ServiceRef sdRef, ServiceFlags flags, uint interfaceIndex, string name, string regtype, string domain, DNSServiceResolveReply callBack, IntPtr context);
private void OnBrowseReply(ServiceRef sdRef, ServiceFlags flags, uint interfaceIndex, ServiceError errorCode, string serviceName, string regtype, string replyDomain, IntPtr context) { BrowseService service = new BrowseService(); service.Flags = flags; service.Name = serviceName; service.RegType = regtype; service.ReplyDomain = replyDomain; service.InterfaceIndex = interfaceIndex; ServiceBrowseEventArgs args = new ServiceBrowseEventArgs(); args.Service = service; args.MoreComing = (flags & ServiceFlags.MoreComing) != 0; if((flags & ServiceFlags.Add) != 0) { lock(service_table.SyncRoot) { service_table[serviceName] = service; } ServiceBrowseEventHandler handler = ServiceAdded; if(handler != null) { handler(this, args); } } else { lock(service_table.SyncRoot) { service_table.Remove(serviceName); } ServiceBrowseEventHandler handler = ServiceRemoved; if(handler != null) { handler(this, args); } } }
public void Stop() { if(sd_ref != ServiceRef.Zero) { sd_ref.Deallocate(); sd_ref = ServiceRef.Zero; } if(thread != null) { thread.Abort(); thread = null; } }
private void OnResolveReply(ServiceRef sdRef, ServiceFlags flags, uint interfaceIndex, ServiceError errorCode, string fullname, string hosttarget, ushort port, ushort txtLen, IntPtr txtRecord, IntPtr contex) { is_resolved = true; resolve_pending = false; InterfaceIndex = interfaceIndex; FullName = fullname; HostTarget = hosttarget; this.port = (short)port; TxtRecord = new TxtRecord(txtLen, txtRecord); EventHandler handler = Resolved; if(handler != null) { handler(this, new EventArgs()); } sdRef.Deallocate(); }
private void OnRegisterReply(ServiceRef sdRef, ServiceFlags flags, ServiceError errorCode, string name, string regtype, string domain, IntPtr context) { RegisterServiceEventArgs args = new RegisterServiceEventArgs(); args.Service = this; args.IsRegistered = false; args.NameConflict = false; args.Error = errorCode; if(errorCode == ServiceError.NoError) { Name = name; RegType = regtype; ReplyDomain = domain; args.IsRegistered = true; } else if(errorCode == ServiceError.NameConflict) { args.NameConflict = true; } RegisterServiceEventHandler handler = Response; if(handler != null) { handler(this, args); } }