Annotation of 43BSD/contrib/notes/src/dmpresp.c, revision 1.1.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.