filenames. The fix will need some testing.
extern int remote_version;
extern int remote_version;
void setup_protocol(int f_out,int f_in)
{
void setup_protocol(int f_out,int f_in)
{
+ if (verbose > 2)
+ fprintf(FINFO, "local_version=%d remote_version=%d\n",
+ PROTOCOL_VERSION, remote_version);
+
if (remote_version >= 12) {
if (am_server) {
checksum_seed = time(NULL);
if (remote_version >= 12) {
if (am_server) {
checksum_seed = time(NULL);
server_options(args,&argc);
server_options(args,&argc);
- if (path && *path) {
- dir = strdup(path);
- p = strrchr(dir,'/');
- if (p && !relative_paths) {
- *p = 0;
- if (!dir[0])
- args[argc++] = "/";
- else
- args[argc++] = dir;
- p++;
- } else {
- args[argc++] = ".";
- p = dir;
- }
- if (p[0])
- args[argc++] = path;
- }
+ args[argc++] = ".";
+
+ if (path && *path)
+ args[argc++] = path;
void do_server_sender(int argc,char *argv[])
{
int i;
void do_server_sender(int argc,char *argv[])
{
int i;
if (verbose > 2)
fprintf(FERROR,"server_sender starting pid=%d\n",(int)getpid());
if (!relative_paths && chdir(dir) != 0) {
if (verbose > 2)
fprintf(FERROR,"server_sender starting pid=%d\n",(int)getpid());
if (!relative_paths && chdir(dir) != 0) {
- fprintf(FERROR,"chdir %s: %s (3)\n",dir,strerror(errno));
- exit_cleanup(1);
+ fprintf(FERROR,"chdir %s: %s (3)\n",dir,strerror(errno));
+ exit_cleanup(1);
}
argc--;
argv++;
if (strcmp(dir,".")) {
}
argc--;
argv++;
if (strcmp(dir,".")) {
- int l = strlen(dir);
- if (strcmp(dir,"/") == 0)
- l = 0;
- for (i=0;i<argc;i++)
- argv[i] += l+1;
+ int l = strlen(dir);
+ if (strcmp(dir,"/") == 0)
+ l = 0;
+ for (i=0;i<argc;i++)
+ argv[i] += l+1;
}
if (argc == 0 && recurse) {
}
if (argc == 0 && recurse) {
- argc=1;
- argv--;
- argv[0] = ".";
+ argc=1;
+ argv--;
+ argv[0] = ".";
void do_server_recv(int argc,char *argv[])
{
int status;
void do_server_recv(int argc,char *argv[])
{
int status;
struct file_list *flist;
char *local_name=NULL;
struct file_list *flist;
char *local_name=NULL;
if (verbose > 2)
fprintf(FERROR,"server_recv(%d) starting pid=%d\n",argc,(int)getpid());
if (argc > 0) {
if (verbose > 2)
fprintf(FERROR,"server_recv(%d) starting pid=%d\n",argc,(int)getpid());
if (argc > 0) {
- dir = argv[0];
- argc--;
- argv++;
- if (chdir(dir) != 0) {
- fprintf(FERROR,"chdir %s : %s (4)\n",dir,strerror(errno));
- exit_cleanup(1);
- }
+ dir = argv[0];
+ argc--;
+ argv++;
+ if (chdir(dir) != 0) {
+ fprintf(FERROR,"chdir %s : %s (4)\n",
+ dir,strerror(errno));
+ exit_cleanup(1);
+ }
- if (strcmp(dir,".")) {
- argv[0] += strlen(dir);
- if (argv[0][0] == '/') argv[0]++;
- }
- local_name = get_local_name(flist,argv[0]);
+ if (strcmp(dir,".")) {
+ argv[0] += strlen(dir);
+ if (argv[0][0] == '/') argv[0]++;
+ }
+ local_name = get_local_name(flist,argv[0]);
}
status = do_recv(STDIN_FILENO,STDOUT_FILENO,flist,local_name);
}
status = do_recv(STDIN_FILENO,STDOUT_FILENO,flist,local_name);