nim-libp2p/master/libp2p/services/wildcardresolverservice.html

437 lines
30 KiB
HTML

<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<!-- This file is generated by Nim. -->
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<!-- Favicon -->
<link rel="shortcut icon" href="data:image/x-icon;base64,AAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AAAAAAUAAAAF////AP///wD///8A////AP///wD///8A////AP///wD///8A////AAAAAAIAAABbAAAAlQAAAKIAAACbAAAAmwAAAKIAAACVAAAAWwAAAAL///8A////AP///wD///8A////AAAAABQAAADAAAAAYwAAAA3///8A////AP///wD///8AAAAADQAAAGMAAADAAAAAFP///wD///8A////AP///wAAAACdAAAAOv///wD///8A////AP///wD///8A////AP///wD///8AAAAAOgAAAJ3///8A////AP///wAAAAAnAAAAcP///wAAAAAoAAAASv///wD///8A////AP///wAAAABKAAAAKP///wAAAABwAAAAJ////wD///8AAAAAgQAAABwAAACIAAAAkAAAAJMAAACtAAAAFQAAABUAAACtAAAAkwAAAJAAAACIAAAAHAAAAIH///8A////AAAAAKQAAACrAAAAaP///wD///8AAAAARQAAANIAAADSAAAARf///wD///8AAAAAaAAAAKsAAACk////AAAAADMAAACcAAAAnQAAABj///8A////AP///wAAAAAYAAAAGP///wD///8A////AAAAABgAAACdAAAAnAAAADMAAAB1AAAAwwAAAP8AAADpAAAAsQAAAE4AAAAb////AP///wAAAAAbAAAATgAAALEAAADpAAAA/wAAAMMAAAB1AAAAtwAAAOkAAAD/AAAA/wAAAP8AAADvAAAA3gAAAN4AAADeAAAA3gAAAO8AAAD/AAAA/wAAAP8AAADpAAAAtwAAAGUAAAA/AAAA3wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAADfAAAAPwAAAGX///8A////AAAAAEgAAADtAAAAvwAAAL0AAADGAAAA7wAAAO8AAADGAAAAvQAAAL8AAADtAAAASP///wD///8A////AP///wD///8AAAAAO////wD///8A////AAAAAIcAAACH////AP///wD///8AAAAAO////wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A//8AAP//AAD4HwAA7/cAAN/7AAD//wAAoYUAAJ55AACf+QAAh+EAAAAAAADAAwAA4AcAAP5/AAD//wAA//8AAA=="/>
<link rel="icon" type="image/png" sizes="32x32" href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAA3XAAAN1wFCKJt4AAAAB3RJTUUH4QQQEwksSS9ZWwAAAk1JREFUWMPtll2ITVEUx39nn/O7Y5qR8f05wtCUUr6ZIS++8pEnkZInPImneaCQ5METNdOkeFBKUhMPRIkHKfEuUZSUlGlKPN2TrgfncpvmnntnmlEyq1Z7t89/rf9a6+y99oZxGZf/XeIq61EdtgKXgdXA0xrYAvBjOIF1AI9zvjcC74BSpndrJPkBWDScTF8Aa4E3wDlgHbASaANmVqlcCnwHvgDvgVfAJ+AikAAvgfVZwLnSVZHZaOuKoQi3ZOMi4NkYkpe1p4J7A8BpYAD49hfIy/oqG0+hLomiKP2L5L+1ubn5115S+3OAn4EnwBlgMzCjyt6ZAnQCJ4A7wOs88iRJHvw50HoujuPBoCKwHWiosy8MdfZnAdcHk8dxXFJ3VQbQlCTJvRBCGdRbD4M6uc5glpY3eAihpN5S5w12diSEcCCEcKUO4ljdr15T76ur1FDDLIQQ3qv71EdDOe3Kxj3leRXyk+pxdWnFWod6Wt2bY3de3aSuUHcPBVimHs7mK9WrmeOF6lR1o9qnzskh2ar2qm1qizpfXaPeVGdlmGN5pb09qMxz1Xb1kLqgzn1RyH7JUXW52lr5e/Kqi9qpto7V1atuUzfnARrV7jEib1T76gG2qxdGmXyiekkt1GswPTtek0aBfJp6YySGBfWg2tPQ0FAYgf1stUfdmdcjarbYJEniKIq6gY/Aw+zWHAC+p2labGpqiorFYgGYCEzN7oQdQClN07O1/EfDyGgC0ALMBdYAi4FyK+4H3gLPsxfR1zRNi+NP7nH5J+QntnXe5B5mpfQAAAAASUVORK5CYII=">
<!-- Google fonts -->
<link href='https://fonts.googleapis.com/css?family=Lato:400,600,900' rel='stylesheet' type='text/css'/>
<link href='https://fonts.googleapis.com/css?family=Source+Code+Pro:400,500,600' rel='stylesheet' type='text/css'/>
<!-- CSS -->
<title>libp2p/services/wildcardresolverservice</title>
<link rel="stylesheet" type="text/css" href="../../nimdoc.out.css">
<script type="text/javascript" src="../../dochack.js"></script>
<script type="text/javascript">
function main() {
var pragmaDots = document.getElementsByClassName("pragmadots");
for (var i = 0; i < pragmaDots.length; i++) {
pragmaDots[i].onclick = function(event) {
// Hide tease
event.target.parentNode.style.display = "none";
// Show actual
event.target.parentNode.nextElementSibling.style.display = "inline";
}
}
function switchTheme(e) {
if (e.target.checked) {
document.documentElement.setAttribute('data-theme', 'dark');
localStorage.setItem('theme', 'dark');
} else {
document.documentElement.setAttribute('data-theme', 'light');
localStorage.setItem('theme', 'light');
}
}
const toggleSwitch = document.querySelector('.theme-switch input[type="checkbox"]');
if (toggleSwitch !== null) {
toggleSwitch.addEventListener('change', switchTheme, false);
}
var currentTheme = localStorage.getItem('theme');
if (!currentTheme && window.matchMedia('(prefers-color-scheme: dark)').matches) {
currentTheme = 'dark';
}
if (currentTheme) {
document.documentElement.setAttribute('data-theme', currentTheme);
if (currentTheme === 'dark' && toggleSwitch !== null) {
toggleSwitch.checked = true;
}
}
}
window.addEventListener('DOMContentLoaded', main);
</script>
</head>
<body>
<div class="document" id="documentId">
<div class="container">
<h1 class="title">libp2p/services/wildcardresolverservice</h1>
<div class="row">
<div class="three columns">
<div class="theme-switch-wrapper">
<label class="theme-switch" for="checkbox">
<input type="checkbox" id="checkbox" />
<div class="slider round"></div>
</label>
&nbsp;&nbsp;&nbsp; <em>Dark Mode</em>
</div>
<div id="global-links">
<ul class="simple">
<li>
<a href="../../theindex.html">Index</a>
</li>
</ul>
</div>
<div id="searchInputDiv">
Search: <input type="text" id="searchInput"
onkeyup="search()" />
</div>
<div>
Group by:
<select onchange="groupBy(this.value)">
<option value="section">Section</option>
<option value="type">Type</option>
</select>
</div>
<script type="text/javascript">
function main2() {
// Create the slider
var firstSlider = document.getElementsByClassName("theme-switch-wrapper")[0];
var newSlider = document.createRange().createContextualFragment(`
<div class="theme-switch-wrapper">
<label class="theme-switch" for="internalcheckbox">
<input type="checkbox" id="internalcheckbox">
<div class="slider round"></div>
</label>
&nbsp;&nbsp;&nbsp; <em>Internal</em>
</div>
`);
var sliderInst = firstSlider.after(newSlider);
// Restore slider state from storage
var currentMode = localStorage.getItem('privateMode');
if (currentMode == "private") {
document.getElementById("internalcheckbox").checked = true;
} else {
hidePrivateProcs();
}
document.getElementById("internalcheckbox").onclick = togglePrivateProcs;
}
function hidePrivateProcs() {
var toHide = document.getElementsByClassName("tohide");
for (var i = 0; i < toHide.length; i++) {
var pragmas = toHide[i].querySelectorAll("span.Identifier");
var public = false;
for (var z = 0; z < pragmas.length; z++) {
if (pragmas[z].innerText == "public") {
public = true;
break;
}
}
if (public == false) {
toHide[i].style.display = "none";
toHide[i].classList.add("hidden");
links = document.querySelectorAll("a[href='#" + encodeURIComponent(toHide[i].id) + "']");
for (var y = 0; y < links.length; y++) {
links[y].parentNode.style.display = "none";
links[y].parentNode.classList.add("hidden");
}
}
}
// TOC
var nestedSections = document.getElementsByClassName("nested-toc-section");
for (var i = 0; i < nestedSections.length; i++) {
if (nestedSections[i].querySelectorAll("li:not(.hidden)").length == 0) {
nestedSections[i].style.display = "none";
nestedSections[i].classList.add("hidden");
}
}
var sections = document.getElementsByClassName("simple-toc-section");
for (var i = 0; i < sections.length; i++) {
if (sections[i].querySelectorAll(".nested-toc-section:not(.hidden)").length == 0) {
sections[i].parentNode.style.display = "none";
sections[i].parentNode.classList.add("hidden");
}
}
// Sections
var sections = document.getElementsByClassName("section");
for (var i = 0; i < sections.length; i++) {
if (sections[i].querySelectorAll(".item > div").length == 0) continue;
if (sections[i].querySelectorAll(".item > div:not(.hidden)").length == 0) {
sections[i].style.display = "none";
sections[i].classList.add("hidden");
}
}
}
function showPrivateProcs() {
var toHide = Array.from(document.getElementsByClassName("hidden"));
for (var i = 0; i < toHide.length; i++) {
toHide[i].style.display = "";
toHide[i].classList.remove("hidden");
}
}
function togglePrivateProcs() {
if (document.getElementById("internalcheckbox").checked) {
localStorage.setItem('privateMode', 'private');
showPrivateProcs();
} else {
localStorage.setItem('privateMode', 'public');
hidePrivateProcs();
}
}
window.addEventListener("DOMContentLoaded", main2);
</script>
<ul class="simple simple-toc" id="toc-list">
<li>
<a class="reference reference-toplevel" href="#6" id="56">Imports</a>
<ul class="simple simple-toc-section">
</ul>
</li>
<li>
<a class="reference reference-toplevel" href="#7" id="57">Types</a>
<ul class="simple simple-toc-section">
<li><a class="reference" href="#NetworkInterfaceProvider"
title="NetworkInterfaceProvider = proc (addrFamily: AddressFamily): seq[
InterfaceAddress] {.gcsafe, raises: [].}">NetworkInterfaceProvider</a></li>
<li><a class="reference" href="#WildcardAddressResolverService"
title="WildcardAddressResolverService = ref object of Service
networkInterfaceProvider: NetworkInterfaceProvider ## Provides a list of network addresses.
addressMapper: AddressMapper ## An implementation of an address mapper that takes a list of listen addresses and expands each wildcard address
## to the respective list of interface addresses. As an example, if the listen address is 0.0.0.0:4001
## and the machine has 2 interfaces with IPs 172.217.11.174 and 64.233.177.113, the address mapper will
## expand the wildcard address to 172.217.11.174:4001 and 64.233.177.113:4001.">WildcardAddressResolverService</a></li>
</ul>
</li>
<li>
<a class="reference reference-toplevel" href="#12" id="62">Procs</a>
<ul class="simple simple-toc-section">
<ul class="simple nested-toc-section">getProtocolArgument
<li><a class="reference" href="#getProtocolArgument%2CMultiAddress%2CMultiCodec"
title="getProtocolArgument(ma: MultiAddress; codec: MultiCodec): MaResult[seq[byte]]">getProtocolArgument(ma: MultiAddress; codec: MultiCodec): MaResult[seq[byte]]</a></li>
</ul>
<ul class="simple nested-toc-section">new
<li><a class="reference" href="#new%2Ctypedesc%5BWildcardAddressResolverService%5D%2CNetworkInterfaceProvider"
title="new(T: typedesc[WildcardAddressResolverService];
networkInterfaceProvider: NetworkInterfaceProvider = getAddresses): T:type">new(T: typedesc[WildcardAddressResolverService];
networkInterfaceProvider: NetworkInterfaceProvider = getAddresses): T:type</a></li>
</ul>
</ul>
</li>
<li>
<a class="reference reference-toplevel" href="#14" id="64">Methods</a>
<ul class="simple simple-toc-section">
<ul class="simple nested-toc-section">run
<li><a class="reference" href="#run.e%2CWildcardAddressResolverService%2CSwitch"
title="run(self: WildcardAddressResolverService; switch: Switch): Future[void]">run(self: WildcardAddressResolverService; switch: Switch): Future[void]</a></li>
</ul>
<ul class="simple nested-toc-section">setup
<li><a class="reference" href="#setup.e%2CWildcardAddressResolverService%2CSwitch"
title="setup(self: WildcardAddressResolverService; switch: Switch): Future[bool]">setup(self: WildcardAddressResolverService; switch: Switch): Future[bool]</a></li>
</ul>
<ul class="simple nested-toc-section">stop
<li><a class="reference" href="#stop.e%2CWildcardAddressResolverService%2CSwitch"
title="stop(self: WildcardAddressResolverService; switch: Switch): Future[bool]">stop(self: WildcardAddressResolverService; switch: Switch): Future[bool]</a></li>
</ul>
</ul>
</li>
</ul>
</div>
&nbsp;&nbsp;<a
href="https://github.com/vacp2p/nim-libp2p/tree/master/libp2p/services/wildcardresolverservice.nim#L1"
class="link-seesrc" target="_blank">Source</a>
&nbsp;&nbsp;<a href="https://github.com/vacp2p/nim-libp2p/edit/devel/libp2p/services/wildcardresolverservice.nim#L1" class="link-seesrc" target="_blank" >Edit</a>
<div class="nine columns" id="content">
<div id="tocRoot"></div>
<p class="module-desc"></p>
<div class="section" id="6">
<h1><a class="toc-backref" href="#6">Imports</a></h1>
<dl class="item">
<a class="reference external" href="../multiaddress.html">../multiaddress</a>, <a class="reference external" href="../multicodec.html">../multicodec</a>, <a class="reference external" href="../switch.html">../switch</a>
</dl></div>
<div class="section" id="7">
<h1><a class="toc-backref" href="#7">Types</a></h1>
<dl class="item">
<div id="NetworkInterfaceProvider" class="tohide">
<dt><pre><a href="wildcardresolverservice.html#NetworkInterfaceProvider"><span class="Identifier">NetworkInterfaceProvider</span></a> <span class="Other">=</span> <span class="Keyword">proc</span> <span class="Other">(</span><span class="Identifier">addrFamily</span><span class="Other">:</span> <span class="Identifier">AddressFamily</span><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">seq</span><span class="Other">[</span>
<span class="Identifier">InterfaceAddress</span><span class="Other">]</span> {.<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">gcsafe</span><span class="Other">,</span> <span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
<dd>
&nbsp;&nbsp;<a
href="https://github.com/vacp2p/nim-libp2p/tree/master/libp2p/services/wildcardresolverservice.nim#L35"
class="link-seesrc" target="_blank">Source</a>
&nbsp;&nbsp;<a href="https://github.com/vacp2p/nim-libp2p/edit/devel/libp2p/services/wildcardresolverservice.nim#L35" class="link-seesrc" target="_blank" >Edit</a>
</dd>
</div>
<div id="WildcardAddressResolverService" class="tohide">
<dt><pre><a href="wildcardresolverservice.html#WildcardAddressResolverService"><span class="Identifier">WildcardAddressResolverService</span></a> <span class="Other">=</span> <span class="Keyword">ref</span> <span class="Keyword">object</span> <span class="Keyword">of</span> <a href="../transports/transport.html#Service"><span class="Identifier">Service</span></a>
<span class="Identifier">networkInterfaceProvider</span><span class="Other">:</span> <a href="wildcardresolverservice.html#NetworkInterfaceProvider"><span class="Identifier">NetworkInterfaceProvider</span></a> <span class="Comment">## Provides a list of network addresses.</span>
<span class="Identifier">addressMapper</span><span class="Other">:</span> <a href="../peerinfo.html#AddressMapper"><span class="Identifier">AddressMapper</span></a> <span class="Comment">## An implementation of an address mapper that takes a list of listen addresses and expands each wildcard address</span>
<span class="Comment">## to the respective list of interface addresses. As an example, if the listen address is 0.0.0.0:4001</span>
<span class="Comment">## and the machine has 2 interfaces with IPs 172.217.11.174 and 64.233.177.113, the address mapper will</span>
<span class="Comment">## expand the wildcard address to 172.217.11.174:4001 and 64.233.177.113:4001.</span>
</pre></dt>
<dd>
Service used to resolve wildcard addresses of the type &quot;0.0.0.0&quot; for IPv4 or &quot;::&quot; for IPv6. When used with a <tt class="docutils literal"><span class="pre"><span class="Identifier">Switch</span></span></tt>, this service will be automatically set up and stopped when the switch starts and stops. This is facilitated by adding the service to the switch's list of services using the <tt class="docutils literal"><span class="pre"><span class="Operator">.</span><span class="Identifier">withServices</span><span class="Punctuation">(</span><span class="Operator">@</span><span class="Punctuation">[</span><span class="Identifier">svc</span><span class="Punctuation">]</span><span class="Punctuation">)</span></span></tt> method in the <tt class="docutils literal"><span class="pre"><span class="Identifier">SwitchBuilder</span></span></tt>.
&nbsp;&nbsp;<a
href="https://github.com/vacp2p/nim-libp2p/tree/master/libp2p/services/wildcardresolverservice.nim#L22"
class="link-seesrc" target="_blank">Source</a>
&nbsp;&nbsp;<a href="https://github.com/vacp2p/nim-libp2p/edit/devel/libp2p/services/wildcardresolverservice.nim#L22" class="link-seesrc" target="_blank" >Edit</a>
</dd>
</div>
</dl></div>
<div class="section" id="12">
<h1><a class="toc-backref" href="#12">Procs</a></h1>
<dl class="item">
<div id="getProtocolArgument,MultiAddress,MultiCodec" class="tohide">
<dt><pre><span class="Keyword">proc</span> <a href="#getProtocolArgument%2CMultiAddress%2CMultiCodec"><span class="Identifier">getProtocolArgument</span></a><span class="Other">(</span><span class="Identifier">ma</span><span class="Other">:</span> <a href="../multiaddress.html#MultiAddress"><span class="Identifier">MultiAddress</span></a><span class="Other">;</span> <span class="Identifier">codec</span><span class="Other">:</span> <a href="../multicodec.html#MultiCodec"><span class="Identifier">MultiCodec</span></a><span class="Other">)</span><span class="Other">:</span> <a href="../multiaddress.html#MaResult"><span class="Identifier">MaResult</span></a><span class="Other">[</span>
<span class="Identifier">seq</span><span class="Other">[</span><span class="Identifier">byte</span><span class="Other">]</span><span class="Other">]</span> {.<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
<dd>
&nbsp;&nbsp;<a
href="https://github.com/vacp2p/nim-libp2p/tree/master/libp2p/services/wildcardresolverservice.nim#L75"
class="link-seesrc" target="_blank">Source</a>
&nbsp;&nbsp;<a href="https://github.com/vacp2p/nim-libp2p/edit/devel/libp2p/services/wildcardresolverservice.nim#L75" class="link-seesrc" target="_blank" >Edit</a>
</dd>
</div>
<div id="new,typedesc[WildcardAddressResolverService],NetworkInterfaceProvider" class="tohide">
<dt><pre><span class="Keyword">proc</span> <a href="#new%2Ctypedesc%5BWildcardAddressResolverService%5D%2CNetworkInterfaceProvider"><span class="Identifier">new</span></a><span class="Other">(</span><span class="Identifier">T</span><span class="Other">:</span> <span class="Identifier">typedesc</span><span class="Other">[</span><a href="wildcardresolverservice.html#WildcardAddressResolverService"><span class="Identifier">WildcardAddressResolverService</span></a><span class="Other">]</span><span class="Other">;</span>
<span class="Identifier">networkInterfaceProvider</span><span class="Other">:</span> <a href="wildcardresolverservice.html#NetworkInterfaceProvider"><span class="Identifier">NetworkInterfaceProvider</span></a> <span class="Other">=</span> <span class="Identifier">getAddresses</span><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">T:type</span> {.
<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
<dd>
<p>This procedure initializes a new <tt class="docutils literal"><span class="pre"><span class="Identifier">WildcardAddressResolverService</span></span></tt> with the provided network interface provider.</p>
<p>Parameters:</p>
<ul class="simple"><li><tt class="docutils literal"><span class="pre"><span class="Identifier">T</span></span></tt>: The type descriptor for <tt class="docutils literal"><span class="pre"><span class="Identifier">WildcardAddressResolverService</span></span></tt>.</li>
<li><tt class="docutils literal"><span class="pre"><span class="Identifier">networkInterfaceProvider</span></span></tt>: A provider that offers access to network interfaces. Defaults to a new instance of <tt class="docutils literal"><span class="pre"><span class="Identifier">NetworkInterfaceProvider</span></span></tt>.</li>
</ul>
<p>Returns:</p>
<ul class="simple"><li>A new instance of <tt class="docutils literal"><span class="pre"><span class="Identifier">WildcardAddressResolverService</span></span></tt>.</li>
</ul>
&nbsp;&nbsp;<a
href="https://github.com/vacp2p/nim-libp2p/tree/master/libp2p/services/wildcardresolverservice.nim#L61"
class="link-seesrc" target="_blank">Source</a>
&nbsp;&nbsp;<a href="https://github.com/vacp2p/nim-libp2p/edit/devel/libp2p/services/wildcardresolverservice.nim#L61" class="link-seesrc" target="_blank" >Edit</a>
</dd>
</div>
</dl></div>
<div class="section" id="14">
<h1><a class="toc-backref" href="#14">Methods</a></h1>
<dl class="item">
<div id="run.e,WildcardAddressResolverService,Switch" class="tohide">
<dt><pre><span class="Keyword">method</span> <a href="#run.e%2CWildcardAddressResolverService%2CSwitch"><span class="Identifier">run</span></a><span class="Other">(</span><span class="Identifier">self</span><span class="Other">:</span> <a href="wildcardresolverservice.html#WildcardAddressResolverService"><span class="Identifier">WildcardAddressResolverService</span></a><span class="Other">;</span> <span class="Identifier">switch</span><span class="Other">:</span> <a href="../transports/transport.html#Switch"><span class="Identifier">Switch</span></a><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">Future</span><span class="Other">[</span><span class="Identifier">void</span><span class="Other">]</span> {.
<span class="Identifier">public</span><span class="Other">(</span><span class="Other">)</span><span class="Other">,</span> <span class="Identifier">stackTrace</span><span class="Other">:</span> <span class="DecNumber">false</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">gcsafe</span><span class="Other">,</span> <span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
<span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Identifier">RootEffect</span><span class="Other">]</span></span>.}</pre></dt>
<dd>
<p>Runs the WildcardAddressResolverService for a given switch.</p>
<p>It updates the peer information for the provided switch by running the registered address mapper. Any other address mappers that are registered with the switch will also be run. </p>
&nbsp;&nbsp;<a
href="https://github.com/vacp2p/nim-libp2p/tree/master/libp2p/services/wildcardresolverservice.nim#L173"
class="link-seesrc" target="_blank">Source</a>
&nbsp;&nbsp;<a href="https://github.com/vacp2p/nim-libp2p/edit/devel/libp2p/services/wildcardresolverservice.nim#L173" class="link-seesrc" target="_blank" >Edit</a>
</dd>
</div>
<div id="setup.e,WildcardAddressResolverService,Switch" class="tohide">
<dt><pre><span class="Keyword">method</span> <a href="#setup.e%2CWildcardAddressResolverService%2CSwitch"><span class="Identifier">setup</span></a><span class="Other">(</span><span class="Identifier">self</span><span class="Other">:</span> <a href="wildcardresolverservice.html#WildcardAddressResolverService"><span class="Identifier">WildcardAddressResolverService</span></a><span class="Other">;</span> <span class="Identifier">switch</span><span class="Other">:</span> <a href="../transports/transport.html#Switch"><span class="Identifier">Switch</span></a><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">Future</span><span class="Other">[</span><span class="Identifier">bool</span><span class="Other">]</span> {.
<span class="Identifier">stackTrace</span><span class="Other">:</span> <span class="DecNumber">false</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">gcsafe</span><span class="Other">,</span> <span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
<span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Identifier">RootEffect</span><span class="Other">]</span></span>.}</pre></dt>
<dd>
<p>Sets up the <tt class="docutils literal"><span class="pre"><span class="Identifier">WildcardAddressResolverService</span></span></tt>.</p>
<p>This method adds the address mapper to the peer's list of address mappers.</p>
<p>Parameters:</p>
<ul class="simple"><li><tt class="docutils literal"><span class="pre"><span class="Identifier">self</span></span></tt>: The instance of <tt class="docutils literal"><span class="pre"><span class="Identifier">WildcardAddressResolverService</span></span></tt> being set up.</li>
<li><tt class="docutils literal"><span class="pre"><span class="Identifier">switch</span></span></tt>: The switch context in which the service operates.</li>
</ul>
<p>Returns:</p>
<ul class="simple"><li>A <tt class="docutils literal"><span class="pre"><span class="Identifier">Future</span><span class="Punctuation">[</span><span class="Identifier">bool</span><span class="Punctuation">]</span></span></tt> that resolves to <tt class="docutils literal"><span class="pre"><span class="Identifier">true</span></span></tt> if the setup was successful, otherwise <tt class="docutils literal"><span class="pre"><span class="Identifier">false</span></span></tt>.</li>
</ul>
&nbsp;&nbsp;<a
href="https://github.com/vacp2p/nim-libp2p/tree/master/libp2p/services/wildcardresolverservice.nim#L151"
class="link-seesrc" target="_blank">Source</a>
&nbsp;&nbsp;<a href="https://github.com/vacp2p/nim-libp2p/edit/devel/libp2p/services/wildcardresolverservice.nim#L151" class="link-seesrc" target="_blank" >Edit</a>
</dd>
</div>
<div id="stop.e,WildcardAddressResolverService,Switch" class="tohide">
<dt><pre><span class="Keyword">method</span> <a href="#stop.e%2CWildcardAddressResolverService%2CSwitch"><span class="Identifier">stop</span></a><span class="Other">(</span><span class="Identifier">self</span><span class="Other">:</span> <a href="wildcardresolverservice.html#WildcardAddressResolverService"><span class="Identifier">WildcardAddressResolverService</span></a><span class="Other">;</span> <span class="Identifier">switch</span><span class="Other">:</span> <a href="../transports/transport.html#Switch"><span class="Identifier">Switch</span></a><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">Future</span><span class="Other">[</span><span class="Identifier">bool</span><span class="Other">]</span> {.
<span class="Identifier">public</span><span class="Other">(</span><span class="Other">)</span><span class="Other">,</span> <span class="Identifier">stackTrace</span><span class="Other">:</span> <span class="DecNumber">false</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">gcsafe</span><span class="Other">,</span> <span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
<span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Identifier">RootEffect</span><span class="Other">]</span></span>.}</pre></dt>
<dd>
<p>Stops the WildcardAddressResolverService.</p>
<p>Handles the shutdown process of the WildcardAddressResolverService for a given switch. It removes the address mapper from the switch's list of address mappers. It then updates the peer information for the provided switch. Any wildcard address wont be resolved anymore.</p>
<p>Parameters:</p>
<ul class="simple"><li><tt class="docutils literal"><span class="pre"><span class="Identifier">self</span></span></tt>: The instance of the WildcardAddressResolverService.</li>
<li><tt class="docutils literal"><span class="pre"><span class="Identifier">switch</span></span></tt>: The Switch object associated with the service.</li>
</ul>
<p>Returns:</p>
<ul class="simple"><li>A future that resolves to <tt class="docutils literal"><span class="pre"><span class="Identifier">true</span></span></tt> if the service was successfully stopped, otherwise <tt class="docutils literal"><span class="pre"><span class="Identifier">false</span></span></tt>.</li>
</ul>
&nbsp;&nbsp;<a
href="https://github.com/vacp2p/nim-libp2p/tree/master/libp2p/services/wildcardresolverservice.nim#L184"
class="link-seesrc" target="_blank">Source</a>
&nbsp;&nbsp;<a href="https://github.com/vacp2p/nim-libp2p/edit/devel/libp2p/services/wildcardresolverservice.nim#L184" class="link-seesrc" target="_blank" >Edit</a>
</dd>
</div>
</dl></div>
</div>
</div>
<div class="row">
<div class="twelve-columns footer">
<span class="nim-sprite"></span>
<br/>
<small style="color: var(--hint);">Made with Nim. Generated: 2024-08-01 15:52:04 UTC</small>
</div>
</div>
</div>
</div>
</body>
</html>