=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/ssh/Attic/sftp-int.c,v retrieving revision 1.36 retrieving revision 1.36.2.1 diff -u -r1.36 -r1.36.2.1 --- src/usr.bin/ssh/Attic/sftp-int.c 2001/04/15 08:43:46 1.36 +++ src/usr.bin/ssh/Attic/sftp-int.c 2001/09/27 19:03:55 1.36.2.1 @@ -26,7 +26,7 @@ /* XXX: recursive operations */ #include "includes.h" -RCSID("$OpenBSD: sftp-int.c,v 1.36 2001/04/15 08:43:46 markus Exp $"); +RCSID("$OpenBSD: sftp-int.c,v 1.36.2.1 2001/09/27 19:03:55 jason Exp $"); #include @@ -80,6 +80,7 @@ }; const struct CMD cmds[] = { + { "bye", I_QUIT }, { "cd", I_CHDIR }, { "chdir", I_CHDIR }, { "chgrp", I_CHGRP }, @@ -113,7 +114,7 @@ { NULL, -1} }; -void +static void help(void) { printf("Available commands:\n"); @@ -145,7 +146,7 @@ printf("? Synonym for help\n"); } -void +static void local_do_shell(const char *args) { int status; @@ -165,10 +166,10 @@ /* XXX: child has pipe fds to ssh subproc open - issue? */ if (args) { debug3("Executing %s -c \"%s\"", shell, args); - execl(shell, shell, "-c", args, NULL); + execl(shell, shell, "-c", args, (char *)NULL); } else { debug3("Executing %s", shell); - execl(shell, shell, NULL); + execl(shell, shell, (char *)NULL); } fprintf(stderr, "Couldn't execute \"%s\": %s\n", shell, strerror(errno)); @@ -182,7 +183,7 @@ error("Shell exited with status %d", WEXITSTATUS(status)); } -void +static void local_do_ls(const char *args) { if (!args || !*args) @@ -198,7 +199,7 @@ } } -char * +static char * path_append(char *p1, char *p2) { char *ret; @@ -206,13 +207,14 @@ ret = xmalloc(len); strlcpy(ret, p1, len); - strlcat(ret, "/", len); + if (strcmp(p1, "/") != 0) + strlcat(ret, "/", len); strlcat(ret, p2, len); return(ret); } -char * +static char * make_absolute(char *p, char *pwd) { char *abs; @@ -226,7 +228,7 @@ return(p); } -int +static int infer_path(const char *p, char **ifp) { char *cp; @@ -246,7 +248,7 @@ return(0); } -int +static int parse_getput_flags(const char **cpp, int *pflag) { const char *cp = *cpp; @@ -269,7 +271,7 @@ return(0); } -int +static int get_pathname(const char **cpp, char **path) { const char *cp = *cpp, *end; @@ -317,7 +319,7 @@ return (-1); } -int +static int is_dir(char *path) { struct stat sb; @@ -329,7 +331,7 @@ return(sb.st_mode & S_IFDIR); } -int +static int remote_is_dir(int in, int out, char *path) { Attrib *a; @@ -342,7 +344,7 @@ return(a->perm & S_IFDIR); } -int +static int process_get(int in, int out, char *src, char *dst, char *pwd, int pflag) { char *abs_src = NULL; @@ -419,7 +421,7 @@ return(err); } -int +static int process_put(int in, int out, char *src, char *dst, char *pwd, int pflag) { char *tmp_dst = NULL; @@ -499,7 +501,7 @@ return(err); } -int +static int parse_args(const char **cpp, int *pflag, unsigned long *n_arg, char **path1, char **path2) { @@ -644,7 +646,7 @@ return(cmdnum); } -int +static int parse_dispatch_command(int in, int out, const char *cmd, char **pwd) { char *path1, *path2, *tmp;