home *** CD-ROM | disk | FTP | other *** search
/ minnie.tuhs.org / unixen.tar / unixen / PDP-11 / Trees / V7 / usr / src / cmd / uucp / imsg.c < prev    next >
Encoding:
C/C++ Source or Header  |  1979-01-10  |  1.1 KB  |  71 lines

  1. #include "uucp.h"
  2.  
  3.  
  4. char Msync[2] = "\020";
  5. /*******
  6.  *    imsg(msg, fn)
  7.  *    char *msg;
  8.  *    int fn;
  9.  *
  10.  *    imsg  -  this is the initial read message routine -
  11.  *    used before a protocol is agreed upon.
  12.  *
  13.  *    return codes:
  14.  *        EOF - no more messages
  15.  *        0 - message returned
  16.  */
  17.  
  18. imsg(msg, fn)
  19. char *msg;
  20. int fn;
  21. {
  22.     int ret;
  23.     DEBUG(7, "imsg %s>", "");
  24.     while ((ret = read(fn, msg, 1)) == 1) {
  25.         DEBUG(7, "%c", (*msg > 037) ? *msg : '-');
  26.         if (*msg == Msync[0])
  27.             break;
  28.     }
  29.     DEBUG(7, "%s\n", "<");
  30.     if (ret < 1)
  31.         return(EOF);
  32.     while (read(fn, msg, 1) == 1) {
  33.         DEBUG(7, "%c", (*msg > 037) ? *msg : '-');
  34.         if (*msg == '\n')
  35.             break;
  36.         if (*msg == '\0')
  37.             break;
  38.         msg++;
  39.     }
  40.     *msg = '\0';
  41.     return(0);
  42. }
  43.  
  44.  
  45. /***
  46.  *    omsg(type, msg, fn)
  47.  *    char type, *msg;
  48.  *    int fn;
  49.  *
  50.  *    omsg  -  this is the initial write message routine -
  51.  *    used before a protocol is agreed upon.
  52.  *
  53.  *    return code:  always 0
  54.  */
  55.  
  56. omsg(type, msg, fn)
  57. char *msg, type;
  58. int fn;
  59. {
  60.     char buf[BUFSIZ], *c;
  61.  
  62.     c = buf;
  63.     *c++ = Msync[0];
  64.     *c++ = type;
  65.     while (*msg)
  66.         *c++ = *msg++;
  67.     *c++ = '\0';
  68.     write(fn, buf, strlen(buf) + 1);
  69.     return(0);
  70. }
  71.