[En-Nut-Discussion] DNS server IP via DHCP
Hugo Simon
hugo.simon at gmx.de
Thu Oct 7 17:49:15 CEST 2004
Hi,
I had the same problem and it seems there is no official way to get that
info. So I investigated a bit. The NutDnsConfig2 routine stores the setting
in a global but private structure "doc". So the simpliest way is to make
that structure public.
I moved it's definition from "pro/resolv.c" to "netdb.h"
So in "pro/resolv.c" the only thing is to remove the type definition and
therefor include the netdb.h:
-----------------------------------------------------
/*
* moved to netdb.h, so everyone can get the current DNS parameters
typedef struct {
u_char *doc_hostname;
u_char *doc_domain;
u_long doc_ip1;
u_long doc_ip2;
} DNSCONFIG;
*/
DNSCONFIG doc;
-----------------------------------------------------
Then put it into "netdb.h"
-----------------------------------------------------
typedef struct {
u_char *doc_hostname;
u_char *doc_domain;
u_long doc_ip1;
u_long doc_ip2;
} DNSCONFIG;
extern DNSCONFIG doc;
-----------------------------------------------------
Now you can access it from everywhere in your code by writing
printf("Hostname : %s.%s\n", doc.doc_hostname, doc.doc_domain);
printf("Primary DNS server : %s\n", inet_ntoa(doc.doc_ip1);
printf("Secondary DNS server: %s\n", inet_ntoa(doc.doc_ip2);
But beware. If there is nothing configured the pointers to hostname and
domain are set to NULL. So check before using it.
I hope that helps. I used an old 3.4.2.1 of NutOS. Maybe it's different in
the actual 3.9x version.
bye
Thorsten
> I've looked at the standard DHCP code and see that it retrieves the DNS
> Server settings from the DHCP server and configures them using
> NutDnsConfig2.
>
> This is good. However, I want to "display" these values retrieved from the
> DHCP request (and others if possible). Does anyone know how to access
these
> field other tahn modifying the dhcp code ?
More information about the En-Nut-Discussion
mailing list