Annotation of researchv10no/cmd/uucp/gio.c, revision 1.1.1.1

1.1       root        1: /*     /sccs/src/cmd/uucp/s.gio.c
                      2:        gio.c   1.2     8/30/84 17:37:24
                      3: */
                      4: #include "uucp.h"
                      5: VERSION(@(#)gio.c      1.2);
                      6: 
                      7: #include "pk.h"
                      8: 
                      9: jmp_buf Gfailbuf;
                     10: struct pack *Pk;
                     11: 
                     12: pkfail()
                     13: {
                     14:        longjmp(Gfailbuf, 1);
                     15: }
                     16: 
                     17: gturnon()
                     18: {
                     19:        struct pack *pkopen();
                     20:        if (setjmp(Gfailbuf))
                     21:                return(FAIL);
                     22:        if (Debug > 4)
                     23:                pkdebug = 1;
                     24:        Pk = pkopen(Ifn, Ofn);
                     25:        if ((int) Pk == NULL)
                     26:                return(FAIL);
                     27:        return(0);
                     28: }
                     29: 
                     30: 
                     31: gturnoff()
                     32: {
                     33:        if(setjmp(Gfailbuf))
                     34:                return(FAIL);
                     35:        pkclose(Pk);
                     36:        return(0);
                     37: }
                     38: 
                     39: 
                     40: gwrmsg(type, str, fn)
                     41: char type, *str;
                     42: {
                     43:        char bufr[BUFSIZ], *s;
                     44:        int len, i;
                     45: 
                     46:        if(setjmp(Gfailbuf))
                     47:                return(FAIL);
                     48:        bufr[0] = type;
                     49:        s = &bufr[1];
                     50:        while (*str)
                     51:                *s++ = *str++;
                     52:        *s = '\0';
                     53:        if (*(--s) == '\n')
                     54:                *s = '\0';
                     55:        len = strlen(bufr) + 1;
                     56:        if ((i = len % PACKSIZE)) {
                     57:                len = len + PACKSIZE - i;
                     58:                bufr[len - 1] = '\0';
                     59:        }
                     60:        gwrblk(bufr, len, fn);
                     61:        return(0);
                     62: }
                     63: 
                     64: 
                     65: /*ARGSUSED*/
                     66: grdmsg(str, fn)
                     67: char *str;
                     68: {
                     69:        unsigned len;
                     70: 
                     71:        if(setjmp(Gfailbuf))
                     72:                return(FAIL);
                     73:        for (;;) {
                     74:                len = pkread(Pk, str, PACKSIZE);
                     75:                if (len == 0)
                     76:                        continue;
                     77:                str += len;
                     78:                if (*(str - 1) == '\0')
                     79:                        break;
                     80:        }
                     81:        return(0);
                     82: }
                     83: 
                     84: 
                     85: gwrdata(fp1, fn)
                     86: FILE *fp1;
                     87: {
                     88:        char bufr[BUFSIZ];
                     89:        int len;
                     90:        int ret;
                     91:        time_t ticks;
                     92:        long bytes;
                     93:        char text[BUFSIZ];
                     94: 
                     95:        if(setjmp(Gfailbuf))
                     96:                return(FAIL);
                     97:        bytes = 0L;
                     98:        (void) millitick();     /* set msec timer */
                     99:        while ((len = fread(bufr, sizeof (char), BUFSIZ, fp1)) > 0) {
                    100:                bytes += len;
                    101:                ret = gwrblk(bufr, len, fn);
                    102:                if (ret != len) {
                    103:                        return(FAIL);
                    104:                }
                    105:                if (len != BUFSIZ)
                    106:                        break;
                    107:        }
                    108:        ret = gwrblk(bufr, 0, fn);
                    109:        ticks = millitick();
                    110:        (void) sprintf(text, "-> %ld / %ld.%.3d secs", bytes, ticks / 1000,
                    111:                ticks % 1000);
                    112:        DEBUG(4, "%s\n", text);
                    113:        syslog(text);
                    114:        return(0);
                    115: }
                    116: 
                    117: 
                    118: grddata(fn, fp2)
                    119: FILE *fp2;
                    120: {
                    121:        int len;
                    122:        char bufr[BUFSIZ];
                    123:        time_t ticks;
                    124:        long bytes;
                    125:        char text[BUFSIZ];
                    126: 
                    127:        if(setjmp(Gfailbuf))
                    128:                return(FAIL);
                    129:        bytes = 0L;
                    130:        (void) millitick();     /* set msec timer */
                    131:        for (;;) {
                    132:                len = grdblk(bufr, BUFSIZ, fn);
                    133:                if (len < 0) {
                    134:                        return(FAIL);
                    135:                }
                    136:                bytes += len;
                    137:                if (fwrite(bufr, sizeof (char), len, fp2) != len)
                    138:                        return(FAIL);
                    139:                if (len < BUFSIZ)
                    140:                        break;
                    141:        }
                    142:        ticks = millitick();
                    143:        (void) sprintf(text, "<- %ld / %ld.%.3d secs",
                    144:                bytes, ticks / 1000, ticks % 1000);
                    145:        DEBUG(4, "%s\n", text);
                    146:        syslog(text);
                    147:        return(0);
                    148: }
                    149: 
                    150: 
                    151: /*ARGSUSED*/
                    152: grdblk(blk, len,  fn)
                    153: char *blk;
                    154: {
                    155:        int i, ret;
                    156: 
                    157:        for (i = 0; i < len; i += ret) {
                    158:                ret = pkread(Pk, blk, len - i);
                    159:                if (ret < 0)
                    160:                        return(FAIL);
                    161:                blk += ret;
                    162:                if (ret == 0)
                    163:                        return(i);
                    164:        }
                    165:        return(i);
                    166: }
                    167: 
                    168: 
                    169: /*ARGSUSED*/
                    170: gwrblk(blk, len, fn)
                    171: char *blk;
                    172: {
                    173:        int ret;
                    174: 
                    175:        ret = pkwrite(Pk, blk, len);
                    176:        return(ret);
                    177: }

unix.superglobalmegacorp.com

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