simplified how the "scp" command line is created in the libssh2_scp_recv()

function
This commit is contained in:
Daniel Stenberg 2009-03-15 22:38:47 +00:00
parent 1a630c5c09
commit f56b8ef605

View File

@ -58,11 +58,7 @@ libssh2_scp_recv(LIBSSH2_SESSION * session, const char *path, struct stat * sb)
session->scpRecv_mtime = 0;
session->scpRecv_atime = 0;
session->scpRecv_command_len = path_len + sizeof("scp -f ");
if (sb) {
session->scpRecv_command_len++;
}
session->scpRecv_command_len = path_len + sizeof("scp -f ") + (sb?1:0);
session->scpRecv_command =
LIBSSH2_ALLOC(session, session->scpRecv_command_len);
@ -72,17 +68,9 @@ libssh2_scp_recv(LIBSSH2_SESSION * session, const char *path, struct stat * sb)
0);
return NULL;
}
if (sb) {
memcpy(session->scpRecv_command, "scp -pf ",
sizeof("scp -pf ") - 1);
memcpy(session->scpRecv_command + sizeof("scp -pf ") - 1, path,
path_len);
} else {
memcpy(session->scpRecv_command, "scp -f ", sizeof("scp -f ") - 1);
memcpy(session->scpRecv_command + sizeof("scp -f ") - 1, path,
path_len);
}
session->scpRecv_command[session->scpRecv_command_len - 1] = '\0';
/* sprintf() is fine here since we allocated a large enough buffer */
sprintf(session->scpRecv_command, "scp -%sf %s", sb?"p":"", path);
_libssh2_debug(session, LIBSSH2_DBG_SCP,
"Opening channel for SCP receive");