/[pengfork]/pengfork/src/iptunnel/dns.c
ViewVC logotype

Diff of /pengfork/src/iptunnel/dns.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.2 by chupa, Sat Nov 30 10:28:52 2002 UTC revision 1.3 by chupa, Sun Dec 1 01:19:07 2002 UTC
# Line 20  Line 20 
20   *                   *                
21   */   */
22    
23    #include "config.h"
24    
25  #include <stdlib.h>  #include <stdlib.h>
26  #include <stdio.h>  #include <stdio.h>
27  #include <sys/types.h>  #include <sys/types.h>
# Line 31  Line 33 
33  #include <string.h>  #include <string.h>
34  #include <errno.h>  #include <errno.h>
35    
36    #include "gettext.h"
37  #include "log.h"  #include "log.h"
38  #include "iptunnel/dns.h"  #include "iptunnel/dns.h"
39    
# Line 44  set_dns (domain, dns) Line 47  set_dns (domain, dns)
47    FILE *f;    FILE *f;
48    struct stat st;    struct stat st;
49    
50    if( !stat("/etc/resolv.peng", &st) )    if (!stat ("/etc/resolv.peng", &st))
51      log(LOG_WARNING, "/etc/resolv.peng exists\n");      log (LOG_WARNING, gettext ("/etc/resolv.peng exists\n"));
52    else    else
53      {      {
54        if(rename("/etc/resolv.conf","/etc/resolv.peng"))        if (rename ("/etc/resolv.conf", "/etc/resolv.peng"))
55          {          {
56          log(LOG_ERR, "Could not rename /etc/resolv.conf: %s (%d)\n",            log (LOG_ERR, gettext ("Could not rename /etc/resolv.conf: %s (%d)\n"),
57              strerror(errno), errno);                 strerror (errno), errno);
58          exit(1);            exit (1);
59          }          }
60      }      }
61      
62    /* Now create a new resolv.conf from scratch */    /* Now create a new resolv.conf from scratch */
63    f=fopen("/etc/resolv.conf", "w");    f = fopen ("/etc/resolv.conf", "w");
64    if(f!=NULL)    if (f != NULL)
65      {      {
66        fprintf(f, "#This file has been automaticly generated by pengfork\n");        fprintf (f, "# This file has been automaticly generated by pengfork\n");
67        fprintf(f, "#A backup of your old configuration has been made in"        fprintf (f, "# A backup of your old configuration has been made in"
68              " /etc/resolv.peng\n");                 " /etc/resolv.peng\n");
69        fprintf(f, "#It will be restored when connection is down\n\n");        fprintf (f, "# It will be restored when connection is down\n\n");
70        fprintf(f, "domain %s\n", domain);        fprintf (f, "domain %s\n", domain);
71        fprintf(f, "search %s\n", domain);        fprintf (f, "search %s\n", domain);
72        fprintf(f, "nameserver %s\n", inet_ntoa(dns));        fprintf (f, "nameserver %s\n", inet_ntoa (dns));
73        fclose(f);        fclose (f);
74      }      }
75    else    else
76      {      {
77        log(LOG_ERR, "Could not create /etc/resolv.conf: %s (%d)\n",        log (LOG_ERR, gettext ("Could not create /etc/resolv.conf: %s (%d)\n"),
78          strerror(errno), errno);             strerror (errno), errno);
79        exit(1);        exit (1);
80      }      }
81    dns_set = 1;    dns_set = 1;
82    
# Line 85  unset_dns () Line 88  unset_dns ()
88  {  {
89    struct stat st;    struct stat st;
90    
91    if( !stat("/etc/resolv.peng", &st) )    if (!stat ("/etc/resolv.peng", &st))
92      {      {
93        if(unlink("/etc/resolv.conf"))        if (unlink ("/etc/resolv.conf"))
94          {          {
95          log(LOG_WARNING, "Could not delete /etc/resov.conf: %s (%d)\n",            log (LOG_WARNING, gettext ("Could not delete /etc/resov.conf: %s (%d)\n"),
96              strerror(errno), errno);                 strerror (errno), errno);
97          return 0;            return 0;
98          }          }
99          
100        if(rename("/etc/resolv.peng","/etc/resolv.conf"))        if (rename ("/etc/resolv.peng", "/etc/resolv.conf"))
101          {          {
102          log(LOG_WARNING, "Could not rename /etc/resolv.peng: %s (%d)\n",            log (LOG_WARNING, gettext ("Could not rename /etc/resolv.peng: %s (%d)\n"),
103              strerror(errno), errno);                 strerror (errno), errno);
104          return 0;            return 0;
105          }          }
106        dns_set = 0;        dns_set = 0;
107        return 1;        return 1;

Legend:
Removed from v.1.2  
changed lines
  Added in v.1.3

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26