inet_dns module
Magnus Fröberg
magnus@REDACTED
Thu Dec 2 08:19:32 CET 1999
Emmanuelle BERNARD wrote:
>
> Hi,
>
> I would like to use the functions encode and decode of the inet_dns
> module
> How to use them?
>
> The little program :
> """"""""""""""""""""""""""""""""""""""""""""""""""""
> -module(i).
> -export([test/0]).
>
> test()->
>
> Var={dns_rec,{dns_header,10,0,0,0,0,1,0,0,0},[{dns_query,"ada.eu.org",a,in}],[],[],[]},
>
> io:format("~p~n", [Var]),
> Packet=inet_dns:encode(Var),
> io:format("~p~n", [Packet]),
> Result=inet_dns:decode(Packet),
> io:format("~p~n", [Result]).
> """""""""""""""""""""""""""""""""""""""""""""""
>
>
> Why is there a format error?
inet_dns:encode returns {ok, P}, i.e. you should match that tuple.
As you supplies {ok, P} to inet_dns:decode/1 you got the {error, fmt}.
...
{ok, Pkt} = inet_dns:encode(Var),
Result = inet_dns:decode(Pkt),
...
Instead of creating the dns_rec tuple you should include inet_dns.hrl
and use the record definitions. You have to include it as:
-include("$ERL/lib/kernel-$KERNEL_VSN/src/inet_dns.hrl") as the inet_dns
module was not intended for use outside the kernel application (e.g. you
cant find a man-page for it). (Note: $ERL above is your erlang install
directory and $KERNEL_VSN is the version of the kernel application in
your installation)
/Magnus
--
Magnus Fröberg Tel: +46 (0)8 692 22 06
Bluetail AB Email: magnus@REDACTED
Hantverkargatan 78 WWW: http://www.bluetail.com
SE-112 38 Stockholm, SWEDEN
More information about the erlang-questions
mailing list