Author: Nicholas Bamber Subject: askmara-tcp lazily copies askmara usage and man page Last-Updated: 2011-09-21 Forwarded: no --- a/tools/askmara_labels_en.h +++ b/tools/askmara_labels_en.h @@ -1,11 +1,12 @@ /* Placed in the public domain 2001 by Sam Trenholme */ -/* All of the labels for replies used in askmara */ +/* All of the labels for replies used in askmara(-tcp) */ #define L_NEWLINE "\n" #define L_HARD_ERROR "Hard Error: " #define L_QUERYING "Querying the server with the IP " #define L_USAGE "Usage: askmara [-n] [-v | -t timeout] Query [server]\n#Example: askmara Ayahoo.com." +#define L_USAGE_TCP "Usage: askmara-tcp [-n] [-v | -t timeout] Query [server]\n#Example: askmara-tcp Ayahoo.com." #define L_JS_CREATE_INDATA "js_create with indata" #define L_JS_CREATE_UINDATA "js_create with uindata" #define L_JS_CREATE_OUTDATA "js_create with outdata" --- a/tools/askmara-tcp.c +++ b/tools/askmara-tcp.c @@ -190,7 +190,7 @@ nrd = 1; else if(argv[0][0] == '-' && argv[0][1] == 'p') { if(argc < 2) { - harderror(L_USAGE); + harderror(L_USAGE_TCP); } argc--; argv++; @@ -201,7 +201,7 @@ } else if(argv[0][0] == '-' && argv[0][1] == 't') { if(argc < 2) { - harderror(L_USAGE); + harderror(L_USAGE_TCP); } argc--; argv++; @@ -213,14 +213,14 @@ else if (argv[0][0] != '-') break; else - harderror(L_USAGE); + harderror(L_USAGE_TCP); argc--; argv++; } /* we expect now the query string and possibly the server */ if(argc<1) - harderror(L_USAGE); + harderror(L_USAGE_TCP); /* Determine what IP address to connect to */ if(argc>1) --- /dev/null +++ b/doc/en/man/askmara-tcp.1 @@ -0,0 +1,191 @@ +.\" Do *not* edit this file; it was automatically generated by ej2man +.\" Look for a name.ej file with the same name as this filename +.\" +.\" Process this file with the following +.\" nroff -man -Tutf8 maradns.8 | tr '\020' ' ' +.\" +.\" Last updated Mon Sep 27 15:36:06 2010 +.\" +.TH ASKMARA-TCP 1 "askmara-tcp" "January 2002" "askmara-tcp" +.\" We don't want hyphenation (it's too ugly) +.\" We also disable justification when using nroff +.\" Due to the way the -mandoc macro works, this needs to be placed +.\" after the .TH heading +.hy 0 +.if n .na +.\" +.\" We need the following stuff so that we can have single quotes +.\" In both groff and other UNIX *roff processors +.if \n(.g .mso www.tmac +.ds aq \(aq +.if !\n(.g .if '\(aq'' .ds aq \' + +.SH "NAME" +.PP +askmara-tcp \- do simple dns queries over TCP +.SH "DESCRIPTION" +.PP +.B "askmara-tcp" +queries the user-specified dns server for records, and +outputs the reply in a csv2-compatible format (csv2 is the format of +zone +files that +.B "maradns" +uses). However unlike +.B "askmara" +it uses TCP rather than UDP. +.SH "USAGE" +.PP +.B "askmara-tcp" +.RB [ -n ] +.RB [ -v | -t +.IR timeout ] +.I query +.RI [ server ] +.SH "OPTIONS" +.PP +.TP 4 +.BI -t +If this is present, the following argument is the askmara-tcp +.IR timeout , +in seconds. Note that +.B "askmara-tcp" +can not both have a user-defined +timeout and verbose output. +.TP 4 +.BI -v +If this is set, +.B "askmara-tcp" +will verbosely output the complete reply that the server sent. Note +that this verbose output is not csv2-compatible. +.TP 4 +.BI -n +If this is set, +.BR "askmara-tcp" "," +when sending out a query, will not +request DNS recursion; in other words, askmara-tcp will request that the +remote DNS server not contact other DNS servers to answer the query in +question. +.TP 4 +.I query +dns record to be queried. The query has two sections: +The type of record we desire, and the hostname we want this record for. +.PP +The type of query can have two forms: A one-letter mnemonic, or a +numeric rtype followed by a colon. This is immediately concatenated by +the full name of the host name we wish to look up. +.PP +For example, to ask for the IP of \(aqexample.com.\(aq, we can use the +one-letter +mnemonic, in the form \(aqAexample.com.\(aq, or we can use the numeric +RR followed +by a colon, giving the query \(aq1:example.com.\(aq (since A has the +record type +of one). Note that the query name needs the trailing dot at the end. +.PP +Askmara supports a handful one-letter mnemonics, as follows: +.PP +.B "A" +signifies a request for an A (ipv4 address) RR +.PP +.B "N" +signifies a NS RR +.PP +.B "C" +signifies that we are asking for a CNAME RR +.PP +.B "S" +signifies that we want a SOA RR +.PP +.B "P" +signifies that we want a PTR RR +.PP +.B "@" +signifies that we mant a MX RR +.PP +.B "T" +signifies that we want a TXT RR +.PP +.B "Z" +signifies that we want to ask for all RRs. +.TP 4 +.I server +IP address of the dns server to be queried. If no server is given, +askmara-tcp will query 127.0.0.1. +.PP +.SH "EXAMPLES" +.PP +Asking the server with the ip 127.0.0.1 for the IP address of +example.com: + +.nf +askmara-tcp Aexample.com. +.fi + +Asking the server with the ip 198.41.0.4 for the IP address of +example.com: + +.nf +askmara-tcp Aexample.com. 198.41.0.4 +.fi + +Asking the server with the ip address 127.0.0.1 for the IP address of +example.com, using the rr_number:query format: + +.nf +askmara-tcp 1:example.com. +.fi + +Asking the server with the ip address 127.0.0.1 for a SRV record. In +particular, we ask for the "http over tcp" service for example.net. +Since askmara-tcp doesn\(aqt have a mnemonic for SRV record types, we +use the numeric code (33 for SRV): + +.nf +askmara-tcp 33:_http._tcp.example.net. +.fi + +Asking the server with the ip address 127.0.0.1 for the AAAA (ipv6 ip) +record for example.net: + +.nf +askmara-tcp 28:example.net. +.fi + +Note that the output will be a raw DNS packet in both the SRV +and AAAA examples. +.SH "BUGS" +.PP +When askmara-tcp is asked for an SOA record, the output of +.B "askmara-tcp" +closely resembles the format of a csv2 file, but can not be parsed as a +csv2 file without modification. +.PP +askmara-tcp outputs multi-chunk ("character-string") TXT +records incorrectly (it only outputs the first chunk). +.SH "SEE ALSO" +.PP +.B maradns(8), +.B askmara(1) + +.br +http://www.maradns.org +.SH "LEGAL DISCLAIMER" +.PP +THIS SOFTWARE IS PROVIDED BY THE AUTHORS \(aq\(aqAS IS\(aq\(aq AND ANY +EXPRESS +OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE +LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR +BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE +OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, +EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +.SH "AUTHOR" +.PP +MaraDNS is written by Sam Trenholme. Jaakko Niemi used 5 minutes +to roll this manpage together, which Sam has subsequently revised. +