Annotation of 41BSD/cmd/berknet/receive.c, revision 1.1.1.1

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

unix.superglobalmegacorp.com

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