# 2.11BSD#431 - /usr/src/new/notes/src/nfrcv.c

##### Functions

    main              X

##### Macros

    MAINLINE          X

       1: #define MAINLINE
       2:
       3: #ifdef  RCSIDENT
       4: static char rcsid[] = "$Header: nfrcv.c,v 1.7.0.2 86/09/23 08:26:00 notes Rel $";
       5: #endif	RCSIDENT
       6:
       7: /*
       8:  *	netrcv - load a notefile from the network
       9:  *	accepts 2 parameters (1) the source system
      10:  *			     (2) the notefile to load into
      11:  *
      12:  *	This program should be called only by the netload program
      13:  *	or a suitably informed user/wizard
      14:  *
      15:  *	Original author:	Ray Essick	december 1981
      16:  */
      17:
      18: #include "parms.h"
      19: #include "structs.h"
      20: #include "net.h"
      21:
      22: main (argc, argv)
      23: char  **argv;
      24: {
      25:     struct io_f io;
      26:     FILE * log,                     /* network logfile */
      27:     *fopen ();
      28:     char    fn[WDLEN];                  /* network logfile */
      29:     char    nowtime[DATELEN];
      30:     char    buf[CMDLEN];
      31:     struct when_f   atime;
      32:     int     fid;                    /* for close loop */
      33:
      34:     setuid (geteuid ());                /* force to notes */
      35:     startup (argc, argv);               /* common init */
      36:
      37: /*
      38:  *	make damn sure we have enough file descriptors
      39:  */
      40:     for (fid = 3; fid < 20; fid++)
      41:     close (fid);
      42:
      43:     if (argc != 3)
      44:     {
      45:     printf ("Usage: %s notefile fromsystem\n", argv[0]);
      46:     exit (BAD);
      47:     }
      48:
      49:     sprintf (fn, "%s/%s/%s", Mstdir, UTILITY, NETLOG);
      50:     gettime (&atime);
      51:     sprdate (&atime, nowtime);
      52:
      53:     if (init (&io, argv[1]) < 0)
      54:     {
      55: #ifdef  AUTOCREATE                  /* if making 'em */
      56:     if (argv[1][0] == '/')              /* absolute? */
      57:     {
      58: #ifdef  NFMAINT
      59:         {
      60:         char    tbuf[128];          /* title */
      61:         sprintf (buf, "%s: non-existent notesfile from %s\nAborted by nfrcv\n",
      62:             argv[1], argv[2]);
      63:         sprintf (tbuf, "Nfrcv ignores %s", argv[1]);
      64:         nfcomment (NFMAINT, buf, tbuf, 0, 0);
      65:         }
      66: #endif	NFMAINT
      67:         printf ("Nfrcv: %s: no autocreate for absolute pathnames\n",
      68:             argv[1]);
      69:         exit (BAD);                 /* abort */
      70:     }
      71:     buildnf (argv[1], Mstdir, 0, 1, 1);     /* no anon, open, networked */
      72:     x (init (&io, argv[1]) < 0, "nfrcv: couldn't create notesfile");
      73: #ifdef  NFMAINT
      74:     {
      75:         char    tbuf[128];              /* title */
      76:         sprintf (buf, "%s: non-existent notesfile from %s created by nfrcv\n",
      77:             argv[1], argv[2]);
      78:         if (strlen (argv[1]) >= 14)
      79:         {
      80:         /*
      81: 		 * could be a truncation error; mark that in the message
      82: 		 */
      83:         sprintf (tbuf, "\n'%s' >= 14 characters long; check for abbreviations\n",
      84:             argv[1]);
      85:         strcat (buf, tbuf);
      86:         }
      87:         sprintf (tbuf, "Nfrcv creates %s", argv[1]);
      88:         nfcomment (NFMAINT, buf, tbuf, TRUE, 0);
      89:     }
      90: #endif	NFMAINT
      91:
      92: #else                           /* just tell about it */
      93:     x ((log = fopen (fn, "a")) == NULL, "netrcv: bad log open");
      94:     sprintf (buf, "%s: Non-existent notesfile received from %s at %s\n",
      95:         argv[1], argv[2], nowtime);
      96:     fprintf (log, "%s", buf);           /* log it in the log */
      97:     x (fclose (log) == EOF, "netrcv: bad close of log file");
      98: #ifdef  NFMAINT                     /* log it in a nf also? */
      99:     nfcomment (NFMAINT, buf, "non-notesfile to nfrcv", 0, 0);
     100: #endif
     101:     exit (NONF);
     102: #endif	AUTOCREATE					/* of autocreate else clause */
     103:     }
     104:
     105:     if ((io.descr.d_stat & NETWRKD) == 0)
     106:     {
     107:     printf ("%s is not a networked notefile on %s\n", argv[1], System);
     108:     finish (&io);
     109:     x ((log = fopen (fn, "a")) == NULL, "netrcv: bad log open");
     110:     fprintf (log, "%s: Non-networked notesfile received from %s at %s\n",
     111:         argv[1], argv[2], nowtime);
     112:     x (fclose (log) == EOF, "netrcv: bad close of log file");
     113:     exit (NONF);                    /* un-networked appears not there */
     114:     }
     115:
     116:     loadem (&io, stdin, LOCKIT, argv[2], NODETAIL, -1);
     117:
     118:     x ((log = fopen (fn, "a")) == NULL, "netrcv: couldnt open log file");
     119:     fprintf (log, "%s: insert (%d,%d), drop (%d,%d) from %s at %s\n",
     120:         argv[1], io.nnotrcvd, io.nrsprcvd, io.nnotdrop, io.nrspdrop,
     121:         argv[2], nowtime);
     122:     x (fclose (log) == EOF, "netrcv: bad close of log file");
     123:
     124: #ifdef  STATS
     125:     locknf (&io, DSCRLOCK);             /* bump count of netowrk calls rcvd */
     126:     getdscr (&io, &io.descr);
     127:     io.descr.netwrkins++;               /* bump the count */
     128:     putdscr (&io, &io.descr);
     129:     unlocknf (&io, DSCRLOCK);
     130: #endif	STATS
     131:
     132:     printf ("%s: Inserted: (%d,%d) Dropped: (%d,%d)\n",
     133:         argv[1], io.nnotrcvd, io.nrsprcvd, io.nnotdrop, io.nrspdrop);
     134:
     135:     finish (&io);
     136:     exit (GOOD);
     137: }

#### Defined functions

main defined in line 22; never used

#### Defined variables

rcsid defined in line 4; never used

#### Defined macros

MAINLINE defined in line 1; never used

Last modified: 1986-09-23 Generated: 2016-12-26 | Generated by src2html V0.67 page hit count: 988 |