mirror of
https://github.com/libssh2/libssh2.git
synced 2025-11-23 01:22:37 +03:00
src: fix checksrc warnings
Use checksrc.pl from the curl project, with (for now) suppressed long line warnings and indentation set to 4 spaces. Fixes are whitespace for the most part. Warning count went down from 2704 to 12. Also fix codespell typos, two non-ANSI C89 comments and a stray tab in include/libssh2.h. Ref: https://github.com/libssh2/libssh2/pull/235
This commit is contained in:
223
src/scp.c
223
src/scp.c
@@ -141,9 +141,9 @@ shell_quotearg(const char *path, unsigned char *buf,
|
||||
endp = &buf[bufsize];
|
||||
src = path;
|
||||
dst = buf;
|
||||
while (*src && dst < endp - 1) {
|
||||
while(*src && dst < endp - 1) {
|
||||
|
||||
switch (*src) {
|
||||
switch(*src) {
|
||||
/*
|
||||
* Special handling for apostrophe.
|
||||
* An apostrophe is always written in quotation marks, e.g.
|
||||
@@ -151,16 +151,16 @@ shell_quotearg(const char *path, unsigned char *buf,
|
||||
*/
|
||||
|
||||
case '\'':
|
||||
switch (state) {
|
||||
switch(state) {
|
||||
case UQSTRING: /* Unquoted string */
|
||||
if (dst+1 >= endp)
|
||||
if(dst + 1 >= endp)
|
||||
return 0;
|
||||
*dst++ = '"';
|
||||
break;
|
||||
case QSTRING: /* Continue quoted string */
|
||||
break;
|
||||
case SQSTRING: /* Close single quoted string */
|
||||
if (dst+2 >= endp)
|
||||
if(dst + 2 >= endp)
|
||||
return 0;
|
||||
*dst++ = '\'';
|
||||
*dst++ = '"';
|
||||
@@ -179,20 +179,20 @@ shell_quotearg(const char *path, unsigned char *buf,
|
||||
*/
|
||||
|
||||
case '!':
|
||||
switch (state) {
|
||||
switch(state) {
|
||||
case UQSTRING:
|
||||
if (dst+1 >= endp)
|
||||
if(dst + 1 >= endp)
|
||||
return 0;
|
||||
*dst++ = '\\';
|
||||
break;
|
||||
case QSTRING:
|
||||
if (dst+2 >= endp)
|
||||
if(dst + 2 >= endp)
|
||||
return 0;
|
||||
*dst++ = '"'; /* Closing quotation mark */
|
||||
*dst++ = '\\';
|
||||
break;
|
||||
case SQSTRING: /* Close single quoted string */
|
||||
if (dst+2 >= endp)
|
||||
if(dst + 2 >= endp)
|
||||
return 0;
|
||||
*dst++ = '\'';
|
||||
*dst++ = '\\';
|
||||
@@ -208,14 +208,14 @@ shell_quotearg(const char *path, unsigned char *buf,
|
||||
*/
|
||||
|
||||
default:
|
||||
switch (state) {
|
||||
switch(state) {
|
||||
case UQSTRING:
|
||||
if (dst+1 >= endp)
|
||||
if(dst + 1 >= endp)
|
||||
return 0;
|
||||
*dst++ = '\'';
|
||||
break;
|
||||
case QSTRING:
|
||||
if (dst+2 >= endp)
|
||||
if(dst + 2 >= endp)
|
||||
return 0;
|
||||
*dst++ = '"'; /* Closing quotation mark */
|
||||
*dst++ = '\'';
|
||||
@@ -229,21 +229,21 @@ shell_quotearg(const char *path, unsigned char *buf,
|
||||
break;
|
||||
}
|
||||
|
||||
if (dst+1 >= endp)
|
||||
if(dst + 1 >= endp)
|
||||
return 0;
|
||||
*dst++ = *src++;
|
||||
}
|
||||
|
||||
switch (state) {
|
||||
switch(state) {
|
||||
case UQSTRING:
|
||||
break;
|
||||
case QSTRING: /* Close quoted string */
|
||||
if (dst+1 >= endp)
|
||||
if(dst + 1 >= endp)
|
||||
return 0;
|
||||
*dst++ = '"';
|
||||
break;
|
||||
case SQSTRING: /* Close single quoted string */
|
||||
if (dst+1 >= endp)
|
||||
if(dst + 1 >= endp)
|
||||
return 0;
|
||||
*dst++ = '\'';
|
||||
break;
|
||||
@@ -251,7 +251,7 @@ shell_quotearg(const char *path, unsigned char *buf,
|
||||
break;
|
||||
}
|
||||
|
||||
if (dst+1 >= endp)
|
||||
if(dst + 1 >= endp)
|
||||
return 0;
|
||||
*dst = '\0';
|
||||
|
||||
@@ -275,7 +275,7 @@ scp_recv(LIBSSH2_SESSION * session, const char *path, libssh2_struct_stat * sb)
|
||||
int tmp_err_code;
|
||||
const char *tmp_err_msg;
|
||||
|
||||
if (session->scpRecv_state == libssh2_NB_state_idle) {
|
||||
if(session->scpRecv_state == libssh2_NB_state_idle) {
|
||||
session->scpRecv_mode = 0;
|
||||
session->scpRecv_size = 0;
|
||||
session->scpRecv_mtime = 0;
|
||||
@@ -287,7 +287,7 @@ scp_recv(LIBSSH2_SESSION * session, const char *path, libssh2_struct_stat * sb)
|
||||
session->scpRecv_command =
|
||||
LIBSSH2_ALLOC(session, session->scpRecv_command_len);
|
||||
|
||||
if (!session->scpRecv_command) {
|
||||
if(!session->scpRecv_command) {
|
||||
_libssh2_error(session, LIBSSH2_ERROR_ALLOC,
|
||||
"Unable to allocate a command buffer for "
|
||||
"SCP session");
|
||||
@@ -312,7 +312,7 @@ scp_recv(LIBSSH2_SESSION * session, const char *path, libssh2_struct_stat * sb)
|
||||
session->scpRecv_state = libssh2_NB_state_created;
|
||||
}
|
||||
|
||||
if (session->scpRecv_state == libssh2_NB_state_created) {
|
||||
if(session->scpRecv_state == libssh2_NB_state_created) {
|
||||
/* Allocate a channel */
|
||||
session->scpRecv_channel =
|
||||
_libssh2_channel_open(session, "session",
|
||||
@@ -320,8 +320,8 @@ scp_recv(LIBSSH2_SESSION * session, const char *path, libssh2_struct_stat * sb)
|
||||
LIBSSH2_CHANNEL_WINDOW_DEFAULT,
|
||||
LIBSSH2_CHANNEL_PACKET_DEFAULT, NULL,
|
||||
0);
|
||||
if (!session->scpRecv_channel) {
|
||||
if (libssh2_session_last_errno(session) !=
|
||||
if(!session->scpRecv_channel) {
|
||||
if(libssh2_session_last_errno(session) !=
|
||||
LIBSSH2_ERROR_EAGAIN) {
|
||||
LIBSSH2_FREE(session, session->scpRecv_command);
|
||||
session->scpRecv_command = NULL;
|
||||
@@ -337,17 +337,18 @@ scp_recv(LIBSSH2_SESSION * session, const char *path, libssh2_struct_stat * sb)
|
||||
session->scpRecv_state = libssh2_NB_state_sent;
|
||||
}
|
||||
|
||||
if (session->scpRecv_state == libssh2_NB_state_sent) {
|
||||
if(session->scpRecv_state == libssh2_NB_state_sent) {
|
||||
/* Request SCP for the desired file */
|
||||
rc = _libssh2_channel_process_startup(session->scpRecv_channel, "exec",
|
||||
sizeof("exec") - 1,
|
||||
(char *) session->scpRecv_command,
|
||||
session->scpRecv_command_len);
|
||||
if (rc == LIBSSH2_ERROR_EAGAIN) {
|
||||
if(rc == LIBSSH2_ERROR_EAGAIN) {
|
||||
_libssh2_error(session, LIBSSH2_ERROR_EAGAIN,
|
||||
"Would block requesting SCP startup");
|
||||
return NULL;
|
||||
} else if (rc) {
|
||||
}
|
||||
else if(rc) {
|
||||
LIBSSH2_FREE(session, session->scpRecv_command);
|
||||
session->scpRecv_command = NULL;
|
||||
goto scp_recv_error;
|
||||
@@ -362,14 +363,15 @@ scp_recv(LIBSSH2_SESSION * session, const char *path, libssh2_struct_stat * sb)
|
||||
session->scpRecv_state = libssh2_NB_state_sent1;
|
||||
}
|
||||
|
||||
if (session->scpRecv_state == libssh2_NB_state_sent1) {
|
||||
if(session->scpRecv_state == libssh2_NB_state_sent1) {
|
||||
rc = _libssh2_channel_write(session->scpRecv_channel, 0,
|
||||
session->scpRecv_response, 1);
|
||||
if (rc == LIBSSH2_ERROR_EAGAIN) {
|
||||
if(rc == LIBSSH2_ERROR_EAGAIN) {
|
||||
_libssh2_error(session, LIBSSH2_ERROR_EAGAIN,
|
||||
"Would block sending initial wakeup");
|
||||
return NULL;
|
||||
} else if (rc != 1) {
|
||||
}
|
||||
else if(rc != 1) {
|
||||
goto scp_recv_error;
|
||||
}
|
||||
|
||||
@@ -379,23 +381,23 @@ scp_recv(LIBSSH2_SESSION * session, const char *path, libssh2_struct_stat * sb)
|
||||
session->scpRecv_state = libssh2_NB_state_sent2;
|
||||
}
|
||||
|
||||
if ((session->scpRecv_state == libssh2_NB_state_sent2)
|
||||
if((session->scpRecv_state == libssh2_NB_state_sent2)
|
||||
|| (session->scpRecv_state == libssh2_NB_state_sent3)) {
|
||||
while (sb && (session->scpRecv_response_len <
|
||||
while(sb && (session->scpRecv_response_len <
|
||||
LIBSSH2_SCP_RESPONSE_BUFLEN)) {
|
||||
unsigned char *s, *p;
|
||||
|
||||
if (session->scpRecv_state == libssh2_NB_state_sent2) {
|
||||
if(session->scpRecv_state == libssh2_NB_state_sent2) {
|
||||
rc = _libssh2_channel_read(session->scpRecv_channel, 0,
|
||||
(char *) session->
|
||||
scpRecv_response +
|
||||
session->scpRecv_response_len, 1);
|
||||
if (rc == LIBSSH2_ERROR_EAGAIN) {
|
||||
if(rc == LIBSSH2_ERROR_EAGAIN) {
|
||||
_libssh2_error(session, LIBSSH2_ERROR_EAGAIN,
|
||||
"Would block waiting for SCP response");
|
||||
return NULL;
|
||||
}
|
||||
else if (rc < 0) {
|
||||
else if(rc < 0) {
|
||||
/* error, give up */
|
||||
_libssh2_error(session, rc, "Failed reading SCP response");
|
||||
goto scp_recv_error;
|
||||
@@ -405,7 +407,7 @@ scp_recv(LIBSSH2_SESSION * session, const char *path, libssh2_struct_stat * sb)
|
||||
|
||||
session->scpRecv_response_len++;
|
||||
|
||||
if (session->scpRecv_response[0] != 'T') {
|
||||
if(session->scpRecv_response[0] != 'T') {
|
||||
size_t err_len;
|
||||
char *err_msg;
|
||||
|
||||
@@ -419,7 +421,7 @@ scp_recv(LIBSSH2_SESSION * session, const char *path, libssh2_struct_stat * sb)
|
||||
_libssh2_channel_packet_data_len(session->
|
||||
scpRecv_channel, 0);
|
||||
err_msg = LIBSSH2_ALLOC(session, err_len + 1);
|
||||
if (!err_msg) {
|
||||
if(!err_msg) {
|
||||
_libssh2_error(session, LIBSSH2_ERROR_ALLOC,
|
||||
"Failed to get memory ");
|
||||
goto scp_recv_error;
|
||||
@@ -431,7 +433,7 @@ scp_recv(LIBSSH2_SESSION * session, const char *path, libssh2_struct_stat * sb)
|
||||
/* If it failed for any reason, we ignore it anyway. */
|
||||
|
||||
/* zero terminate the error */
|
||||
err_msg[err_len]=0;
|
||||
err_msg[err_len] = 0;
|
||||
|
||||
_libssh2_debug(session, LIBSSH2_TRACE_SCP,
|
||||
"got %02x %s", session->scpRecv_response[0],
|
||||
@@ -444,7 +446,7 @@ scp_recv(LIBSSH2_SESSION * session, const char *path, libssh2_struct_stat * sb)
|
||||
goto scp_recv_error;
|
||||
}
|
||||
|
||||
if ((session->scpRecv_response_len > 1) &&
|
||||
if((session->scpRecv_response_len > 1) &&
|
||||
((session->
|
||||
scpRecv_response[session->scpRecv_response_len - 1] <
|
||||
'0')
|
||||
@@ -465,11 +467,11 @@ scp_recv(LIBSSH2_SESSION * session, const char *path, libssh2_struct_stat * sb)
|
||||
goto scp_recv_error;
|
||||
}
|
||||
|
||||
if ((session->scpRecv_response_len < 9)
|
||||
if((session->scpRecv_response_len < 9)
|
||||
|| (session->
|
||||
scpRecv_response[session->scpRecv_response_len - 1] !=
|
||||
'\n')) {
|
||||
if (session->scpRecv_response_len ==
|
||||
if(session->scpRecv_response_len ==
|
||||
LIBSSH2_SCP_RESPONSE_BUFLEN) {
|
||||
/* You had your chance */
|
||||
_libssh2_error(session, LIBSSH2_ERROR_SCP_PROTOCOL,
|
||||
@@ -483,7 +485,7 @@ scp_recv(LIBSSH2_SESSION * session, const char *path, libssh2_struct_stat * sb)
|
||||
|
||||
/* We're guaranteed not to go under response_len == 0 by the
|
||||
logic above */
|
||||
while ((session->
|
||||
while((session->
|
||||
scpRecv_response[session->scpRecv_response_len - 1] ==
|
||||
'\r')
|
||||
|| (session->
|
||||
@@ -493,18 +495,18 @@ scp_recv(LIBSSH2_SESSION * session, const char *path, libssh2_struct_stat * sb)
|
||||
session->scpRecv_response[session->scpRecv_response_len] =
|
||||
'\0';
|
||||
|
||||
if (session->scpRecv_response_len < 8) {
|
||||
if(session->scpRecv_response_len < 8) {
|
||||
/* EOL came too soon */
|
||||
_libssh2_error(session, LIBSSH2_ERROR_SCP_PROTOCOL,
|
||||
"Invalid response from SCP server, "
|
||||
"too short" );
|
||||
"too short");
|
||||
goto scp_recv_error;
|
||||
}
|
||||
|
||||
s = session->scpRecv_response + 1;
|
||||
|
||||
p = (unsigned char *) strchr((char *) s, ' ');
|
||||
if (!p || ((p - s) <= 0)) {
|
||||
if(!p || ((p - s) <= 0)) {
|
||||
/* No spaces or space in the wrong spot */
|
||||
_libssh2_error(session, LIBSSH2_ERROR_SCP_PROTOCOL,
|
||||
"Invalid response from SCP server, "
|
||||
@@ -517,7 +519,7 @@ scp_recv(LIBSSH2_SESSION * session, const char *path, libssh2_struct_stat * sb)
|
||||
session->scpRecv_mtime = strtol((char *) s, NULL, 10);
|
||||
|
||||
s = (unsigned char *) strchr((char *) p, ' ');
|
||||
if (!s || ((s - p) <= 0)) {
|
||||
if(!s || ((s - p) <= 0)) {
|
||||
/* No spaces or space in the wrong spot */
|
||||
_libssh2_error(session, LIBSSH2_ERROR_SCP_PROTOCOL,
|
||||
"Invalid response from SCP server, malformed mtime.usec");
|
||||
@@ -527,7 +529,7 @@ scp_recv(LIBSSH2_SESSION * session, const char *path, libssh2_struct_stat * sb)
|
||||
/* Ignore mtime.usec */
|
||||
s++;
|
||||
p = (unsigned char *) strchr((char *) s, ' ');
|
||||
if (!p || ((p - s) <= 0)) {
|
||||
if(!p || ((p - s) <= 0)) {
|
||||
/* No spaces or space in the wrong spot */
|
||||
_libssh2_error(session, LIBSSH2_ERROR_SCP_PROTOCOL,
|
||||
"Invalid response from SCP server, too short or malformed");
|
||||
@@ -544,14 +546,15 @@ scp_recv(LIBSSH2_SESSION * session, const char *path, libssh2_struct_stat * sb)
|
||||
session->scpRecv_state = libssh2_NB_state_sent3;
|
||||
}
|
||||
|
||||
if (session->scpRecv_state == libssh2_NB_state_sent3) {
|
||||
if(session->scpRecv_state == libssh2_NB_state_sent3) {
|
||||
rc = _libssh2_channel_write(session->scpRecv_channel, 0,
|
||||
session->scpRecv_response, 1);
|
||||
if (rc == LIBSSH2_ERROR_EAGAIN) {
|
||||
if(rc == LIBSSH2_ERROR_EAGAIN) {
|
||||
_libssh2_error(session, LIBSSH2_ERROR_EAGAIN,
|
||||
"Would block waiting to send SCP ACK");
|
||||
return NULL;
|
||||
} else if (rc != 1) {
|
||||
}
|
||||
else if(rc != 1) {
|
||||
goto scp_recv_error;
|
||||
}
|
||||
|
||||
@@ -568,28 +571,28 @@ scp_recv(LIBSSH2_SESSION * session, const char *path, libssh2_struct_stat * sb)
|
||||
session->scpRecv_state = libssh2_NB_state_sent4;
|
||||
}
|
||||
|
||||
if (session->scpRecv_state == libssh2_NB_state_sent4) {
|
||||
if(session->scpRecv_state == libssh2_NB_state_sent4) {
|
||||
session->scpRecv_response_len = 0;
|
||||
|
||||
session->scpRecv_state = libssh2_NB_state_sent5;
|
||||
}
|
||||
|
||||
if ((session->scpRecv_state == libssh2_NB_state_sent5)
|
||||
if((session->scpRecv_state == libssh2_NB_state_sent5)
|
||||
|| (session->scpRecv_state == libssh2_NB_state_sent6)) {
|
||||
while (session->scpRecv_response_len < LIBSSH2_SCP_RESPONSE_BUFLEN) {
|
||||
while(session->scpRecv_response_len < LIBSSH2_SCP_RESPONSE_BUFLEN) {
|
||||
char *s, *p, *e = NULL;
|
||||
|
||||
if (session->scpRecv_state == libssh2_NB_state_sent5) {
|
||||
if(session->scpRecv_state == libssh2_NB_state_sent5) {
|
||||
rc = _libssh2_channel_read(session->scpRecv_channel, 0,
|
||||
(char *) session->
|
||||
scpRecv_response +
|
||||
session->scpRecv_response_len, 1);
|
||||
if (rc == LIBSSH2_ERROR_EAGAIN) {
|
||||
if(rc == LIBSSH2_ERROR_EAGAIN) {
|
||||
_libssh2_error(session, LIBSSH2_ERROR_EAGAIN,
|
||||
"Would block waiting for SCP response");
|
||||
return NULL;
|
||||
}
|
||||
else if (rc < 0) {
|
||||
else if(rc < 0) {
|
||||
/* error, bail out*/
|
||||
_libssh2_error(session, rc, "Failed reading SCP response");
|
||||
goto scp_recv_error;
|
||||
@@ -599,13 +602,13 @@ scp_recv(LIBSSH2_SESSION * session, const char *path, libssh2_struct_stat * sb)
|
||||
|
||||
session->scpRecv_response_len++;
|
||||
|
||||
if (session->scpRecv_response[0] != 'C') {
|
||||
if(session->scpRecv_response[0] != 'C') {
|
||||
_libssh2_error(session, LIBSSH2_ERROR_SCP_PROTOCOL,
|
||||
"Invalid response from SCP server");
|
||||
goto scp_recv_error;
|
||||
}
|
||||
|
||||
if ((session->scpRecv_response_len > 1) &&
|
||||
if((session->scpRecv_response_len > 1) &&
|
||||
(session->
|
||||
scpRecv_response[session->scpRecv_response_len - 1] !=
|
||||
'\r')
|
||||
@@ -621,11 +624,11 @@ scp_recv(LIBSSH2_SESSION * session, const char *path, libssh2_struct_stat * sb)
|
||||
goto scp_recv_error;
|
||||
}
|
||||
|
||||
if ((session->scpRecv_response_len < 7)
|
||||
if((session->scpRecv_response_len < 7)
|
||||
|| (session->
|
||||
scpRecv_response[session->scpRecv_response_len - 1] !=
|
||||
'\n')) {
|
||||
if (session->scpRecv_response_len ==
|
||||
if(session->scpRecv_response_len ==
|
||||
LIBSSH2_SCP_RESPONSE_BUFLEN) {
|
||||
/* You had your chance */
|
||||
_libssh2_error(session, LIBSSH2_ERROR_SCP_PROTOCOL,
|
||||
@@ -639,7 +642,7 @@ scp_recv(LIBSSH2_SESSION * session, const char *path, libssh2_struct_stat * sb)
|
||||
|
||||
/* We're guaranteed not to go under response_len == 0 by the
|
||||
logic above */
|
||||
while ((session->
|
||||
while((session->
|
||||
scpRecv_response[session->scpRecv_response_len - 1] ==
|
||||
'\r')
|
||||
|| (session->
|
||||
@@ -650,7 +653,7 @@ scp_recv(LIBSSH2_SESSION * session, const char *path, libssh2_struct_stat * sb)
|
||||
session->scpRecv_response[session->scpRecv_response_len] =
|
||||
'\0';
|
||||
|
||||
if (session->scpRecv_response_len < 6) {
|
||||
if(session->scpRecv_response_len < 6) {
|
||||
/* EOL came too soon */
|
||||
_libssh2_error(session, LIBSSH2_ERROR_SCP_PROTOCOL,
|
||||
"Invalid response from SCP server, too short");
|
||||
@@ -660,7 +663,7 @@ scp_recv(LIBSSH2_SESSION * session, const char *path, libssh2_struct_stat * sb)
|
||||
s = (char *) session->scpRecv_response + 1;
|
||||
|
||||
p = strchr(s, ' ');
|
||||
if (!p || ((p - s) <= 0)) {
|
||||
if(!p || ((p - s) <= 0)) {
|
||||
/* No spaces or space in the wrong spot */
|
||||
_libssh2_error(session, LIBSSH2_ERROR_SCP_PROTOCOL,
|
||||
"Invalid response from SCP server, malformed mode");
|
||||
@@ -671,14 +674,14 @@ scp_recv(LIBSSH2_SESSION * session, const char *path, libssh2_struct_stat * sb)
|
||||
/* Make sure we don't get fooled by leftover values */
|
||||
|
||||
session->scpRecv_mode = strtol(s, &e, 8);
|
||||
if (e && *e) {
|
||||
if(e && *e) {
|
||||
_libssh2_error(session, LIBSSH2_ERROR_SCP_PROTOCOL,
|
||||
"Invalid response from SCP server, invalid mode");
|
||||
goto scp_recv_error;
|
||||
}
|
||||
|
||||
s = strchr(p, ' ');
|
||||
if (!s || ((s - p) <= 0)) {
|
||||
if(!s || ((s - p) <= 0)) {
|
||||
/* No spaces or space in the wrong spot */
|
||||
_libssh2_error(session, LIBSSH2_ERROR_SCP_PROTOCOL,
|
||||
"Invalid response from SCP server, too short or malformed");
|
||||
@@ -688,7 +691,7 @@ scp_recv(LIBSSH2_SESSION * session, const char *path, libssh2_struct_stat * sb)
|
||||
*s = '\0';
|
||||
/* Make sure we don't get fooled by leftover values */
|
||||
session->scpRecv_size = scpsize_strtol(p, &e, 10);
|
||||
if (e && *e) {
|
||||
if(e && *e) {
|
||||
_libssh2_error(session, LIBSSH2_ERROR_SCP_PROTOCOL,
|
||||
"Invalid response from SCP server, invalid size");
|
||||
goto scp_recv_error;
|
||||
@@ -700,14 +703,15 @@ scp_recv(LIBSSH2_SESSION * session, const char *path, libssh2_struct_stat * sb)
|
||||
session->scpRecv_state = libssh2_NB_state_sent6;
|
||||
}
|
||||
|
||||
if (session->scpRecv_state == libssh2_NB_state_sent6) {
|
||||
if(session->scpRecv_state == libssh2_NB_state_sent6) {
|
||||
rc = _libssh2_channel_write(session->scpRecv_channel, 0,
|
||||
session->scpRecv_response, 1);
|
||||
if (rc == LIBSSH2_ERROR_EAGAIN) {
|
||||
if(rc == LIBSSH2_ERROR_EAGAIN) {
|
||||
_libssh2_error(session, LIBSSH2_ERROR_EAGAIN,
|
||||
"Would block sending SCP ACK");
|
||||
return NULL;
|
||||
} else if (rc != 1) {
|
||||
}
|
||||
else if(rc != 1) {
|
||||
goto scp_recv_error;
|
||||
}
|
||||
_libssh2_debug(session, LIBSSH2_TRACE_SCP,
|
||||
@@ -723,7 +727,7 @@ scp_recv(LIBSSH2_SESSION * session, const char *path, libssh2_struct_stat * sb)
|
||||
session->scpRecv_state = libssh2_NB_state_sent7;
|
||||
}
|
||||
|
||||
if (sb) {
|
||||
if(sb) {
|
||||
memset(sb, 0, sizeof(libssh2_struct_stat));
|
||||
|
||||
sb->st_mtime = session->scpRecv_mtime;
|
||||
@@ -747,7 +751,7 @@ scp_recv(LIBSSH2_SESSION * session, const char *path, libssh2_struct_stat * sb)
|
||||
scp_recv_error:
|
||||
tmp_err_code = session->err_code;
|
||||
tmp_err_msg = session->err_msg;
|
||||
while (libssh2_channel_free(session->scpRecv_channel) ==
|
||||
while(libssh2_channel_free(session->scpRecv_channel) ==
|
||||
LIBSSH2_ERROR_EAGAIN);
|
||||
session->err_code = tmp_err_code;
|
||||
session->err_msg = tmp_err_msg;
|
||||
@@ -779,7 +783,7 @@ libssh2_scp_recv(LIBSSH2_SESSION *session, const char *path, struct stat * sb)
|
||||
BLOCK_ADJUST_ERRNO(ptr, session, scp_recv(session, path, sb_ptr));
|
||||
|
||||
/* ...and populate the caller's with as much info as fits. */
|
||||
if (sb) {
|
||||
if(sb) {
|
||||
memset(sb, 0, sizeof(struct stat));
|
||||
|
||||
sb->st_mtime = sb_intl.st_mtime;
|
||||
@@ -821,7 +825,7 @@ scp_send(LIBSSH2_SESSION * session, const char *path, int mode,
|
||||
int tmp_err_code;
|
||||
const char *tmp_err_msg;
|
||||
|
||||
if (session->scpSend_state == libssh2_NB_state_idle) {
|
||||
if(session->scpSend_state == libssh2_NB_state_idle) {
|
||||
session->scpSend_command_len =
|
||||
_libssh2_shell_quotedsize(path) + sizeof("scp -t ") +
|
||||
((mtime || atime)?1:0);
|
||||
@@ -829,7 +833,7 @@ scp_send(LIBSSH2_SESSION * session, const char *path, int mode,
|
||||
session->scpSend_command =
|
||||
LIBSSH2_ALLOC(session, session->scpSend_command_len);
|
||||
|
||||
if (!session->scpSend_command) {
|
||||
if(!session->scpSend_command) {
|
||||
_libssh2_error(session, LIBSSH2_ERROR_ALLOC,
|
||||
"Unable to allocate a command buffer for "
|
||||
"SCP session");
|
||||
@@ -855,13 +859,13 @@ scp_send(LIBSSH2_SESSION * session, const char *path, int mode,
|
||||
session->scpSend_state = libssh2_NB_state_created;
|
||||
}
|
||||
|
||||
if (session->scpSend_state == libssh2_NB_state_created) {
|
||||
if(session->scpSend_state == libssh2_NB_state_created) {
|
||||
session->scpSend_channel =
|
||||
_libssh2_channel_open(session, "session", sizeof("session") - 1,
|
||||
LIBSSH2_CHANNEL_WINDOW_DEFAULT,
|
||||
LIBSSH2_CHANNEL_PACKET_DEFAULT, NULL, 0);
|
||||
if (!session->scpSend_channel) {
|
||||
if (libssh2_session_last_errno(session) != LIBSSH2_ERROR_EAGAIN) {
|
||||
if(!session->scpSend_channel) {
|
||||
if(libssh2_session_last_errno(session) != LIBSSH2_ERROR_EAGAIN) {
|
||||
/* previous call set libssh2_session_last_error(), pass it
|
||||
through */
|
||||
LIBSSH2_FREE(session, session->scpSend_command);
|
||||
@@ -878,18 +882,18 @@ scp_send(LIBSSH2_SESSION * session, const char *path, int mode,
|
||||
session->scpSend_state = libssh2_NB_state_sent;
|
||||
}
|
||||
|
||||
if (session->scpSend_state == libssh2_NB_state_sent) {
|
||||
if(session->scpSend_state == libssh2_NB_state_sent) {
|
||||
/* Request SCP for the desired file */
|
||||
rc = _libssh2_channel_process_startup(session->scpSend_channel, "exec",
|
||||
sizeof("exec") - 1,
|
||||
(char *) session->scpSend_command,
|
||||
session->scpSend_command_len);
|
||||
if (rc == LIBSSH2_ERROR_EAGAIN) {
|
||||
if(rc == LIBSSH2_ERROR_EAGAIN) {
|
||||
_libssh2_error(session, LIBSSH2_ERROR_EAGAIN,
|
||||
"Would block requesting SCP startup");
|
||||
return NULL;
|
||||
}
|
||||
else if (rc) {
|
||||
else if(rc) {
|
||||
/* previous call set libssh2_session_last_error(), pass it
|
||||
through */
|
||||
LIBSSH2_FREE(session, session->scpSend_command);
|
||||
@@ -904,28 +908,28 @@ scp_send(LIBSSH2_SESSION * session, const char *path, int mode,
|
||||
session->scpSend_state = libssh2_NB_state_sent1;
|
||||
}
|
||||
|
||||
if (session->scpSend_state == libssh2_NB_state_sent1) {
|
||||
if(session->scpSend_state == libssh2_NB_state_sent1) {
|
||||
/* Wait for ACK */
|
||||
rc = _libssh2_channel_read(session->scpSend_channel, 0,
|
||||
(char *) session->scpSend_response, 1);
|
||||
if (rc == LIBSSH2_ERROR_EAGAIN) {
|
||||
if(rc == LIBSSH2_ERROR_EAGAIN) {
|
||||
_libssh2_error(session, LIBSSH2_ERROR_EAGAIN,
|
||||
"Would block waiting for response from remote");
|
||||
return NULL;
|
||||
}
|
||||
else if (rc < 0) {
|
||||
else if(rc < 0) {
|
||||
_libssh2_error(session, rc, "SCP failure");
|
||||
goto scp_send_error;
|
||||
}
|
||||
else if(!rc)
|
||||
/* remain in the same state */
|
||||
goto scp_send_empty_channel;
|
||||
else if (session->scpSend_response[0] != 0) {
|
||||
else if(session->scpSend_response[0] != 0) {
|
||||
_libssh2_error(session, LIBSSH2_ERROR_SCP_PROTOCOL,
|
||||
"Invalid ACK response from remote");
|
||||
goto scp_send_error;
|
||||
}
|
||||
if (mtime || atime) {
|
||||
if(mtime || atime) {
|
||||
/* Send mtime and atime to be used for file */
|
||||
session->scpSend_response_len =
|
||||
snprintf((char *) session->scpSend_response,
|
||||
@@ -939,16 +943,17 @@ scp_send(LIBSSH2_SESSION * session, const char *path, int mode,
|
||||
}
|
||||
|
||||
/* Send mtime and atime to be used for file */
|
||||
if (mtime || atime) {
|
||||
if (session->scpSend_state == libssh2_NB_state_sent2) {
|
||||
if(mtime || atime) {
|
||||
if(session->scpSend_state == libssh2_NB_state_sent2) {
|
||||
rc = _libssh2_channel_write(session->scpSend_channel, 0,
|
||||
session->scpSend_response,
|
||||
session->scpSend_response_len);
|
||||
if (rc == LIBSSH2_ERROR_EAGAIN) {
|
||||
if(rc == LIBSSH2_ERROR_EAGAIN) {
|
||||
_libssh2_error(session, LIBSSH2_ERROR_EAGAIN,
|
||||
"Would block sending time data for SCP file");
|
||||
return NULL;
|
||||
} else if (rc != (int)session->scpSend_response_len) {
|
||||
}
|
||||
else if(rc != (int)session->scpSend_response_len) {
|
||||
_libssh2_error(session, LIBSSH2_ERROR_SOCKET_SEND,
|
||||
"Unable to send time data for SCP file");
|
||||
goto scp_send_error;
|
||||
@@ -957,23 +962,23 @@ scp_send(LIBSSH2_SESSION * session, const char *path, int mode,
|
||||
session->scpSend_state = libssh2_NB_state_sent3;
|
||||
}
|
||||
|
||||
if (session->scpSend_state == libssh2_NB_state_sent3) {
|
||||
if(session->scpSend_state == libssh2_NB_state_sent3) {
|
||||
/* Wait for ACK */
|
||||
rc = _libssh2_channel_read(session->scpSend_channel, 0,
|
||||
(char *) session->scpSend_response, 1);
|
||||
if (rc == LIBSSH2_ERROR_EAGAIN) {
|
||||
if(rc == LIBSSH2_ERROR_EAGAIN) {
|
||||
_libssh2_error(session, LIBSSH2_ERROR_EAGAIN,
|
||||
"Would block waiting for response");
|
||||
return NULL;
|
||||
}
|
||||
else if (rc < 0) {
|
||||
else if(rc < 0) {
|
||||
_libssh2_error(session, rc, "SCP failure");
|
||||
goto scp_send_error;
|
||||
}
|
||||
else if(!rc)
|
||||
/* remain in the same state */
|
||||
goto scp_send_empty_channel;
|
||||
else if (session->scpSend_response[0] != 0) {
|
||||
else if(session->scpSend_response[0] != 0) {
|
||||
_libssh2_error(session, LIBSSH2_ERROR_SCP_PROTOCOL,
|
||||
"Invalid SCP ACK response");
|
||||
goto scp_send_error;
|
||||
@@ -981,16 +986,17 @@ scp_send(LIBSSH2_SESSION * session, const char *path, int mode,
|
||||
|
||||
session->scpSend_state = libssh2_NB_state_sent4;
|
||||
}
|
||||
} else {
|
||||
if (session->scpSend_state == libssh2_NB_state_sent2) {
|
||||
}
|
||||
else {
|
||||
if(session->scpSend_state == libssh2_NB_state_sent2) {
|
||||
session->scpSend_state = libssh2_NB_state_sent4;
|
||||
}
|
||||
}
|
||||
|
||||
if (session->scpSend_state == libssh2_NB_state_sent4) {
|
||||
if(session->scpSend_state == libssh2_NB_state_sent4) {
|
||||
/* Send mode, size, and basename */
|
||||
const char *base = strrchr(path, '/');
|
||||
if (base)
|
||||
if(base)
|
||||
base++;
|
||||
else
|
||||
base = path;
|
||||
@@ -1006,15 +1012,16 @@ scp_send(LIBSSH2_SESSION * session, const char *path, int mode,
|
||||
session->scpSend_state = libssh2_NB_state_sent5;
|
||||
}
|
||||
|
||||
if (session->scpSend_state == libssh2_NB_state_sent5) {
|
||||
if(session->scpSend_state == libssh2_NB_state_sent5) {
|
||||
rc = _libssh2_channel_write(session->scpSend_channel, 0,
|
||||
session->scpSend_response,
|
||||
session->scpSend_response_len);
|
||||
if (rc == LIBSSH2_ERROR_EAGAIN) {
|
||||
if(rc == LIBSSH2_ERROR_EAGAIN) {
|
||||
_libssh2_error(session, LIBSSH2_ERROR_EAGAIN,
|
||||
"Would block send core file data for SCP file");
|
||||
return NULL;
|
||||
} else if (rc != (int)session->scpSend_response_len) {
|
||||
}
|
||||
else if(rc != (int)session->scpSend_response_len) {
|
||||
_libssh2_error(session, LIBSSH2_ERROR_SOCKET_SEND,
|
||||
"Unable to send core file data for SCP file");
|
||||
goto scp_send_error;
|
||||
@@ -1023,31 +1030,31 @@ scp_send(LIBSSH2_SESSION * session, const char *path, int mode,
|
||||
session->scpSend_state = libssh2_NB_state_sent6;
|
||||
}
|
||||
|
||||
if (session->scpSend_state == libssh2_NB_state_sent6) {
|
||||
if(session->scpSend_state == libssh2_NB_state_sent6) {
|
||||
/* Wait for ACK */
|
||||
rc = _libssh2_channel_read(session->scpSend_channel, 0,
|
||||
(char *) session->scpSend_response, 1);
|
||||
if (rc == LIBSSH2_ERROR_EAGAIN) {
|
||||
if(rc == LIBSSH2_ERROR_EAGAIN) {
|
||||
_libssh2_error(session, LIBSSH2_ERROR_EAGAIN,
|
||||
"Would block waiting for response");
|
||||
return NULL;
|
||||
}
|
||||
else if (rc < 0) {
|
||||
else if(rc < 0) {
|
||||
_libssh2_error(session, LIBSSH2_ERROR_SCP_PROTOCOL,
|
||||
"Invalid ACK response from remote");
|
||||
goto scp_send_error;
|
||||
}
|
||||
else if (rc == 0)
|
||||
else if(rc == 0)
|
||||
goto scp_send_empty_channel;
|
||||
|
||||
else if (session->scpSend_response[0] != 0) {
|
||||
else if(session->scpSend_response[0] != 0) {
|
||||
size_t err_len;
|
||||
char *err_msg;
|
||||
|
||||
err_len =
|
||||
_libssh2_channel_packet_data_len(session->scpSend_channel, 0);
|
||||
err_msg = LIBSSH2_ALLOC(session, err_len + 1);
|
||||
if (!err_msg) {
|
||||
if(!err_msg) {
|
||||
_libssh2_error(session, LIBSSH2_ERROR_ALLOC,
|
||||
"failed to get memory");
|
||||
goto scp_send_error;
|
||||
@@ -1056,8 +1063,8 @@ scp_send(LIBSSH2_SESSION * session, const char *path, int mode,
|
||||
/* Read the remote error message */
|
||||
rc = _libssh2_channel_read(session->scpSend_channel, 0,
|
||||
err_msg, err_len);
|
||||
if (rc > 0) {
|
||||
err_msg[err_len]=0;
|
||||
if(rc > 0) {
|
||||
err_msg[err_len] = 0;
|
||||
_libssh2_debug(session, LIBSSH2_TRACE_SCP,
|
||||
"got %02x %s", session->scpSend_response[0],
|
||||
err_msg);
|
||||
@@ -1085,8 +1092,8 @@ scp_send(LIBSSH2_SESSION * session, const char *path, int mode,
|
||||
scp_send_error:
|
||||
tmp_err_code = session->err_code;
|
||||
tmp_err_msg = session->err_msg;
|
||||
while (libssh2_channel_free(session->scpSend_channel) ==
|
||||
LIBSSH2_ERROR_EAGAIN);
|
||||
while(libssh2_channel_free(session->scpSend_channel) ==
|
||||
LIBSSH2_ERROR_EAGAIN);
|
||||
session->err_code = tmp_err_code;
|
||||
session->err_msg = tmp_err_msg;
|
||||
session->scpSend_channel = NULL;
|
||||
|
||||
Reference in New Issue
Block a user