faubackup2/src/copier filesender.cpp,1.6,1.7

Erik Merkel <[email protected]> Sun, 03 Jul 2005 19:06:57 +0000
Newsgroups gmane.comp.sysutils.backup.faubackup.cvs
Message-ID <[email protected]>
Update of /cvsroot/faubackup/faubackup2/src/copier
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv30131/src/copier

Modified Files:
	filesender.cpp 
Log Message:
better error correction if files are deleted during the backup process


Index: filesender.cpp
===================================================================
RCS file: /cvsroot/faubackup/faubackup2/src/copier/filesender.cpp,v
retrieving revision 1.6
retrieving revision 1.7
diff -C2 -d -r1.6 -r1.7
*** filesender.cpp	3 Jul 2005 18:37:15 -0000	1.6
--- filesender.cpp	3 Jul 2005 19:06:55 -0000	1.7
***************
*** 10,13 ****
--- 10,14 ----
  #include "regexp/regexp.hpp"
  #include "rsync/rsync.hpp"
+ #include "rsync/rsync++_calls.hpp"
  
  namespace faubackup
***************
*** 57,60 ****
--- 58,64 ----
  		return;
  	}
+ 	network->sendByte(CopyRegFile);
+ 	network->sendString(name);
+ 	sendInode(name);
  	network->sendFile(file);
  	fclose(file);
***************
*** 75,80 ****
  void FileSender::rdiff_file(string name)
  {
! 	output.information("rdiff file!", DEBUG_OUTPUT);
! 	delta(currentWorkDir + name, *network, *network);
  }
  
--- 79,97 ----
  void FileSender::rdiff_file(string name)
  {
! 	if(!existFile(currentWorkDir + name)) {
! 		/* ignore all incoming rsync packages */
! 		char dummy[65536];
! 		int size, eof;
! 		eof = false;
! 		while(!eof)
! 			getPackage(dummy, &size, &eof, network);
! 		clearEOF(network);
! 	} else {
! 		network->sendByte(RdiffRegFile);
! 		network->sendString(name);
! 		sendInode(name);
! 		output.information("rdiff file!", DEBUG_OUTPUT);
! 		delta(currentWorkDir + name, *network, *network);
! 	}
  }
  
***************
*** 127,133 ****
  		switch(message) {
  		case CopyRegFile :
- 			network->sendByte(message);
- 			network->sendString(name);
- 			sendInode(name);
  			reg_file_copy(name);
  			break;
--- 144,147 ----
***************
*** 143,149 ****
  			break;
  		case RdiffRegFile :
- 			network->sendByte(message);
- 			network->sendString(name);
- 			sendInode(name);
  			rdiff_file(name);
  			break;
--- 157,160 ----
***************
*** 152,155 ****
--- 163,168 ----
  			break;
  		case SymlinkFile :
+ 			if(!existFile(currentWorkDir + name))
+ 				continue;
  			network->sendByte(message);
  			network->sendString(name);



-------------------------------------------------------
SF.Net email is sponsored by: Discover Easy Linux Migration Strategies
from IBM. Find simple to follow Roadmaps, straightforward articles,
informative Webcasts and more! Get everything you need to get up to
speed, fast. http://ads.osdn.com/?ad_id=7477&alloc_id=16492&op=click