Module: sip-router
Branch: master
Commit: b4c3b811d33846dd0900922bbe5a3d9472839663
URL:
http://git.sip-router.org/cgi-bin/gitweb.cgi/sip-router/?a=commit;h=b4c3b81…
Author: Daniel-Constantin Mierla <miconda(a)gmail.com>
Committer: Daniel-Constantin Mierla <miconda(a)gmail.com>
Date: Mon Jul 15 23:45:33 2013 +0200
ipops: documented dns_query()
---
modules/ipops/README | 36 +++++++++++++++++++-
modules/ipops/doc/ipops_admin.xml | 66 +++++++++++++++++++++++++++++++++---
2 files changed, 94 insertions(+), 8 deletions(-)
diff --git a/modules/ipops/README b/modules/ipops/README
index cd6118e..982db00 100644
--- a/modules/ipops/README
+++ b/modules/ipops/README
@@ -38,6 +38,7 @@ I
4.10. is_in_subnet (ip, subnet)
4.11. dns_sys_match_ip(hostname, ipaddr)
4.12. dns_int_match_ip(hostname, ipaddr)
+ 4.13. dns_query(hostname, pvid)
List of Examples
@@ -53,6 +54,7 @@ I
1.10. is_in_subnet usage
1.11. dns_sys_match_ip usage
1.12. dns_int_match_ip usage
+ 1.13. dns_query usage
Chapter 1. Admin Guide
@@ -79,6 +81,7 @@ Chapter 1. Admin Guide
4.10. is_in_subnet (ip, subnet)
4.11. dns_sys_match_ip(hostname, ipaddr)
4.12. dns_int_match_ip(hostname, ipaddr)
+ 4.13. dns_query(hostname, pvid)
1. Overview
@@ -132,6 +135,7 @@ Chapter 1. Admin Guide
4.10. is_in_subnet (ip, subnet)
4.11. dns_sys_match_ip(hostname, ipaddr)
4.12. dns_int_match_ip(hostname, ipaddr)
+ 4.13. dns_query(hostname, pvid)
4.1. is_ip (ip)
@@ -348,9 +352,9 @@ if (is_in_subnet("10.0.123.123", "10.0.123.1/24"))
{
providing load balancing through DNS).
Parameters:
- * ipaddr - string or pseudo-variable containing the ip address.
* hostname - string or pseudo-variable containing the hostname. The
resulting IP addresses from DNS query are compared with ipaddr.
+ * ipaddr - string or pseudo-variable containing the ip address.
This function can be used from ANY_ROUTE.
@@ -372,9 +376,9 @@ if (!dns_sys_match_ip("myhost.com", "1.2.3.4")) {
in different address famililies (IPv4/6).
Parameters:
- * ipaddr - string or pseudo-variable containing the ip address.
* hostname - string or pseudo-variable containing the hostname. The
resulting IP addresses from DNS query are compared with ipaddr.
+ * ipaddr - string or pseudo-variable containing the ip address.
This function can be used from ANY_ROUTE.
@@ -384,3 +388,31 @@ if (!dns_int_match_ip("myhost.com", "1.2.3.4"))
{
xdbg("ip address not associated with hostname\n");
}
...
+
+4.13. dns_query(hostname, pvid)
+
+ Store the IP addresses and their type that correspond to hostname in a
+ config variable $dns(pvid=>key).
+
+ Parameters:
+ * hostname - string or pseudo-variable containing the hostname. The
+ resulting IP addresses from DNS query are compared with ipaddr.
+ * pvid - container id for script variable.
+
+ This function can be used from ANY_ROUTE.
+
+ Example 1.13. dns_query usage
+...
+if(dns_query("test.com", "xyz"))
+{
+ xlog(" number of addresses: $dns(xyz=>count)\n");
+ xlog(" ipv4 address found: $dns(xyz=>ipv4)\n");
+ xlog(" ipv6 address found: $dns(xyz=>ipv6)\n");
+ $var(i) = 0;
+ while($var(i)<$dns(xyz=>count)) {
+ xlog(" #[$var(i)] type ($dns(xyz=>type[$var(i)]))"
+ " addr [$dns(xyz=>addr[$var(i)])]\n");
+ $var(i) = $var(i) + 1;
+ }
+}
+...
diff --git a/modules/ipops/doc/ipops_admin.xml b/modules/ipops/doc/ipops_admin.xml
index 9f3528d..bbf68cf 100644
--- a/modules/ipops/doc/ipops_admin.xml
+++ b/modules/ipops/doc/ipops_admin.xml
@@ -547,13 +547,13 @@ if (is_in_subnet("10.0.123.123",
"10.0.123.1/24")) {
<itemizedlist>
<listitem>
<para>
- <emphasis>ipaddr</emphasis> - string or pseudo-variable
containing the ip address.
+ <emphasis>hostname</emphasis> - string or pseudo-variable containing the
hostname.
+ The resulting IP addresses from DNS query are compared with ipaddr.
</para>
</listitem>
<listitem>
<para>
- <emphasis>hostname</emphasis> - string or pseudo-variable containing the
hostname.
- The resulting IP addresses from DNS query are compared with ipaddr.
+ <emphasis>ipaddr</emphasis> - string or pseudo-variable
containing the ip address.
</para>
</listitem>
</itemizedlist>
@@ -596,13 +596,13 @@ if (!dns_sys_match_ip("myhost.com", "1.2.3.4"))
{
<itemizedlist>
<listitem>
<para>
- <emphasis>ipaddr</emphasis> - string or pseudo-variable
containing the ip address.
+ <emphasis>hostname</emphasis> - string or pseudo-variable containing the
hostname.
+ The resulting IP addresses from DNS query are compared with ipaddr.
</para>
</listitem>
<listitem>
<para>
- <emphasis>hostname</emphasis> - string or pseudo-variable containing the
hostname.
- The resulting IP addresses from DNS query are compared with ipaddr.
+ <emphasis>ipaddr</emphasis> - string or pseudo-variable
containing the ip address.
</para>
</listitem>
</itemizedlist>
@@ -626,6 +626,60 @@ if (!dns_int_match_ip("myhost.com", "1.2.3.4"))
{
</section>
+ <section id="ipops.f.dns_query">
+ <title>
+ <function moreinfo="none">dns_query(hostname,
pvid)</function>
+ </title>
+
+ <para>
+ Store the IP addresses and their type that correspond to hostname
+ in a config variable $dns(pvid=>key).
+ </para>
+
+ <para>Parameters:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>
+ <emphasis>hostname</emphasis> - string or pseudo-variable containing the
hostname.
+ The resulting IP addresses from DNS query are compared with ipaddr.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <emphasis>pvid</emphasis> - container id for script variable.
+ </para>
+ </listitem>
+ </itemizedlist>
+
+ <para>
+ This function can be used from ANY_ROUTE.
+ </para>
+
+ <example>
+ <title>
+ <function>dns_query</function> usage
+ </title>
+ <programlisting format="linespecific">
+...
+if(dns_query("test.com", "xyz"))
+{
+ xlog(" number of addresses: $dns(xyz=>count)\n");
+ xlog(" ipv4 address found: $dns(xyz=>ipv4)\n");
+ xlog(" ipv6 address found: $dns(xyz=>ipv6)\n");
+ $var(i) = 0;
+ while($var(i)<$dns(xyz=>count)) {
+ xlog(" #[$var(i)] type ($dns(xyz=>type[$var(i)]))"
+ " addr [$dns(xyz=>addr[$var(i)])]\n");
+ $var(i) = $var(i) + 1;
+ }
+}
+...
+ </programlisting>
+ </example>
+
+ </section>
+
</section>
</chapter>