559
static void apply_win_hosts_file(jdns_dnsparams_t *a)
568
static void apply_hosts_var_filepath(jdns_dnsparams_t *a, const char *envvar, const char *path)
565
p = jdns_getenv("WINDIR");
574
e = jdns_getenv(envvar);
568
len = strlen((char *)p->data);
569
str = (char *)jdns_alloc(len + 100); // should be enough
570
memcpy(str, p->data, len);
571
jdns_string_delete(p);
572
jdns_strcpy(str + len, "\\system32\\drivers\\etc\\hosts"); // winnt+
573
apply_hosts_file(a, str);
574
jdns_strcpy(str + len, "\\hosts"); // win9x
577
elen = strlen((char *)e->data);
579
str = (char *)jdns_alloc(elen + plen + 1);
580
memcpy(str, e->data, elen);
581
jdns_string_delete(e);
583
jdns_strcpy(str + elen, path);
575
584
apply_hosts_file(a, str);
588
static void apply_win_hosts_file(jdns_dnsparams_t *a)
591
apply_hosts_var_filepath(a, "SystemRoot", "\\SysWOW64\\drivers\\etc\\hosts");
594
apply_hosts_var_filepath(a, "SystemRoot", "\\system32\\drivers\\etc\\hosts");
597
apply_hosts_var_filepath(a, "WINDIR", "\\hosts");
579
600
static jdns_dnsparams_t *dnsparams_get_win()
738
759
struct sockaddr_in6 *sa6;
740
761
#ifdef USE_EXTEXT
762
// seems _ext.ext can be null in some cases...
763
if(RESVAR._u._ext.ext == NULL)
741
766
sa6 = ((struct sockaddr_in6 *)RESVAR._u._ext.ext) + n;
743
768
sa6 = RESVAR._u._ext.nsaddrs[n];