Annotation of 42BSD/usr.bin/uucp/imsg.c, revision 1.1.1.1

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

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.