]> code.citadel.org Git - citadel.git/commitdiff
* more work on the net migrator
authorArt Cancro <ajc@citadel.org>
Fri, 26 Oct 2001 04:26:45 +0000 (04:26 +0000)
committerArt Cancro <ajc@citadel.org>
Fri, 26 Oct 2001 04:26:45 +0000 (04:26 +0000)
citadel/ChangeLog
citadel/migratenet.c

index 0e7a2380bc6ae72752b89053a15b2db1e0c6b5b3..0297e7f112eef6ce5511aba970995f0faa75b0b6 100644 (file)
@@ -1,4 +1,7 @@
  $Log$
+ Revision 580.69  2001/10/26 04:26:45  ajc
+ * more work on the net migrator
+
  Revision 580.68  2001/10/23 03:37:33  ajc
  * Threw a few more lines of code into migratenet.c
 
@@ -2837,4 +2840,3 @@ Sat Jul 11 00:20:48 EDT 1998 Nathan Bryant <bryant@cs.usm.maine.edu>
 
 Fri Jul 10 1998 Art Cancro <ajc@uncensored.citadel.org>
        * Initial CVS import 
-
index 8a979e43c2b66c5e92aa95697ec268a24bd18f9f..76faf87626751c6e5bd2f61f9ec2062d46281f49 100644 (file)
@@ -31,10 +31,14 @@ int main(int argc, char **argv)
        DIR *dp;
        struct dirent *d;
        long highest = 0L;
+       char node[SIZ];
        char room[SIZ];
        long thighest;
        FILE *fp;
-       FILE *tempfp;
+       FILE *roomfp;
+       char roomfilename[SIZ];
+       FILE *nodefp;
+       char nodefilename[SIZ];
 
        printf("\n\n\n\n\n"
 "This utility migrates your network settings (room sharing with other\n"
@@ -69,8 +73,16 @@ int main(int argc, char **argv)
                exit(errno);
        }
 
-       tempfp = tmpfile();
-       if (tempfp == NULL) {
+       strcpy(roomfilename, tmpnam(NULL));
+       roomfp = fopen(roomfilename, "w");
+       if (roomfp == NULL) {
+               perror("cannot open temp file");
+               exit(errno);
+       }
+
+       strcpy(nodefilename, tmpnam(NULL));
+       nodefp = fopen(nodefilename, "w");
+       if (roomfp == NULL) {
                perror("cannot open temp file");
                exit(errno);
        }
@@ -87,13 +99,25 @@ int main(int argc, char **argv)
                        fp = fopen(d->d_name, "r");
                }
                if (fp != NULL) {
-                       printf("*** Processing '%s'\n", d->d_name);
+                       printf("\n*** Processing '%s'\n", d->d_name);
+
+                       fprintf(nodefp, "%s|", d->d_name);
+                       printf("Enter shared secret: ");
+                       gets(buf);
+                       fprintf(nodefp, "%s|", buf);
+                       printf("Enter host name/IP : ");
+                       gets(buf);
+                       fprintf(nodefp, "%s|", buf);
+                       printf("Enter port number  : ");
+                       gets(buf);
+                       fprintf(nodefp, "%s\n", buf);
+
                        while (fgets(room, sizeof room, fp),
                                fscanf(fp, "%ld\n", &thighest),
                                !feof(fp) ) {
                                        room[strlen(room) - 1] = 0;
-                                       fprintf(tempfp, "%s|%s\n",
-                                               room, d->d_name);
+                                       fprintf(roomfp, "%s|%s\n",
+                                               d->d_name, room);
                                        if (thighest > highest) {
                                                highest = thighest;
                                        }
@@ -103,7 +127,53 @@ int main(int argc, char **argv)
        }
 
        closedir(dp);
-       fclose(tempfp);
+       fclose(roomfp);
+       fclose(nodefp);
+
+       /* Point of no return */
+
+       /* Set up the node table */
+       printf("Creating neighbor node table\n");
+       sprintf(buf, "CONF putsys|%s", IGNETCFG);
+       serv_puts(buf);
+       serv_gets(buf);
+       if (buf[0] == '4') {
+               nodefp = fopen(nodefilename, "r");
+               if (nodefp != NULL) {
+                       while (fgets(buf, sizeof buf, nodefp) != NULL) {
+                               buf[strlen(buf)-1] = 0;
+                               serv_puts(buf);
+                       }
+                       fclose(nodefp);
+               }
+               serv_puts("000");
+       }
+       else {
+               printf("%s\n", &buf[4]);
+       }
+
+
+       /* Now go through the table looking for node names to enter */
+
+       sprintf(buf, "cat %s |awk '{ FS=\"|\"; print $2 }' |sort -f |uniq -i",
+               roomfilename);
+       roomfp = popen(buf, "r");
+       if (roomfp == NULL) {
+               perror("cannot open pipe");
+               unlink(roomfilename);
+       }
+
+       while (fgets(room, sizeof room, roomfp) != NULL) {
+               room[strlen(room)-1] = 0;
+               if (strlen(room) > 0) {
+                       printf("Room <%s>\n", room);
+               }
+       }
+
+       pclose(roomfp);
+
+       unlink(roomfilename);
+       unlink(nodefilename);
        return(0);
 }