home *** CD-ROM | disk | FTP | other *** search
/ InfoMagic Internet Tools 1993 July / Internet Tools.iso / RockRidge / mail / mmdf / mmdf-IIb.43 / lib / dial / d_data.c < prev    next >
Encoding:
C/C++ Source or Header  |  1986-02-01  |  1.3 KB  |  68 lines

  1. #include  "d_proto.h"
  2. #include  "d_returns.h"
  3. #include <signal.h>
  4. #include  "d_syscodes.h"
  5.  
  6.  
  7. /*
  8.  *     D_SNDDATA
  9.  *
  10.  *     this function is called to send the stuff in the data transmit queue.
  11.  *
  12.  *     eot -- set to non-zero if the EOT bit should be set on the packet
  13.  */
  14.  
  15. d_sndata(eot)
  16.   register int  eot;
  17.     {
  18.     extern char  d_xqueue[], *d_xqpt;
  19.     extern int  d_snseq, d_xqcnt;
  20.     register int  length, result;
  21.     char  packet[MAXPACKET + 2];
  22.  
  23.     d_snseq = d_incseq(d_snseq);
  24.     length = d_bldpack(DATA, d_snseq, eot, d_xqueue, packet);
  25.  
  26.     d_xqcnt = 0;
  27.     d_xqpt = d_xqueue;
  28.  
  29.     result = d_snpkt(DATA, packet, length);
  30.     return(result);
  31.     }
  32.  
  33. /*
  34.  *     D_GETDATA
  35.  *
  36.  *     this function is called to read a DATA packet into the receive
  37.  *     data queue.
  38.  */
  39.  
  40. d_getdata()
  41.     {
  42.     extern char  d_rdqueue[], *d_rdqpt;
  43.     extern int  d_rdqcnt, d_rdeot;
  44.     register int  nout, length;
  45.     char  packet[MAXPACKET + 2];
  46.  
  47. #ifdef D_DBGLOG
  48.     d_dbglog("d_getdata", "called for more stuff");
  49. #endif D_DBGLOG
  50.  
  51.     length = d_watch(packet, DATA);
  52.  
  53.     if (length < 0)
  54.       return(length);
  55.  
  56.  
  57.     if ((nout = d_decode(&packet[TEXTOFF], length - 6, d_rdqueue)) < 0)
  58.       return(nout);
  59.  
  60.     d_rdqcnt = nout;
  61.     d_rdqpt = d_rdqueue;
  62.  
  63.     if (d_fromhex(packet[FLAGOFF]) & EOFBIT)
  64.       d_rdeot = 1;
  65.  
  66.     return(D_OK);
  67.     }
  68.