#ifdef SWILL
#include "totd.h"
static char stats_start[] = "\n
\n";
static char stats_end[] = "\n";
void print_stats(FILE *f) {
char astr[MAX_DNAME];
G_List *gl;
int i;
fprintf(f,"%s\n",stats_start);
fprintf(f,"Totd DNS-proxy Status
\n\n");
fprintf(f,"\nForwarders:
\n");
fprintf (f, "\n");
for (gl = T.Fwd_list->next; gl->list_data; gl = gl->next) {
Fwd *fwd = (Fwd *) (gl->list_data);
if (gl == T.current_fwd)
fprintf (f, "- hostname: %s port: %d (active)
\n",
sprint_inet(fwd->sa, astr), fwd->port);
else
fprintf (f, "- hostname: %s port: %d
\n",
sprint_inet(fwd->sa, astr), fwd->port);
}
fprintf (f, "
\n");
fprintf(f,"\nConfigured Prefixes:
\n");
fprintf (f, "\n");
for (i = 0; i < T.prefixnum; i++) {
if (i == T.current_prefix)
fprintf (f, "- %s (active)
\n",
inet_ntop(AF_INET6, &T.prefix[i], astr,
sizeof (struct sockaddr_in6)));
else
fprintf (f, "- %s
\n",
inet_ntop(AF_INET6, &T.prefix[i], astr,
sizeof (struct sockaddr_in6)));
}
fprintf (f, "
\n");
fprintf(f,"%s\n",stats_end);
return;
}
void add_prefix(FILE *f) {
const int cmpsiz = sizeof(struct in6_addr) - sizeof(struct in_addr);
char prefix[TOTPREFIXLEN + 1];
char *pref;
int i;
fprintf(f,"\n\n");
if (!swill_getargs("s(prefix)",&pref)) {
fprintf(f, "No prefix
\n");
fprintf(f,"\n");
return;
}
if (inet_pton (AF_INET6, pref, (void *)&prefix) != 1) {
syslog (LOG_DEBUG, "Not a valid prefix: %s", pref);
fprintf(f, "No valid prefix
\n");
fprintf(f,"