[BACK]Return to net.c CVS log [TXT][DIR] Up to [cvs.NetBSD.org] / src / distrib / utils / sysinst

Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.

Diff for /src/distrib/utils/sysinst/Attic/net.c between version 1.8 and 1.8.2.6

version 1.8, 1997/10/20 06:13:36 version 1.8.2.6, 1997/11/11 00:47:31
Line 49 
Line 49 
 #include "menu_defs.h"  #include "menu_defs.h"
 #include "txtwalk.h"  #include "txtwalk.h"
   
 static network_up = 0;  static int network_up = 0;
   
   /* Get the list of network interfaces. */
   
 static void get_ifconfig_info (void)  static void get_ifconfig_info (void)
 {  {
Line 77  static void get_ifconfig_info (void)
Line 79  static void get_ifconfig_info (void)
                 *t = 0;                  *t = 0;
 }  }
   
   /* Get the information to configure the network, configure it and
      make sure both the gateway and the name server are up. */
   
 static int config_network (void)  int config_network (void)
 {       char *tp;  {       char *tp;
         char defname[255];          char defname[255];
         int  octet0;          int  octet0;
         int  pass;          int  pass;
   
         FILE *f;          FILE *f;
           time_t now;
   
         if (network_up)          if (network_up)
                 return 1;                  return 1;
Line 154  static int config_network (void)
Line 159  static int config_network (void)
                 (void)fprintf(stderr, "%s", msg_string(MSG_resolv));                  (void)fprintf(stderr, "%s", msg_string(MSG_resolv));
                 exit(1);                  exit(1);
         }          }
         (void)fprintf (f, "nameserver %s\nlookup file bind\nsearch %s",          time(&now);
           /* NB: ctime() returns a string ending in  '\n' */
           (void)fprintf (f, ";\n; BIND data file\n; %s %s;\n",
                          "Created by NetBSD sysinst on", ctime(&now));
           (void)fprintf (f, "nameserver %s\nlookup file bind\nsearch %s\n",
                        net_namesvr, net_domain);                         net_namesvr, net_domain);
         fclose (f);          fclose (f);
   
Line 165  static int config_network (void)
Line 174  static int config_network (void)
         run_prog ("/sbin/route add default %s > /dev/null 2> /dev/null",          run_prog ("/sbin/route add default %s > /dev/null 2> /dev/null",
                   net_defroute);                    net_defroute);
   
         network_up =  run_prog ("/sbin/ping -c 2 %s > /dev/null", net_defroute)          network_up = !run_prog ("/sbin/ping -c 2 %s > /dev/null", net_defroute)
                 || run_prog ("/sbin/ping -c 2 %s > /dev/null", net_namesvr);                  && !run_prog ("/sbin/ping -c 2 %s > /dev/null", net_namesvr);
   
         return network_up;          return network_up;
 }  }
Line 174  static int config_network (void)
Line 183  static int config_network (void)
 int  int
 get_via_ftp (void)  get_via_ftp (void)
 {  {
         char **list;          distinfo *list;
         char realdir[STRSIZE];  
         char filename[SSTRSIZE];          char filename[SSTRSIZE];
         int  ret;          int  ret;
   
         while (config_network ()) {          while (!config_network ()) {
                 msg_display (MSG_netnotup);                  msg_display (MSG_netnotup);
                 process_menu (MENU_yesno);                  process_menu (MENU_yesno);
                 if (!yesno)                  if (!yesno)
                         return 0;                          return 0;
         }          }
   
           cd_dist_dir ("ftp");
   
           /* Fill in final values for ftp_dir. */
           strncat (ftp_dir, rels, STRSIZE-strlen(ftp_dir));
           strcat  (ftp_dir, "/");
           strncat (ftp_dir, machine, STRSIZE-strlen(ftp_dir));
         strncat (ftp_dir, ftp_prefix, STRSIZE-strlen(ftp_dir));          strncat (ftp_dir, ftp_prefix, STRSIZE-strlen(ftp_dir));
         process_menu (MENU_ftpsource);          process_menu (MENU_ftpsource);
         msg_prompt (MSG_distdir, dist_dir, dist_dir, STRSIZE, "ftp");  
         if (*dist_dir == '/')  
                 snprintf (realdir, STRSIZE, "/mnt%s", dist_dir);  
         else  
                 snprintf (realdir, STRSIZE, "/mnt/%s", dist_dir);  
         strcpy (dist_dir, realdir);  
         run_prog ("/bin/mkdir %s", realdir);  
         clean_dist_dir = 1;  
 #ifndef DEBUG  
         if (chdir(realdir)) {  
                 endwin();  
                 (void)fprintf(stderr, msg_string(MSG_realdir), realdir);  
                 exit(1);  
         }  
 #else  
         printf ("chdir (%s)\n", realdir);  
 #endif  
   
         list = dist_list;          list = dist_list;
         endwin();          endwin();
         while (*list) {          while (list->name) {
                 snprintf (filename, SSTRSIZE, *list, rels, dist_postfix);                  if (!list->getit) {
                           list++;
                           continue;
                   }
                   snprintf (filename, SSTRSIZE, list->name, rels, dist_postfix);
                 if (strcmp ("ftp", ftp_user) == 0)                  if (strcmp ("ftp", ftp_user) == 0)
                         ret = run_prog("/usr/bin/ftp -a ftp://%s/%s/%s",                          ret = run_prog("/usr/bin/ftp -a ftp://%s/%s/%s",
                                        ftp_host, ftp_dir,                                         ftp_host, ftp_dir,
Line 231  get_via_ftp (void)
Line 232  get_via_ftp (void)
                         endwin();                          endwin();
                 } else                  } else
                         list++;                          list++;
   
         }          }
         puts (CL); /* Just to make sure. */          puts (CL); /* Just to make sure. */
         wrefresh (stdscr);          wrefresh (stdscr);
 #ifndef DEBUG  #ifndef DEBUG
         chdir("/");          chdir("/");     /* back to current real root */
 #endif  #endif
         return 1;          return 1;
 }  }
