123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862 |
- <?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>
|