|
|
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: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.