BSD 3 development
[unix-history] / usr / src / cmd / uucp / imsg.c
#include "uucp.h"
char Msync[2] = "\020";
/*******
* imsg(msg, fn)
* char *msg;
* int fn;
*
* imsg - this is the initial read message routine -
* used before a protocol is agreed upon.
*
* return codes:
* EOF - no more messages
* 0 - message returned
*/
imsg(msg, fn)
char *msg;
int fn;
{
int ret;
DEBUG(7, "imsg %s>", "");
while ((ret = read(fn, msg, 1)) == 1) {
DEBUG(7, "%c", (*msg > 037) ? *msg : '-');
if (*msg == Msync[0])
break;
}
DEBUG(7, "%s\n", "<");
if (ret < 1)
return(EOF);
while (read(fn, msg, 1) == 1) {
DEBUG(7, "%c", (*msg > 037) ? *msg : '-');
if (*msg == '\n')
break;
if (*msg == '\0')
break;
msg++;
}
*msg = '\0';
return(0);
}
/***
* omsg(type, msg, fn)
* char type, *msg;
* int fn;
*
* omsg - this is the initial write message routine -
* used before a protocol is agreed upon.
*
* return code: always 0
*/
omsg(type, msg, fn)
char *msg, type;
int fn;
{
char buf[BUFSIZ], *c;
c = buf;
*c++ = Msync[0];
*c++ = type;
while (*msg)
*c++ = *msg++;
*c++ = '\0';
write(fn, buf, strlen(buf) + 1);
return(0);
}