Files
Arquivotheca.SunOS-4.1.4/usr.etc/suninstall/lib/create_hosts.c
seta75D ff309bfe1c Init
2021-10-11 18:37:13 -03:00

94 lines
3.1 KiB
C

/* @(#)create_hosts.c 1.1 94/10/31 SMI */
/*
* Copyright (c) 1988 by Sun Microsystems, Inc.
*/
#include "install.h"
extern char *sprintf(), *where_are_we();
create_hosts(sys, tape_drive_type, tapehost,
tapehost_ip, tape_device, progname)
struct system_info *sys;
char *tape_drive_type, *tapehost, *tapehost_ip, *tape_device, *progname;
{
register i;
char arch[25], path[MINSIZE];
FILE *hosts, *archlist, *extractlist;
char filename[MAXPATHLEN];
char buf[BUFSIZE];
char cmd[BUFSIZE];
char *where;
if( (hosts = fopen(HOSTS,"w")) == NULL ) {
(void) fprintf(stderr,
"%s:\tUnable to open /etc/hosts", progname);
exit(1);
}
(void) fprintf(hosts,"#\n");
(void) fprintf(hosts,"# If the NIS is running, this file is only consulted when booting\n");
(void) fprintf(hosts,"#\n");
(void) fprintf(hosts,"# These lines added by the Suninstall Program\n");
(void) fprintf(hosts,"#\n");
if ( strlen(sys->ip0) )
(void) fprintf(hosts,"%s\t%s loghost\n",sys->ip0,sys->hostname);
if ( strlen(sys->ip1) )
(void) fprintf(hosts,"%s\t%s\n",sys->ip1,sys->hostname1);
(void) sprintf(filename,"%sarchlist",INSTALL_DIR);
if((archlist = fopen(filename,"r")) != NULL ) {
while ( fgets(buf,BUFSIZ,archlist) != NULL ) {
(void) sscanf(buf,"arch=%s path=%s\n",arch,path);
if ( strlen(arch) ) {
(void) sprintf(filename,"%sextractlist.%s",
INSTALL_DIR,arch);
if((extractlist = fopen(filename,"r"))
!= NULL ) {
for (i=0;
fgets(buf,BUFSIZ,extractlist) != NULL;
i++ ) {
switch (i) {
case 0:
(void) sscanf(buf,"device=%s", tape_device);
break;
case 1:
(void) sscanf(buf,"drive=%s", tape_drive_type);
break;
case 2:
if ( !strcmp(tape_drive_type,"remote") ) {
(void) sscanf(buf, "tapehost=%s\n", tapehost);
}
break;
case 3:
if ( !strcmp(tape_drive_type,"remote") ) {
(void) sscanf(buf,"tapehostip=%s", tapehost_ip);
(void) fprintf(hosts, "%s\t%s\n", tapehost_ip,tapehost);
}
break;
}
}
(void) fclose(extractlist);
}
}
}
(void) fclose(archlist);
}
(void) fprintf(hosts,"\n");
if ( strlen(sys->ip0) )
(void) fprintf(hosts,"127.0.0.1 localhost\n");
else
(void) fprintf(hosts,"127.0.0.1 %s localhost loghost\n",sys->hostname);
(void) fprintf(hosts,"#\n");
(void) fprintf(hosts,"# End of lines added by the Suninstall Program\n");
(void) fprintf(hosts,"#\n");
(void) fclose(hosts);
where = where_are_we();
(void) sprintf(path,"%s/etc",where);
(void) makedirpath(path);
(void) sprintf(cmd,"cp %s %s 2>/dev/null\n", HOSTS, path);
(void) system(cmd);
}