Annotation of 43BSD/old/berknet/receive.c, revision 1.1

1.1     ! root        1: static char sccsid[] = "@(#)receive.c  4.1     (Berkeley)      10/2/82";
        !             2: 
        !             3: /*
        !             4:        receive.c
        !             5: 
        !             6:        take the file sent by "store.c" and write it locally
        !             7: */
        !             8: # include "defs.h"
        !             9: 
        !            10: /* global variables */
        !            11: struct daemonparms netd;
        !            12: 
        !            13: main(argc,argv)
        !            14:   char **argv; {
        !            15:        FILE *fp;
        !            16:        char *p, save[40];
        !            17:        int i, n;
        !            18:        char buf[BUFSIZ];
        !            19:        long length;
        !            20:        debugflg = DBV;
        !            21:        setupdaemon(argc,argv);
        !            22:        putchar('!');
        !            23:        for(;;){
        !            24:                initseqno();
        !            25:                while((i = nread(buf,20)) == BROKENREAD);
        !            26:                if(i != 20){
        !            27:                        printf("Didn't read file name\n");
        !            28:                        exit(EX_USAGE);
        !            29:                        }
        !            30:                for(p=buf; *p && *p != '\n' && *p != ' '; p++);
        !            31:                *p = 0;
        !            32:                printf("Creating file %s ",buf);
        !            33:                fp = fopen(buf,"w");
        !            34:                if(fp == NULL){
        !            35:                        fp = fopen(buf,"w");
        !            36:                        exit(EX_OSFILE);
        !            37:                        }
        !            38:                strcpy(save,buf);
        !            39:                while((i = nread(buf,10)) == BROKENREAD);
        !            40:                if(i != 10){
        !            41:                        printf("Didn't read length right\n");
        !            42:                        exit(EX_SOFTWARE);
        !            43:                        }
        !            44:                length = atol(buf+1);
        !            45:                printf("length %ld\n",length);
        !            46:                while(length > 0){
        !            47:                        i = min(length,512);
        !            48:                        while((n = nread(buf,i)) == BROKENREAD);
        !            49:                        length -= n;
        !            50:                        fwrite(buf,1,n,fp);
        !            51:                        }
        !            52:                fclose(fp);
        !            53:                printf("Finished file %s\n",save);
        !            54:                }
        !            55:        }

unix.superglobalmegacorp.com

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