Line 243  get_via_ftp (void)
Line 245  get_via_ftp (void)
 int  int
 get_via_nfs(void)  get_via_nfs(void)
 {  {
         while (config_network ()) {          while (!config_network ()) {
                 msg_display (MSG_netnotup);                  msg_display (MSG_netnotup);
                 process_menu (MENU_yesno);                  process_menu (MENU_yesno);
                 if (!yesno)                  if (!yesno)
Line 254  get_via_nfs(void)
Line 256  get_via_nfs(void)
         process_menu (MENU_nfssource);          process_menu (MENU_nfssource);
   
         /* Mount it */          /* Mount it */
         while(!run_prog("/sbin/mount -t nfs %s:%s /mnt2", nfs_host, nfs_dir)) {          while(run_prog("/sbin/mount -t nfs %s:%s /mnt2", nfs_host, nfs_dir)) {
                 process_menu (MENU_nfsbadmount);                  process_menu (MENU_nfsbadmount);
                 if (!yesno)                  if (!yesno)
                         return 0;                          return 0;
Line 262  get_via_nfs(void)
Line 264  get_via_nfs(void)
         }          }
   
         /* return location, don't clean... */          /* return location, don't clean... */
         strcpy (dist_dir, "/mnt2");          strcpy (ext_dir, "/mnt2");
         clean_dist_dir = 0;          clean_dist_dir = 0;
         mnt2_mounted = 1;          mnt2_mounted = 1;
         return 1;          return 1;
 }  }
   
   /*
    * Write the network config info the user entered via menus into the
    * config files in the target disk.  Be careful not to lose any
    * information we don't immediately add back, in case the install
    * target is the currently-active root.
    */
 void  void
 mnt_net_config(void)  mnt_net_config(void)
 {  {
         char ans [5] = "y";          char ans [5] = "y";
           char ifconfig_fn [STRSIZE];
           FILE *f;
   
         if (network_up) {          if (network_up) {
                 msg_prompt (MSG_mntnetconfig, ans, ans, 5);                  msg_prompt (MSG_mntnetconfig, ans, ans, 5);
                 if (*ans == 'y') {                  if (*ans == 'y') {
                         run_prog ("/bin/cp /etc/resolv.conf /mnt/etc");  
                         run_prog ("echo %s > /mnt/etc/myname", net_host);                          /* If not running in target, copy resolv.conf there. */
                         run_prog ("echo %s %s >> /mnt/etc/hosts", net_ip,                          dup_file_into_target("/etc/resolv.conf");
                                   net_host);                          /*
                         run_prog ("echo %s > /mnt/etc/defaultdomain",                           * Add IPaddr/hostname to  /etc/hosts.
                                   net_domain);                           * Be careful not to clobber any existing contents.
                         run_prog ("echo %s netmask %s > /mnt/etc/ifconfig.%s",                           * Relies on ordered seach of /etc/hosts. XXX YP?
                                   net_ip, net_mask, net_dev);                           */
                         run_prog ("echo %s > /mnt/etc/mygate", net_defroute);                          f = target_fopen("/etc/hosts", "a");
                           if (f != 0) {
                                   fprintf(f, msg_string(MSG_etc_hosts),
                                           net_ip, net_host, net_domain,
                                           net_host);
                                   fclose(f);
                           }
   
                           /* Write IPaddr and netmask to /etc/ifconfig.if[0-9] */
                           snprintf (ifconfig_fn, STRSIZE,
                                     "/etc/ifconfig.%s", net_dev);
                           f = target_fopen(ifconfig_fn, "w");
                           if (f != 0) {
                                   fprintf(f, "%s netmask %s\n",
                                           net_ip, net_mask);
                                   fclose(f);
                           }
   
                           f = target_fopen("/etc/mygate", "w");
                           if (f != 0) {
                                   fprintf(f, "%s\n", net_defroute);
                                   fclose(f);
                           }
                 }                  }
         }          }
 }  }

Legend:
Removed from v.1.8  
changed lines
  Added in v.1.8.2.6

CVSweb <webmaster@jp.NetBSD.org>