863 lines
37 KiB
XML
Executable File
863 lines
37 KiB
XML
Executable File
<?xml version="1.0"?>
|
|
<doc>
|
|
<assembly>
|
|
<name>Makaretu.Dns.Multicast</name>
|
|
</assembly>
|
|
<members>
|
|
<member name="T:Makaretu.Dns.MessageEventArgs">
|
|
<summary>
|
|
The event data for <see cref="E:Makaretu.Dns.MulticastService.QueryReceived"/> or
|
|
<see cref="E:Makaretu.Dns.MulticastService.AnswerReceived"/>.
|
|
</summary>
|
|
</member>
|
|
<member name="P:Makaretu.Dns.MessageEventArgs.Message">
|
|
<summary>
|
|
The DNS message.
|
|
</summary>
|
|
<value>
|
|
The received message.
|
|
</value>
|
|
</member>
|
|
<member name="P:Makaretu.Dns.MessageEventArgs.RemoteEndPoint">
|
|
<summary>
|
|
The DNS message sender endpoint.
|
|
</summary>
|
|
<value>
|
|
The endpoint from the message was received.
|
|
</value>
|
|
</member>
|
|
<member name="P:Makaretu.Dns.MessageEventArgs.IsLegacyUnicast">
|
|
<summary>
|
|
Determines if the sender is using legacy unicast DNS.
|
|
</summary>
|
|
<value>
|
|
<b>false</b> if the sender is using port 5353.
|
|
</value>
|
|
</member>
|
|
<member name="T:Makaretu.Dns.MulticastClient">
|
|
<summary>
|
|
Performs the magic to send and receive datagrams over multicast
|
|
sockets.
|
|
</summary>
|
|
</member>
|
|
<member name="F:Makaretu.Dns.MulticastClient.MulticastPort">
|
|
<summary>
|
|
The port number assigned to Multicast DNS.
|
|
</summary>
|
|
<value>
|
|
Port number 5353.
|
|
</value>
|
|
</member>
|
|
<member name="T:Makaretu.Dns.MulticastService">
|
|
<summary>
|
|
Muticast Domain Name Service.
|
|
</summary>
|
|
<remarks>
|
|
Sends and receives DNS queries and answers via the multicast mechachism
|
|
defined in <see href="https://tools.ietf.org/html/rfc6762"/>.
|
|
<para>
|
|
Use <see cref="M:Makaretu.Dns.MulticastService.Start"/> to start listening for multicast messages.
|
|
One of the events, <see cref="E:Makaretu.Dns.MulticastService.QueryReceived"/> or <see cref="E:Makaretu.Dns.MulticastService.AnswerReceived"/>, is
|
|
raised when a <see cref="T:Makaretu.Dns.Message"/> is received.
|
|
</para>
|
|
</remarks>
|
|
</member>
|
|
<member name="F:Makaretu.Dns.MulticastService.sentMessages">
|
|
<summary>
|
|
Recently sent messages.
|
|
</summary>
|
|
</member>
|
|
<member name="F:Makaretu.Dns.MulticastService.receivedMessages">
|
|
<summary>
|
|
Recently received messages.
|
|
</summary>
|
|
</member>
|
|
<member name="F:Makaretu.Dns.MulticastService.client">
|
|
<summary>
|
|
The multicast client.
|
|
</summary>
|
|
</member>
|
|
<member name="F:Makaretu.Dns.MulticastService.unicastClientIp4">
|
|
<summary>
|
|
Use to send unicast IPv4 answers.
|
|
</summary>
|
|
</member>
|
|
<member name="F:Makaretu.Dns.MulticastService.unicastClientIp6">
|
|
<summary>
|
|
Use to send unicast IPv6 answers.
|
|
</summary>
|
|
</member>
|
|
<member name="F:Makaretu.Dns.MulticastService.networkInterfacesFilter">
|
|
<summary>
|
|
Function used for listening filtered network interfaces.
|
|
</summary>
|
|
</member>
|
|
<member name="M:Makaretu.Dns.MulticastService.#cctor">
|
|
<summary>
|
|
Set the default TTLs.
|
|
</summary>
|
|
<seealso cref="F:Makaretu.Dns.ResourceRecord.DefaultTTL"/>
|
|
<seealso cref="F:Makaretu.Dns.ResourceRecord.DefaultHostTTL"/>
|
|
</member>
|
|
<member name="E:Makaretu.Dns.MulticastService.QueryReceived">
|
|
<summary>
|
|
Raised when any local MDNS service sends a query.
|
|
</summary>
|
|
<value>
|
|
Contains the query <see cref="T:Makaretu.Dns.Message"/>.
|
|
</value>
|
|
<remarks>
|
|
Any exception throw by the event handler is simply logged and
|
|
then forgotten.
|
|
</remarks>
|
|
<seealso cref="M:Makaretu.Dns.MulticastService.SendQuery(Makaretu.Dns.Message)"/>
|
|
</member>
|
|
<member name="E:Makaretu.Dns.MulticastService.AnswerReceived">
|
|
<summary>
|
|
Raised when any link-local MDNS service responds to a query.
|
|
</summary>
|
|
<value>
|
|
Contains the answer <see cref="T:Makaretu.Dns.Message"/>.
|
|
</value>
|
|
<remarks>
|
|
Any exception throw by the event handler is simply logged and
|
|
then forgotten.
|
|
</remarks>
|
|
</member>
|
|
<member name="E:Makaretu.Dns.MulticastService.MalformedMessage">
|
|
<summary>
|
|
Raised when a DNS message is received that cannot be decoded.
|
|
</summary>
|
|
<value>
|
|
The DNS message as a byte array.
|
|
</value>
|
|
</member>
|
|
<member name="E:Makaretu.Dns.MulticastService.NetworkInterfaceDiscovered">
|
|
<summary>
|
|
Raised when one or more network interfaces are discovered.
|
|
</summary>
|
|
<value>
|
|
Contains the network interface(s).
|
|
</value>
|
|
</member>
|
|
<member name="M:Makaretu.Dns.MulticastService.#ctor(System.Func{System.Collections.Generic.IEnumerable{System.Net.NetworkInformation.NetworkInterface},System.Collections.Generic.IEnumerable{System.Net.NetworkInformation.NetworkInterface}})">
|
|
<summary>
|
|
Create a new instance of the <see cref="T:Makaretu.Dns.MulticastService"/> class.
|
|
</summary>
|
|
<param name="filter">
|
|
Multicast listener will be bound to result of filtering function.
|
|
</param>
|
|
</member>
|
|
<member name="P:Makaretu.Dns.MulticastService.UseIpv4">
|
|
<summary>
|
|
Send and receive on IPv4.
|
|
</summary>
|
|
<value>
|
|
Defaults to <b>true</b> if the OS supports it.
|
|
</value>
|
|
</member>
|
|
<member name="P:Makaretu.Dns.MulticastService.UseIpv6">
|
|
<summary>
|
|
Send and receive on IPv6.
|
|
</summary>
|
|
<value>
|
|
Defaults to <b>true</b> if the OS supports it.
|
|
</value>
|
|
</member>
|
|
<member name="P:Makaretu.Dns.MulticastService.IgnoreDuplicateMessages">
|
|
<summary>
|
|
Determines if received messages are checked for duplicates.
|
|
</summary>
|
|
<value>
|
|
<b>true</b> to ignore duplicate messages. Defaults to <b>true</b>.
|
|
</value>
|
|
<remarks>
|
|
When set, a message that has been received within the last minute
|
|
will be ignored.
|
|
</remarks>
|
|
</member>
|
|
<member name="P:Makaretu.Dns.MulticastService.NetworkInterfaceDiscoveryInterval">
|
|
<summary>
|
|
The interval for discovering network interfaces.
|
|
</summary>
|
|
<value>
|
|
Default is 2 minutes.
|
|
</value>
|
|
<remarks>
|
|
When the interval is reached a task is started to discover any
|
|
new network interfaces.
|
|
</remarks>
|
|
<seealso cref="E:Makaretu.Dns.MulticastService.NetworkInterfaceDiscovered"/>
|
|
</member>
|
|
<member name="M:Makaretu.Dns.MulticastService.GetNetworkInterfaces">
|
|
<summary>
|
|
Get the network interfaces that are useable.
|
|
</summary>
|
|
<returns>
|
|
A sequence of <see cref="T:System.Net.NetworkInformation.NetworkInterface"/>.
|
|
</returns>
|
|
<remarks>
|
|
The following filters are applied
|
|
<list type="bullet">
|
|
<item><description>interface is enabled</description></item>
|
|
<item><description>interface is not a loopback</description></item>
|
|
</list>
|
|
<para>
|
|
If no network interface is operational, then the loopback interface(s)
|
|
are included (127.0.0.1 and/or ::1).
|
|
</para>
|
|
</remarks>
|
|
</member>
|
|
<member name="M:Makaretu.Dns.MulticastService.GetIPAddresses">
|
|
<summary>
|
|
Get the IP addresses of the local machine.
|
|
</summary>
|
|
<returns>
|
|
A sequence of IP addresses of the local machine.
|
|
</returns>
|
|
<remarks>
|
|
The loopback addresses (127.0.0.1 and ::1) are NOT included in the
|
|
returned sequences.
|
|
</remarks>
|
|
</member>
|
|
<member name="M:Makaretu.Dns.MulticastService.GetLinkLocalAddresses">
|
|
<summary>
|
|
Get the link local IP addresses of the local machine.
|
|
</summary>
|
|
<returns>
|
|
A sequence of IP addresses.
|
|
</returns>
|
|
<remarks>
|
|
All IPv4 addresses are considered link local.
|
|
</remarks>
|
|
<seealso href="https://en.wikipedia.org/wiki/Link-local_address"/>
|
|
</member>
|
|
<member name="M:Makaretu.Dns.MulticastService.Start">
|
|
<summary>
|
|
Start the service.
|
|
</summary>
|
|
</member>
|
|
<member name="M:Makaretu.Dns.MulticastService.Stop">
|
|
<summary>
|
|
Stop the service.
|
|
</summary>
|
|
<remarks>
|
|
Clears all the event handlers.
|
|
</remarks>
|
|
</member>
|
|
<member name="M:Makaretu.Dns.MulticastService.ResolveAsync(Makaretu.Dns.Message,System.Threading.CancellationToken)">
|
|
<inheritdoc />
|
|
</member>
|
|
<member name="M:Makaretu.Dns.MulticastService.SendQuery(Makaretu.Dns.DomainName,Makaretu.Dns.DnsClass,Makaretu.Dns.DnsType)">
|
|
<summary>
|
|
Ask for answers about a name.
|
|
</summary>
|
|
<param name="name">
|
|
A domain name that should end with ".local", e.g. "myservice.local".
|
|
</param>
|
|
<param name="klass">
|
|
The class, defaults to <see cref="F:Makaretu.Dns.DnsClass.IN"/>.
|
|
</param>
|
|
<param name="type">
|
|
The question type, defaults to <see cref="F:Makaretu.Dns.DnsType.ANY"/>.
|
|
</param>
|
|
<remarks>
|
|
Answers to any query are obtained on the <see cref="E:Makaretu.Dns.MulticastService.AnswerReceived"/>
|
|
event.
|
|
</remarks>
|
|
<exception cref="T:System.InvalidOperationException">
|
|
When the service has not started.
|
|
</exception>
|
|
</member>
|
|
<member name="M:Makaretu.Dns.MulticastService.SendUnicastQuery(Makaretu.Dns.DomainName,Makaretu.Dns.DnsClass,Makaretu.Dns.DnsType)">
|
|
<summary>
|
|
Ask for answers about a name and accept unicast and/or broadcast response.
|
|
</summary>
|
|
<param name="name">
|
|
A domain name that should end with ".local", e.g. "myservice.local".
|
|
</param>
|
|
<param name="klass">
|
|
The class, defaults to <see cref="F:Makaretu.Dns.DnsClass.IN"/>.
|
|
</param>
|
|
<param name="type">
|
|
The question type, defaults to <see cref="F:Makaretu.Dns.DnsType.ANY"/>.
|
|
</param>
|
|
<remarks>
|
|
Send a "QU" question (unicast). The most significat bit of the Class is set.
|
|
Answers to any query are obtained on the <see cref="E:Makaretu.Dns.MulticastService.AnswerReceived"/>
|
|
event.
|
|
</remarks>
|
|
<exception cref="T:System.InvalidOperationException">
|
|
When the service has not started.
|
|
</exception>
|
|
</member>
|
|
<member name="M:Makaretu.Dns.MulticastService.SendQuery(Makaretu.Dns.Message)">
|
|
<summary>
|
|
Ask for answers.
|
|
</summary>
|
|
<param name="msg">
|
|
A query message.
|
|
</param>
|
|
<remarks>
|
|
Answers to any query are obtained on the <see cref="E:Makaretu.Dns.MulticastService.AnswerReceived"/>
|
|
event.
|
|
</remarks>
|
|
<exception cref="T:System.InvalidOperationException">
|
|
When the service has not started.
|
|
</exception>
|
|
<exception cref="T:System.ArgumentOutOfRangeException">
|
|
When the serialised <paramref name="msg"/> is too large.
|
|
</exception>
|
|
</member>
|
|
<member name="M:Makaretu.Dns.MulticastService.SendAnswer(Makaretu.Dns.Message,System.Boolean)">
|
|
<summary>
|
|
Send an answer to a query.
|
|
</summary>
|
|
<param name="answer">
|
|
The answer message.
|
|
</param>
|
|
<param name="checkDuplicate">
|
|
If <b>true</b>, then if the same <paramref name="answer"/> was
|
|
recently sent it will not be sent again.
|
|
</param>
|
|
<exception cref="T:System.InvalidOperationException">
|
|
When the service has not started.
|
|
</exception>
|
|
<exception cref="T:System.ArgumentOutOfRangeException">
|
|
When the serialised <paramref name="answer"/> is too large.
|
|
</exception>
|
|
<remarks>
|
|
<para>
|
|
The <see cref="P:Makaretu.Dns.Message.AA"/> flag is set to true,
|
|
the <see cref="P:Makaretu.Dns.Message.Id"/> set to zero and any questions are removed.
|
|
</para>
|
|
<para>
|
|
The <paramref name="answer"/> is <see cref="M:Makaretu.Dns.Message.Truncate(System.Int32)">truncated</see>
|
|
if exceeds the maximum packet length.
|
|
</para>
|
|
<para>
|
|
<paramref name="checkDuplicate"/> should always be <b>true</b> except
|
|
when <see href="https://tools.ietf.org/html/rfc6762#section-8.1">answering a probe</see>.
|
|
</para>
|
|
<note type="caution">
|
|
If possible the <see cref="M:Makaretu.Dns.MulticastService.SendAnswer(Makaretu.Dns.Message,Makaretu.Dns.MessageEventArgs,System.Boolean)"/>
|
|
method should be used, so that legacy unicast queries are supported.
|
|
</note>
|
|
</remarks>
|
|
<see cref="E:Makaretu.Dns.MulticastService.QueryReceived"/>
|
|
<seealso cref="M:Makaretu.Dns.Message.CreateResponse"/>
|
|
</member>
|
|
<member name="M:Makaretu.Dns.MulticastService.SendAnswer(Makaretu.Dns.Message,Makaretu.Dns.MessageEventArgs,System.Boolean)">
|
|
<summary>
|
|
Send an answer to a query.
|
|
</summary>
|
|
<param name="answer">
|
|
The answer message.
|
|
</param>
|
|
<param name="query">
|
|
The query that is being answered.
|
|
</param>
|
|
<param name="checkDuplicate">
|
|
If <b>true</b>, then if the same <paramref name="answer"/> was
|
|
recently sent it will not be sent again.
|
|
</param>
|
|
<exception cref="T:System.InvalidOperationException">
|
|
When the service has not started.
|
|
</exception>
|
|
<exception cref="T:System.ArgumentOutOfRangeException">
|
|
When the serialised <paramref name="answer"/> is too large.
|
|
</exception>
|
|
<remarks>
|
|
<para>
|
|
If the <paramref name="query"/> is a standard multicast query (sent to port 5353), then
|
|
<see cref="M:Makaretu.Dns.MulticastService.SendAnswer(Makaretu.Dns.Message,System.Boolean)"/> is called.
|
|
</para>
|
|
<para>
|
|
Otherwise a legacy unicast reponse is sent to sender's end point.
|
|
The <see cref="P:Makaretu.Dns.Message.AA"/> flag is set to true,
|
|
the <see cref="P:Makaretu.Dns.Message.Id"/> is set to query's ID,
|
|
the <see cref="P:Makaretu.Dns.Message.Questions"/> is set to the query's questions,
|
|
and all resource record TTLs have a max value of 10 seconds.
|
|
</para>
|
|
<para>
|
|
The <paramref name="answer"/> is <see cref="M:Makaretu.Dns.Message.Truncate(System.Int32)">truncated</see>
|
|
if exceeds the maximum packet length.
|
|
</para>
|
|
<para>
|
|
<paramref name="checkDuplicate"/> should always be <b>true</b> except
|
|
when <see href="https://tools.ietf.org/html/rfc6762#section-8.1">answering a probe</see>.
|
|
</para>
|
|
</remarks>
|
|
</member>
|
|
<member name="M:Makaretu.Dns.MulticastService.OnDnsMessage(System.Object,System.Net.Sockets.UdpReceiveResult)">
|
|
<summary>
|
|
Called by the MulticastClient when a DNS message is received.
|
|
</summary>
|
|
<param name="sender">
|
|
The <see cref="T:Makaretu.Dns.MulticastClient"/> that got the message.
|
|
</param>
|
|
<param name="result">
|
|
The received message <see cref="T:System.Net.Sockets.UdpReceiveResult"/>.
|
|
</param>
|
|
<remarks>
|
|
Decodes the <paramref name="result"/> and then raises
|
|
either the <see cref="E:Makaretu.Dns.MulticastService.QueryReceived"/> or <see cref="E:Makaretu.Dns.MulticastService.AnswerReceived"/> event.
|
|
<para>
|
|
Multicast DNS messages received with an OPCODE or RCODE other than zero
|
|
are silently ignored.
|
|
</para>
|
|
<para>
|
|
If the message cannot be decoded, then the <see cref="E:Makaretu.Dns.MulticastService.MalformedMessage"/>
|
|
event is raised.
|
|
</para>
|
|
</remarks>
|
|
</member>
|
|
<member name="M:Makaretu.Dns.MulticastService.Dispose(System.Boolean)">
|
|
<inheritdoc />
|
|
</member>
|
|
<member name="M:Makaretu.Dns.MulticastService.Dispose">
|
|
<inheritdoc />
|
|
</member>
|
|
<member name="T:Makaretu.Dns.NetworkInterfaceEventArgs">
|
|
<summary>
|
|
The event data for <see cref="E:Makaretu.Dns.MulticastService.NetworkInterfaceDiscovered"/>.
|
|
</summary>
|
|
</member>
|
|
<member name="P:Makaretu.Dns.NetworkInterfaceEventArgs.NetworkInterfaces">
|
|
<summary>
|
|
The sequece of detected network interfaces.
|
|
</summary>
|
|
<value>
|
|
A sequence of network interfaces.
|
|
</value>
|
|
</member>
|
|
<member name="T:Makaretu.Dns.RecentMessages">
|
|
<summary>
|
|
Maintains a sequence of recent messages.
|
|
</summary>
|
|
<remarks>
|
|
<b>RecentMessages</b> is used to determine if a message has already been
|
|
processed within the specified <see cref="P:Makaretu.Dns.RecentMessages.Interval"/>.
|
|
</remarks>
|
|
</member>
|
|
<member name="F:Makaretu.Dns.RecentMessages.Messages">
|
|
<summary>
|
|
Recent messages.
|
|
</summary>
|
|
<value>
|
|
The key is the Base64 encoding of the MD5 hash of
|
|
a message and the value is when the message was seen.
|
|
</value>
|
|
</member>
|
|
<member name="P:Makaretu.Dns.RecentMessages.Interval">
|
|
<summary>
|
|
The time interval used to determine if a message is recent.
|
|
</summary>
|
|
</member>
|
|
<member name="M:Makaretu.Dns.RecentMessages.TryAdd(System.Byte[])">
|
|
<summary>
|
|
Try adding a message to the recent message list.
|
|
</summary>
|
|
<param name="message">
|
|
The binary representation of a message.
|
|
</param>
|
|
<returns>
|
|
<b>true</b> if the message, did not already exist; otherwise,
|
|
<b>false</b> the message exists within the <see cref="P:Makaretu.Dns.RecentMessages.Interval"/>.
|
|
</returns>
|
|
</member>
|
|
<member name="M:Makaretu.Dns.RecentMessages.Prune">
|
|
<summary>
|
|
Remove any messages that are stale.
|
|
</summary>
|
|
<returns>
|
|
The number messages that were pruned.
|
|
</returns>
|
|
<remarks>
|
|
Anything older than an <see cref="P:Makaretu.Dns.RecentMessages.Interval"/> ago is removed.
|
|
</remarks>
|
|
</member>
|
|
<member name="M:Makaretu.Dns.RecentMessages.GetId(System.Byte[])">
|
|
<summary>
|
|
Gets a unique ID for a message.
|
|
</summary>
|
|
<param name="message">
|
|
The binary representation of a message.
|
|
</param>
|
|
<returns>
|
|
The Base64 encoding of the MD5 hash of the <paramref name="message"/>.
|
|
</returns>
|
|
</member>
|
|
<member name="T:Makaretu.Dns.ServiceDiscovery">
|
|
<summary>
|
|
DNS based Service Discovery is a way of using standard DNS programming interfaces, servers,
|
|
and packet formats to browse the network for services.
|
|
</summary>
|
|
<seealso href="https://tools.ietf.org/html/rfc6763">RFC 6763 DNS-Based Service Discovery</seealso>
|
|
</member>
|
|
<member name="F:Makaretu.Dns.ServiceDiscovery.ServiceName">
|
|
<summary>
|
|
The service discovery service name.
|
|
</summary>
|
|
<value>
|
|
The service name used to enumerate other services.
|
|
</value>
|
|
</member>
|
|
<member name="M:Makaretu.Dns.ServiceDiscovery.#ctor">
|
|
<summary>
|
|
Creates a new instance of the <see cref="T:Makaretu.Dns.ServiceDiscovery"/> class.
|
|
</summary>
|
|
</member>
|
|
<member name="M:Makaretu.Dns.ServiceDiscovery.#ctor(Makaretu.Dns.MulticastService)">
|
|
<summary>
|
|
Creates a new instance of the <see cref="T:Makaretu.Dns.ServiceDiscovery"/> class with
|
|
the specified <see cref="T:Makaretu.Dns.MulticastService"/>.
|
|
</summary>
|
|
<param name="mdns">
|
|
The underlaying <see cref="T:Makaretu.Dns.MulticastService"/> to use.
|
|
</param>
|
|
</member>
|
|
<member name="P:Makaretu.Dns.ServiceDiscovery.Mdns">
|
|
<summary>
|
|
Gets the multicasting service.
|
|
</summary>
|
|
<value>
|
|
Is used to send and recieve multicast <see cref="T:Makaretu.Dns.Message">DNS messages</see>.
|
|
</value>
|
|
</member>
|
|
<member name="P:Makaretu.Dns.ServiceDiscovery.AnswersContainsAdditionalRecords">
|
|
<summary>
|
|
Add the additional records into the answers.
|
|
</summary>
|
|
<value>
|
|
Defaults to <b>false</b>.
|
|
</value>
|
|
<remarks>
|
|
Some malformed systems, such as js-ipfs and go-ipfs, only examine
|
|
the <see cref="P:Makaretu.Dns.Message.Answers"/> and not the <see cref="P:Makaretu.Dns.Message.AdditionalRecords"/>.
|
|
Setting this to <b>true</b>, will move the additional records
|
|
into the answers.
|
|
<para>
|
|
This never done for DNS-SD answers.
|
|
</para>
|
|
</remarks>
|
|
</member>
|
|
<member name="P:Makaretu.Dns.ServiceDiscovery.NameServer">
|
|
<summary>
|
|
Gets the name server.
|
|
</summary>
|
|
<value>
|
|
Is used to answer questions.
|
|
</value>
|
|
</member>
|
|
<member name="E:Makaretu.Dns.ServiceDiscovery.ServiceDiscovered">
|
|
<summary>
|
|
Raised when a DNS-SD response is received.
|
|
</summary>
|
|
<value>
|
|
Contains the service name.
|
|
</value>
|
|
<remarks>
|
|
<b>ServiceDiscovery</b> passively monitors the network for any answers
|
|
to a DNS-SD query. When an anwser is received this event is raised.
|
|
<para>
|
|
Use <see cref="M:Makaretu.Dns.ServiceDiscovery.QueryAllServices"/> to initiate a DNS-SD question.
|
|
</para>
|
|
</remarks>
|
|
</member>
|
|
<member name="E:Makaretu.Dns.ServiceDiscovery.ServiceInstanceDiscovered">
|
|
<summary>
|
|
Raised when a servive instance is discovered.
|
|
</summary>
|
|
<value>
|
|
Contains the service instance name.
|
|
</value>
|
|
<remarks>
|
|
<b>ServiceDiscovery</b> passively monitors the network for any answers.
|
|
When an answer containing a PTR to a service instance is received
|
|
this event is raised.
|
|
</remarks>
|
|
</member>
|
|
<member name="E:Makaretu.Dns.ServiceDiscovery.ServiceInstanceShutdown">
|
|
<summary>
|
|
Raised when a servive instance is shutting down.
|
|
</summary>
|
|
<value>
|
|
Contains the service instance name.
|
|
</value>
|
|
<remarks>
|
|
<b>ServiceDiscovery</b> passively monitors the network for any answers.
|
|
When an answer containing a PTR to a service instance with a
|
|
TTL of zero is received this event is raised.
|
|
</remarks>
|
|
</member>
|
|
<member name="M:Makaretu.Dns.ServiceDiscovery.QueryAllServices">
|
|
<summary>
|
|
Asks other MDNS services to send their service names.
|
|
</summary>
|
|
<remarks>
|
|
When an answer is received the <see cref="E:Makaretu.Dns.ServiceDiscovery.ServiceDiscovered"/> event is raised.
|
|
</remarks>
|
|
</member>
|
|
<member name="M:Makaretu.Dns.ServiceDiscovery.QueryUnicastAllServices">
|
|
<summary>
|
|
Asks other MDNS services to send their service names;
|
|
accepts unicast and/or broadcast answers.
|
|
</summary>
|
|
<remarks>
|
|
When an answer is received the <see cref="E:Makaretu.Dns.ServiceDiscovery.ServiceDiscovered"/> event is raised.
|
|
</remarks>
|
|
</member>
|
|
<member name="M:Makaretu.Dns.ServiceDiscovery.QueryServiceInstances(Makaretu.Dns.DomainName)">
|
|
<summary>
|
|
Asks instances of the specified service to send details.
|
|
</summary>
|
|
<param name="service">
|
|
The service name to query. Typically of the form "_<i>service</i>._tcp".
|
|
</param>
|
|
<remarks>
|
|
When an answer is received the <see cref="E:Makaretu.Dns.ServiceDiscovery.ServiceInstanceDiscovered"/> event is raised.
|
|
</remarks>
|
|
<seealso cref="P:Makaretu.Dns.ServiceProfile.ServiceName"/>
|
|
</member>
|
|
<member name="M:Makaretu.Dns.ServiceDiscovery.QueryServiceInstances(Makaretu.Dns.DomainName,System.String)">
|
|
<summary>
|
|
Asks instances of the specified service with the subtype to send details.
|
|
</summary>
|
|
<param name="service">
|
|
The service name to query. Typically of the form "_<i>service</i>._tcp".
|
|
</param>
|
|
<param name="subtype">
|
|
The feature that is needed.
|
|
</param>
|
|
<remarks>
|
|
When an answer is received the <see cref="E:Makaretu.Dns.ServiceDiscovery.ServiceInstanceDiscovered"/> event is raised.
|
|
</remarks>
|
|
<seealso cref="P:Makaretu.Dns.ServiceProfile.ServiceName"/>
|
|
</member>
|
|
<member name="M:Makaretu.Dns.ServiceDiscovery.QueryUnicastServiceInstances(Makaretu.Dns.DomainName)">
|
|
<summary>
|
|
Asks instances of the specified service to send details.
|
|
accepts unicast and/or broadcast answers.
|
|
</summary>
|
|
<param name="service">
|
|
The service name to query. Typically of the form "_<i>service</i>._tcp".
|
|
</param>
|
|
<remarks>
|
|
When an answer is received the <see cref="E:Makaretu.Dns.ServiceDiscovery.ServiceInstanceDiscovered"/> event is raised.
|
|
</remarks>
|
|
<seealso cref="P:Makaretu.Dns.ServiceProfile.ServiceName"/>
|
|
</member>
|
|
<member name="M:Makaretu.Dns.ServiceDiscovery.Advertise(Makaretu.Dns.ServiceProfile)">
|
|
<summary>
|
|
Advertise a service profile.
|
|
</summary>
|
|
<param name="service">
|
|
The service profile.
|
|
</param>
|
|
<remarks>
|
|
Any queries for the service or service instance will be answered with
|
|
information from the profile.
|
|
<para>
|
|
Besides adding the profile's resource records to the <see cref="T:Makaretu.Dns.Resolving.Catalog"/> PTR records are
|
|
created to support DNS-SD and reverse address mapping (DNS address lookup).
|
|
</para>
|
|
</remarks>
|
|
</member>
|
|
<member name="M:Makaretu.Dns.ServiceDiscovery.Announce(Makaretu.Dns.ServiceProfile)">
|
|
<summary>
|
|
Sends an unsolicited MDNS response describing the
|
|
service profile.
|
|
</summary>
|
|
<param name="profile">
|
|
The profile to describe.
|
|
</param>
|
|
<remarks>
|
|
Sends a MDNS response <see cref="T:Makaretu.Dns.Message"/> containing the pointer
|
|
and resource records of the <paramref name="profile"/>.
|
|
<para>
|
|
To provide increased robustness against packet loss,
|
|
two unsolicited responses are sent one second apart.
|
|
</para>
|
|
</remarks>
|
|
</member>
|
|
<member name="M:Makaretu.Dns.ServiceDiscovery.Unadvertise(Makaretu.Dns.ServiceProfile)">
|
|
<summary>
|
|
Sends a goodbye message for the provided
|
|
profile and removes its pointer from the name sever.
|
|
</summary>
|
|
<param name="profile">The profile to send a goodbye message for.</param>
|
|
</member>
|
|
<member name="M:Makaretu.Dns.ServiceDiscovery.Unadvertise">
|
|
<summary>
|
|
Sends a goodbye message for each anounced service.
|
|
</summary>
|
|
</member>
|
|
<member name="M:Makaretu.Dns.ServiceDiscovery.Dispose(System.Boolean)">
|
|
<inheritdoc />
|
|
</member>
|
|
<member name="M:Makaretu.Dns.ServiceDiscovery.Dispose">
|
|
<inheritdoc />
|
|
</member>
|
|
<member name="T:Makaretu.Dns.ServiceInstanceDiscoveryEventArgs">
|
|
<summary>
|
|
The event data for <see cref="E:Makaretu.Dns.ServiceDiscovery.ServiceInstanceDiscovered"/>.
|
|
</summary>
|
|
</member>
|
|
<member name="P:Makaretu.Dns.ServiceInstanceDiscoveryEventArgs.ServiceInstanceName">
|
|
<summary>
|
|
The fully qualified name of the service instance.
|
|
</summary>
|
|
<value>
|
|
Typically of the form "<i>instance</i>._<i>service</i>._tcp.local".
|
|
</value>
|
|
<seealso cref="P:Makaretu.Dns.ServiceProfile.FullyQualifiedName"/>
|
|
</member>
|
|
<member name="T:Makaretu.Dns.ServiceInstanceShutdownEventArgs">
|
|
<summary>
|
|
The event data for <see cref="E:Makaretu.Dns.ServiceDiscovery.ServiceInstanceShutdown"/>.
|
|
</summary>
|
|
</member>
|
|
<member name="P:Makaretu.Dns.ServiceInstanceShutdownEventArgs.ServiceInstanceName">
|
|
<summary>
|
|
The fully qualified name of the service instance.
|
|
</summary>
|
|
<value>
|
|
Typically of the form "<i>instance</i>._<i>service</i>._tcp.local".
|
|
</value>
|
|
<seealso cref="P:Makaretu.Dns.ServiceProfile.FullyQualifiedName"/>
|
|
</member>
|
|
<member name="T:Makaretu.Dns.ServiceProfile">
|
|
<summary>
|
|
Defines a specific service that can be discovered.
|
|
</summary>
|
|
<seealso cref="M:Makaretu.Dns.ServiceDiscovery.Advertise(Makaretu.Dns.ServiceProfile)"/>
|
|
</member>
|
|
<member name="M:Makaretu.Dns.ServiceProfile.#ctor">
|
|
<summary>
|
|
Creates a new instance of the <see cref="T:Makaretu.Dns.ServiceProfile"/> class.
|
|
</summary>
|
|
<remarks>
|
|
All details must be filled in by the caller, especially the <see cref="P:Makaretu.Dns.ServiceProfile.Resources"/>.
|
|
</remarks>
|
|
</member>
|
|
<member name="M:Makaretu.Dns.ServiceProfile.#ctor(Makaretu.Dns.DomainName,Makaretu.Dns.DomainName,System.UInt16,System.Collections.Generic.IEnumerable{System.Net.IPAddress})">
|
|
<summary>
|
|
Creates a new instance of the <see cref="T:Makaretu.Dns.ServiceProfile"/> class
|
|
with the specified details.
|
|
</summary>
|
|
<param name="instanceName">
|
|
A unique identifier for the specific service instance.
|
|
</param>
|
|
<param name="serviceName">
|
|
The <see cref="P:Makaretu.Dns.ServiceProfile.ServiceName">name</see> of the service.
|
|
</param>
|
|
<param name="port">
|
|
The TCP/UDP port of the service.
|
|
</param>
|
|
<param name="addresses">
|
|
The IP addresses of the specific service instance. If <b>null</b> then
|
|
<see cref="M:Makaretu.Dns.MulticastService.GetIPAddresses"/> is used.
|
|
</param>
|
|
<remarks>
|
|
The SRV, TXT and A/AAAA resoruce records are added to the <see cref="P:Makaretu.Dns.ServiceProfile.Resources"/>.
|
|
</remarks>
|
|
</member>
|
|
<member name="P:Makaretu.Dns.ServiceProfile.Domain">
|
|
<summary>
|
|
The top level domain (TLD) name of the service.
|
|
</summary>
|
|
<value>
|
|
Always "local".
|
|
</value>
|
|
</member>
|
|
<member name="P:Makaretu.Dns.ServiceProfile.ServiceName">
|
|
<summary>
|
|
A unique name for the service.
|
|
</summary>
|
|
<value>
|
|
Typically of the form "_<i>service</i>._tcp".
|
|
</value>
|
|
<remarks>
|
|
It consists of a pair of DNS labels, following the
|
|
<see href="https://www.ietf.org/rfc/rfc2782.txt">SRV records</see> convention.
|
|
The first label of the pair is an underscore character (_) followed by
|
|
the <see href="https://tools.ietf.org/html/rfc6335">service name</see>.
|
|
The second label is either "_tcp" (for application
|
|
protocols that run over TCP) or "_udp" (for all others).
|
|
</remarks>
|
|
</member>
|
|
<member name="P:Makaretu.Dns.ServiceProfile.InstanceName">
|
|
<summary>
|
|
A unique identifier for the service instance.
|
|
</summary>
|
|
<value>
|
|
Some unique value.
|
|
</value>
|
|
</member>
|
|
<member name="P:Makaretu.Dns.ServiceProfile.QualifiedServiceName">
|
|
<summary>
|
|
The service name and domain.
|
|
</summary>
|
|
<value>
|
|
Typically of the form "_<i>service</i>._tcp.local".
|
|
</value>
|
|
</member>
|
|
<member name="P:Makaretu.Dns.ServiceProfile.HostName">
|
|
<summary>
|
|
The fully qualified name of the instance's host.
|
|
</summary>
|
|
<remarks>
|
|
This can be used to query the address records (A and AAAA)
|
|
of the service instance.
|
|
</remarks>
|
|
</member>
|
|
<member name="P:Makaretu.Dns.ServiceProfile.FullyQualifiedName">
|
|
<summary>
|
|
The instance name, service name and domain.
|
|
</summary>
|
|
<value>
|
|
<see cref="P:Makaretu.Dns.ServiceProfile.InstanceName"/>.<see cref="P:Makaretu.Dns.ServiceProfile.ServiceName"/>.<see cref="P:Makaretu.Dns.ServiceProfile.Domain"/>
|
|
</value>
|
|
</member>
|
|
<member name="P:Makaretu.Dns.ServiceProfile.Resources">
|
|
<summary>
|
|
DNS resource records that are used to locate the service instance.
|
|
</summary>
|
|
<value>
|
|
More infomation about the service.
|
|
</value>
|
|
<remarks>
|
|
All records should have the <see cref="P:Makaretu.Dns.ResourceRecord.Name"/> equal
|
|
to the <see cref="P:Makaretu.Dns.ServiceProfile.FullyQualifiedName"/> or the <see cref="P:Makaretu.Dns.ServiceProfile.HostName"/>.
|
|
<para>
|
|
At a minimum the <see cref="T:Makaretu.Dns.SRVRecord"/> and <see cref="T:Makaretu.Dns.TXTRecord"/>
|
|
records must be present.
|
|
Typically <see cref="T:Makaretu.Dns.AddressRecord">address records</see>
|
|
are also present and are associaed with <see cref="P:Makaretu.Dns.ServiceProfile.HostName"/>.
|
|
</para>
|
|
</remarks>
|
|
</member>
|
|
<member name="P:Makaretu.Dns.ServiceProfile.Subtypes">
|
|
<summary>
|
|
A list of service features implemented by the service instance.
|
|
</summary>
|
|
<value>
|
|
The default is an empty list.
|
|
</value>
|
|
<seealso href="https://tools.ietf.org/html/rfc6763#section-7.1"/>
|
|
</member>
|
|
<member name="M:Makaretu.Dns.ServiceProfile.AddProperty(System.String,System.String)">
|
|
<summary>
|
|
Add a property of the service to the <see cref="T:Makaretu.Dns.TXTRecord"/>.
|
|
</summary>
|
|
<param name="key">
|
|
The name of the property.
|
|
</param>
|
|
<param name="value">
|
|
The value of the property.
|
|
</param>
|
|
</member>
|
|
</members>
|
|
</doc>
|