Dear List,

I'm trying to get diff/removed data and it's offset out. So I write a
functions in receive_data. When I run backup, I found there is a weird
behavior which I don't understand.

i = recv_token(f_in, &data) will receive (i = -1, offset2 = 0) some
where in the middle of the transfer procedure. That's to say, it's going
to transfer the first data block from sender, but I have been
transferring almost half of the file. I noticed it was 92nd block
(sum.blength = 700) .

Hope I have a clear explanation. I'm really confused now. Any advice and
suggestion is well appreciated.


Below is my code segment to generate file for test.

My Procedure (file 1 and file 2 have the same name, just binary
difference): 
Step 1: backup File 1
Step 2: backup Fil 2



-- 
Daniel Li


File 1: 
 This is the first time backup file.
>               count = 1;
>               nSize = 1;
>               nBlock = 256;
>               nInterval = 4;
>               nAdjust = 256;
> 
>               printf("\nstart to build origin files!\n");
>               ch = 0;
>               for(l = 0; l < count; l++)
>               {
>                       memset(buffer,0, 256);
>                       
> sprintf(buffer,"media-test-3MB-file/origin/test/test%02d.dat",l);
>                       printf("writting %s \n",buffer);
>                       fd = open(buffer, O_RDWR|O_CREAT|O_EXCL, 
> S_IRUSR|S_IWUSR);
>                       for(lll = 0; lll < nSize; lll++)
>                       {
>                               for(mmm = 0; mmm < nAdjust; mmm++)
>                               {
>                                       for(nnn = 0; nnn < nBlock; nnn++)
>                                       {
>                                               write_fhead_char(fd, &ch, 1);
>                                       }
>                                       ch++;
>                               }
>                       }
>               }
>               printf("origin files done!\n");
> 



File 2:
 This is the second time backup. when transferring this file, I met the 
trouble. 
>               printf("\nstart to build added data files!\n");
>               ch = 0;
>               for(l = 0; l < count; l++)
>               {
>                       memset(buffer,0, 256);
>                       
> sprintf(buffer,"media-test-3MB-file/add/test/test%02d.dat",l);
>                       printf("writting %s \n",buffer);
>                       fd = open(buffer, O_RDWR|O_CREAT|O_EXCL, 
> S_IRUSR|S_IWUSR);
>                       for(lll = 0; lll < nSize + 1; lll++)
>                       {
>                               for(mmm = 0; mmm < nAdjust; mmm++)
>                               {
>                                       if(mmm % nInterval == 0)
>                                       {
>                                               for(nnn = 0; nnn < nBlock; 
> nnn++)
>                                               {
>                                                       write_fhead_char(fd, 
> &ch, 1);
>                                               }
>                                       }
> 
>                                       for(nnn = 0; nnn < nBlock; nnn++)
>                                       {
>                                               write_fhead_char(fd, &ch, 1);
>                                       }
>                                       ch++;
>                               }
>                       }
>                       close(fd);
>               }

-- 
Please use reply-all for most replies to avoid omitting the mailing list.
To unsubscribe or change options: https://lists.samba.org/mailman/listinfo/rsync
Before posting, read: http://www.catb.org/~esr/faqs/smart-questions.html

Reply via email to