public int ClientRun(ClientInfo clientInfo, int pid, string[] args) { var options = clientInfo.Options; var ioStream = clientInfo.IoStream; FileList fList; List <FileStruct> fileList; WinRsync.SetupProtocol(clientInfo); if (options.ProtocolVersion >= 23 && !options.ReadBatch) { ioStream.IoStartMultiplexIn(); } if (options.AmSender) { ioStream.IoStartBufferingOut(); if (options.DeleteMode && !options.DeleteExcluded) { var excl = new Exclude(options); excl.SendExcludeList(ioStream); } if (options.Verbose > 3) { Log.Write("File list sent\n"); } ioStream.Flush(); fList = new FileList(options); fileList = fList.SendFileList(clientInfo, args); if (options.Verbose > 3) { Log.WriteLine("file list sent"); } ioStream.Flush(); var sender = new Sender(options); sender.SendFiles(fileList, clientInfo); ioStream.Flush(); ioStream.WriteInt(-1); return(-1); } options.Dir = args[0]; options.Dir = Path.GetFullPath(options.Dir ?? string.Empty); if (!options.ReadBatch) { var excl = new Exclude(options); excl.SendExcludeList(ioStream); } fList = new FileList(options); fileList = fList.ReceiveFileList(clientInfo); return(Daemon.DoReceive(clientInfo, fileList, null)); }
public int ClientRun(ClientInfo clientInfo, int pid, string[] args) { Options options = clientInfo.Options; IOStream ioStream = clientInfo.IoStream; FileList fList; List <FileStruct> fileList; MainClass.SetupProtocol(clientInfo); if (options.protocolVersion >= 23 && !options.readBatch) { ioStream.IOStartMultiplexIn(); } if (options.amSender) { ioStream.IOStartBufferingOut(); if (options.deleteMode && !options.deleteExcluded) { Exclude excl = new Exclude(options); excl.SendExcludeList(ioStream); } if (options.verbose > 3) { Log.Write("File list sent\n"); } ioStream.Flush(); fList = new FileList(options); fileList = fList.sendFileList(clientInfo, args); if (options.verbose > 3) { Log.WriteLine("file list sent"); } ioStream.Flush(); Sender sender = new Sender(options); sender.SendFiles(fileList, clientInfo); ioStream.Flush(); ioStream.writeInt(-1); return(-1); } options.dir = args[0]; if (options.dir.CompareTo(String.Empty) != 0 && options.dir.IndexOf(':') == -1) { if (options.dir[0] == '/') { options.dir = "c:" + options.dir; } else if (options.dir.IndexOf('/') != -1) { options.dir = options.dir.Insert(options.dir.IndexOf('/') - 1, ":"); } } if (!options.readBatch) { Exclude excl = new Exclude(options); excl.SendExcludeList(ioStream); } fList = new FileList(options); fileList = fList.receiveFileList(clientInfo); return(Daemon.DoReceive(clientInfo, fileList, null)); }