Annotation of 43BSD/contrib/notes/src/dmpresp.c, revision 1.1

1.1     ! root        1: #include "parms.h"
        !             2: #include "structs.h"
        !             3: 
        !             4: #ifdef RCSIDENT
        !             5: static char rcsid[] = "$Header: dmpresp.c,v 1.7 85/01/18 15:09:02 notes Rel $";
        !             6: #endif RCSIDENT
        !             7: 
        !             8: /*
        !             9:  *     dmprsp(io, note, notenum, dumpfid, response number)
        !            10:  *     prints logical response number to the note whose number is
        !            11:  *     passed in. The note descriptor is also passed in. The dump if
        !            12:  *     sent to the file pointed to by dumpfid
        !            13:  *
        !            14:  *     Original Coding:        Ray Essick December 1981
        !            15:  *
        !            16:  */
        !            17: 
        !            18: 
        !            19: dmprsp (io, note, notenum, dmpfile, num, extensive, protocol)
        !            20: struct io_f *io;
        !            21: struct note_f  *note;
        !            22: FILE * dmpfile;
        !            23: {
        !            24:     int     roffset,
        !            25:             rrecnum;
        !            26:     int     i;
        !            27:     struct resp_f   rsprec;
        !            28:     struct when_f  *zdate;
        !            29:     char    buf[256];                                  /* hold intermediate strings */
        !            30: 
        !            31:     if (lrsp (io, notenum, num, &rsprec, &roffset, &rrecnum) == -1)
        !            32:        return;                                         /* no response */
        !            33: 
        !            34:     switch (protocol)
        !            35:     {
        !            36:        case 0:                                         /* original protocol */
        !            37:            fprintf (dmpfile, "R:%s:%ld:%s:%ld:%d\n", note -> n_id.sys,
        !            38:                    note -> n_id.uniqid, rsprec.r_id[roffset].sys,
        !            39:                    rsprec.r_id[roffset].uniqid, num);
        !            40: 
        !            41:            fprintf (dmpfile, "%s:%d:%s:\n", rsprec.r_auth[roffset].aname,
        !            42:                    rsprec.r_auth[roffset].aid & UIDMASK,
        !            43:                    rsprec.r_auth[roffset].asystem);
        !            44: 
        !            45:            zdate = &rsprec.r_when[roffset];
        !            46:            fprintf (dmpfile, "%d:%d:%d:%d:%d:%ld:\n", zdate -> w_year, zdate -> w_month,
        !            47:                    zdate -> w_day, zdate -> w_hours, zdate -> w_mins, zdate -> w_gmttime);
        !            48:            if (extensive)
        !            49:            {
        !            50:                zdate = &rsprec.r_rcvd[roffset];
        !            51:                fprintf (dmpfile, "%d:%d:%d:%d:%d:%ld:\n", zdate -> w_year, zdate -> w_month,
        !            52:                        zdate -> w_day, zdate -> w_hours, zdate -> w_mins, zdate -> w_gmttime);
        !            53: 
        !            54:                fprintf (dmpfile, "%s\n", rsprec.r_from[roffset]);
        !            55:            }
        !            56: 
        !            57: 
        !            58: 
        !            59:            fprintf (dmpfile, "%03o:%ld\n", rsprec.r_stat[roffset],
        !            60:                    ((long) rsprec.r_addr[roffset].textlen));/* make sure long */
        !            61: 
        !            62:            pageout (io, &rsprec.r_addr[roffset], dmpfile);
        !            63:            break;
        !            64: 
        !            65:        case 1:                                         /* protocol 1 */
        !            66:            fprintf (dmpfile, "Protocol: 1 Response\n");/* let it know */
        !            67:            fprintf (dmpfile, "Title: Re: %s\n", note -> ntitle);
        !            68:            fprintf (dmpfile, "Parent-ID: %s.%ld\n", note -> n_id.sys,
        !            69:                    note -> n_id.uniqid);
        !            70:            fprintf (dmpfile, "Author: %s@%s\n",
        !            71:                    rsprec.r_auth[roffset].aname, rsprec.r_auth[roffset].asystem);
        !            72:            if (extensive)
        !            73:                fprintf (dmpfile, "Author-UID: %d\n", rsprec.r_auth[roffset].aid);
        !            74:            fprintf (dmpfile, "Response-ID: %s.%ld\n", rsprec.r_id[roffset].sys,
        !            75:                    rsprec.r_id[roffset].uniqid);
        !            76:            sprdate (&rsprec.r_when[roffset], buf);     /* format date */
        !            77:            fprintf (dmpfile, "Date-Written: %s\n", buf);
        !            78:            if (extensive)                              /* dump extra information */
        !            79:            {
        !            80:                sprdate (&rsprec.r_rcvd[roffset], buf);
        !            81:                fprintf (dmpfile, "Date-Received: %s\n", buf);
        !            82:                fprintf (dmpfile, "Source-System: %s\n", rsprec.r_from[roffset]);
        !            83:            }
        !            84:            fprintf (dmpfile, "Status:");               /* do the bits */
        !            85:            if (rsprec.r_stat[roffset] & FRMNEWS)
        !            86:                fprintf (dmpfile, " Thru-News");
        !            87:            if (rsprec.r_stat[roffset] & DIRMES)
        !            88:                fprintf (dmpfile, " Director-Message");
        !            89:            if (rsprec.r_stat[roffset] & WRITONLY)
        !            90:                fprintf (dmpfile, " Write-Only");
        !            91:            if (rsprec.r_stat[roffset] & ORPHND)
        !            92:                fprintf (dmpfile, " Foster-Parent");
        !            93:            putc ('\n', dmpfile);
        !            94:            fprintf (dmpfile, "Text-Length: %ld bytes\n",
        !            95:                    (long) rsprec.r_addr[roffset].textlen);
        !            96:            pageout (io, &rsprec.r_addr[roffset], dmpfile);/* dump text */
        !            97:            break;
        !            98: 
        !            99:        default: 
        !           100:            fprintf (stderr, "dmpresp: Unsupported Protocol (%d)\n",
        !           101:                    protocol);
        !           102:            break;
        !           103:     }
        !           104: 
        !           105: }
        !           106: 
        !           107: /*     dmpall - dump all the responses to a note.  Merely calls
        !           108:  *     dmpresp repetitively to dump all of them 
        !           109:  *
        !           110:  *     Original Coding:        Ray Essick      December 1981
        !           111:  */
        !           112: dmprall (io, note, notenum, dmpfile, extensive, protocol)
        !           113: struct io_f *io;
        !           114: struct note_f  *note;
        !           115: FILE * dmpfile;
        !           116: {
        !           117:     int     num;
        !           118: 
        !           119:     for (num = 1; num <= note -> n_nresp; num++)
        !           120:     {
        !           121:        dmprsp (io, note, notenum, dmpfile, num, extensive, protocol);
        !           122:     }
        !           123: }

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.