Mono.Zeroconf – Diff between revs 1 and 2
?pathlinks?
Rev 1 | Rev 2 | |||
---|---|---|---|---|
Line 28... | Line 28... | |||
28 | |
28 | |
|
29 | using System; |
29 | using System; |
|
30 | using System.Net; |
30 | using System.Net; |
|
31 | using System.Threading; |
31 | using System.Threading; |
|
- | 32 | using System.Runtime.InteropServices; |
||
Line 32... | Line 33... | |||
32 | using System.Runtime.InteropServices; |
33 | using System.Text; |
|
33 | |
34 | |
|
34 | namespace Mono.Zeroconf.Providers.Bonjour |
35 | namespace Mono.Zeroconf.Providers.Bonjour |
|
35 | { |
36 | { |
|
Line 40... | Line 41... | |||
40 | private bool auto_rename = true; |
41 | private bool auto_rename = true; |
|
Line 41... | Line 42... | |||
41 | |
42 | |
|
Line 42... | Line 43... | |||
42 | private Native.DNSServiceRegisterReply register_reply_handler; |
43 | private Native.DNSServiceRegisterReply register_reply_handler; |
|
43 | |
44 | |
|
44 | public event RegisterServiceEventHandler Response; |
45 | public event RegisterServiceEventHandler Response; |
|
45 | |
46 | |
|
46 | public RegisterService() |
47 | public RegisterService() |
|
47 | { |
48 | { |
|
Line 105... | Line 106... | |||
105 | Marshal.Copy(((TxtRecord)TxtRecord.BaseRecord).RawBytes, txt_rec, 0, txt_rec_length); |
106 | Marshal.Copy(((TxtRecord)TxtRecord.BaseRecord).RawBytes, txt_rec, 0, txt_rec_length); |
|
106 | } |
107 | } |
|
Line 107... | Line 108... | |||
107 | |
108 | |
|
108 | ServiceError error = Native.DNSServiceRegister(out sd_ref, |
109 | ServiceError error = Native.DNSServiceRegister(out sd_ref, |
|
109 | auto_rename ? ServiceFlags.None : ServiceFlags.NoAutoRename, InterfaceIndex, |
110 | auto_rename ? ServiceFlags.None : ServiceFlags.NoAutoRename, InterfaceIndex, |
|
110 | Name, RegType, ReplyDomain, HostTarget, (ushort)IPAddress.HostToNetworkOrder((short)port), txt_rec_length, txt_rec, |
111 | Encoding.UTF8.GetBytes(Name), RegType, ReplyDomain, HostTarget, (ushort)IPAddress.HostToNetworkOrder((short)port), txt_rec_length, txt_rec, |
|
Line 111... | Line 112... | |||
111 | register_reply_handler, IntPtr.Zero); |
112 | register_reply_handler, IntPtr.Zero); |
|
112 | |
113 | |
|
113 | if(error != ServiceError.NoError) { |
114 | if(error != ServiceError.NoError) { |
|
Line 126... | Line 127... | |||
126 | |
127 | |
|
127 | sd_ref.Deallocate(); |
128 | sd_ref.Deallocate(); |
|
Line 128... | Line 129... | |||
128 | } |
129 | } |
|
129 | |
130 | |
|
130 | private void OnRegisterReply(ServiceRef sdRef, ServiceFlags flags, ServiceError errorCode, |
131 | private void OnRegisterReply(ServiceRef sdRef, ServiceFlags flags, ServiceError errorCode, |
|
131 | string name, string regtype, string domain, IntPtr context) |
132 | IntPtr name, string regtype, string domain, IntPtr context) |
|
Line 132... | Line 133... | |||
132 | { |
133 | { |
|
133 | RegisterServiceEventArgs args = new RegisterServiceEventArgs(); |
134 | RegisterServiceEventArgs args = new RegisterServiceEventArgs(); |
|
134 | |
135 | |
|
Line 135... | Line 136... | |||
135 | args.Service = this; |
136 | args.Service = this; |
|
136 | args.IsRegistered = false; |
137 | args.IsRegistered = false; |
|
137 | args.ServiceError = (ServiceErrorCode)errorCode; |
138 | args.ServiceError = (ServiceErrorCode)errorCode; |
|
138 | |
139 | |
|
139 | if(errorCode == ServiceError.NoError) { |
140 | if(errorCode == ServiceError.NoError) { |
|
140 | Name = name; |
141 | Name = Native.Utf8toString(name); |