mirror of
https://github.com/libssh2/libssh2.git
synced 2025-11-21 14:00:51 +03:00
made sure the SFTP code makes more use of internal non-blocking functions
instead of the external API entries
This commit is contained in:
72
src/sftp.c
72
src/sftp.c
@@ -572,9 +572,9 @@ static LIBSSH2_SFTP *sftp_init(LIBSSH2_SESSION *session)
|
||||
|
||||
if (session->sftpInit_state == libssh2_NB_state_created) {
|
||||
session->sftpInit_channel =
|
||||
libssh2_channel_open_ex(session, "session", sizeof("session") - 1,
|
||||
LIBSSH2_CHANNEL_WINDOW_DEFAULT,
|
||||
LIBSSH2_CHANNEL_PACKET_DEFAULT, NULL, 0);
|
||||
_libssh2_channel_open(session, "session", sizeof("session") - 1,
|
||||
LIBSSH2_CHANNEL_WINDOW_DEFAULT,
|
||||
LIBSSH2_CHANNEL_PACKET_DEFAULT, NULL, 0);
|
||||
if (!session->sftpInit_channel) {
|
||||
if (libssh2_session_last_errno(session) == LIBSSH2_ERROR_EAGAIN) {
|
||||
libssh2_error(session, LIBSSH2_ERROR_EAGAIN,
|
||||
@@ -592,10 +592,10 @@ static LIBSSH2_SFTP *sftp_init(LIBSSH2_SESSION *session)
|
||||
}
|
||||
|
||||
if (session->sftpInit_state == libssh2_NB_state_sent) {
|
||||
rc = libssh2_channel_process_startup(session->sftpInit_channel,
|
||||
"subsystem",
|
||||
sizeof("subsystem") - 1, "sftp",
|
||||
strlen("sftp"));
|
||||
rc = _libssh2_channel_process_startup(session->sftpInit_channel,
|
||||
"subsystem",
|
||||
sizeof("subsystem") - 1, "sftp",
|
||||
strlen("sftp"));
|
||||
if (rc == PACKET_EAGAIN) {
|
||||
libssh2_error(session, LIBSSH2_ERROR_EAGAIN,
|
||||
"Would block to request SFTP subsystem", 0);
|
||||
@@ -640,8 +640,8 @@ static LIBSSH2_SFTP *sftp_init(LIBSSH2_SESSION *session)
|
||||
}
|
||||
|
||||
if (session->sftpInit_state == libssh2_NB_state_sent2) {
|
||||
rc = libssh2_channel_write_ex(session->sftpInit_channel, 0,
|
||||
(char *) session->sftpInit_buffer, 9);
|
||||
rc = _libssh2_channel_write(session->sftpInit_channel, 0,
|
||||
(char *) session->sftpInit_buffer, 9);
|
||||
if (rc == PACKET_EAGAIN) {
|
||||
libssh2_error(session, LIBSSH2_ERROR_EAGAIN,
|
||||
"Would block sending SSH_FXP_INIT", 0);
|
||||
@@ -879,8 +879,8 @@ sftp_open(LIBSSH2_SFTP *sftp, const char *filename,
|
||||
}
|
||||
|
||||
if (sftp->open_state == libssh2_NB_state_created) {
|
||||
rc = libssh2_channel_write_ex(channel, 0, (char *) sftp->open_packet,
|
||||
sftp->open_packet_len);
|
||||
rc = _libssh2_channel_write(channel, 0, (char *) sftp->open_packet,
|
||||
sftp->open_packet_len);
|
||||
if (rc == PACKET_EAGAIN) {
|
||||
libssh2_error(session, LIBSSH2_ERROR_EAGAIN,
|
||||
"Would block sending FXP_OPEN or FXP_OPENDIR command",
|
||||
@@ -1094,9 +1094,8 @@ static ssize_t sftp_read(LIBSSH2_SFTP_HANDLE * handle, char *buffer,
|
||||
}
|
||||
|
||||
if (sftp->read_state == libssh2_NB_state_created) {
|
||||
retcode =
|
||||
libssh2_channel_write_ex(channel, 0, (char *) packet,
|
||||
packet_len);
|
||||
retcode = _libssh2_channel_write(channel, 0, (char *) packet,
|
||||
packet_len);
|
||||
if (retcode == PACKET_EAGAIN) {
|
||||
sftp->read_packet = packet;
|
||||
sftp->read_request_id = request_id;
|
||||
@@ -1298,11 +1297,9 @@ static int sftp_readdir(LIBSSH2_SFTP_HANDLE *handle, char *buffer,
|
||||
if (sftp->readdir_state == libssh2_NB_state_created) {
|
||||
_libssh2_debug(session, LIBSSH2_DBG_SFTP,
|
||||
"Reading entries from directory handle");
|
||||
retcode =
|
||||
libssh2_channel_write_ex(channel, 0,
|
||||
(char *) sftp->readdir_packet,
|
||||
packet_len);
|
||||
|
||||
retcode = _libssh2_channel_write(channel, 0,
|
||||
(char *) sftp->readdir_packet,
|
||||
packet_len);
|
||||
if (retcode == PACKET_EAGAIN) {
|
||||
return PACKET_EAGAIN;
|
||||
}
|
||||
@@ -1459,9 +1456,8 @@ static ssize_t sftp_write(LIBSSH2_SFTP_HANDLE * handle, const char *buffer,
|
||||
}
|
||||
|
||||
if (sftp->write_state == libssh2_NB_state_created) {
|
||||
rc =
|
||||
libssh2_channel_write_ex(channel, 0, (char *) sftp->write_packet,
|
||||
packet_len);
|
||||
rc = _libssh2_channel_write(channel, 0, (char *) sftp->write_packet,
|
||||
packet_len);
|
||||
if (rc == PACKET_EAGAIN) {
|
||||
return PACKET_EAGAIN;
|
||||
}
|
||||
@@ -1568,8 +1564,8 @@ static int sftp_fstat(LIBSSH2_SFTP_HANDLE *handle,
|
||||
}
|
||||
|
||||
if (sftp->fstat_state == libssh2_NB_state_created) {
|
||||
rc = libssh2_channel_write_ex(channel, 0, (char *) sftp->fstat_packet,
|
||||
packet_len);
|
||||
rc = _libssh2_channel_write(channel, 0, (char *) sftp->fstat_packet,
|
||||
packet_len);
|
||||
if (rc == PACKET_EAGAIN) {
|
||||
return PACKET_EAGAIN;
|
||||
} else if (packet_len != rc) {
|
||||
@@ -1711,9 +1707,8 @@ sftp_close_handle(LIBSSH2_SFTP_HANDLE *handle)
|
||||
}
|
||||
|
||||
if (handle->close_state == libssh2_NB_state_created) {
|
||||
rc = libssh2_channel_write_ex(channel, 0,
|
||||
(char *) handle->close_packet,
|
||||
packet_len);
|
||||
rc = _libssh2_channel_write(channel, 0, (char *) handle->close_packet,
|
||||
packet_len);
|
||||
if (rc == PACKET_EAGAIN) {
|
||||
return PACKET_EAGAIN;
|
||||
} else if (packet_len != rc) {
|
||||
@@ -1828,8 +1823,8 @@ static int sftp_unlink(LIBSSH2_SFTP *sftp, const char *filename,
|
||||
}
|
||||
|
||||
if (sftp->unlink_state == libssh2_NB_state_created) {
|
||||
rc = libssh2_channel_write_ex(channel, 0, (char *) sftp->unlink_packet,
|
||||
packet_len);
|
||||
rc = _libssh2_channel_write(channel, 0, (char *) sftp->unlink_packet,
|
||||
packet_len);
|
||||
if (rc == PACKET_EAGAIN) {
|
||||
return PACKET_EAGAIN;
|
||||
} else if (packet_len != rc) {
|
||||
@@ -1950,8 +1945,8 @@ static int sftp_rename(LIBSSH2_SFTP *sftp, const char *source_filename,
|
||||
}
|
||||
|
||||
if (sftp->rename_state == libssh2_NB_state_created) {
|
||||
rc = libssh2_channel_write_ex(channel, 0, (char *) sftp->rename_packet,
|
||||
sftp->rename_s - sftp->rename_packet);
|
||||
rc = _libssh2_channel_write(channel, 0, (char *) sftp->rename_packet,
|
||||
sftp->rename_s - sftp->rename_packet);
|
||||
if (rc == PACKET_EAGAIN) {
|
||||
return PACKET_EAGAIN;
|
||||
} else if (packet_len != rc) {
|
||||
@@ -2081,7 +2076,7 @@ static int sftp_mkdir(LIBSSH2_SFTP *sftp, const char *path,
|
||||
}
|
||||
|
||||
if (sftp->mkdir_state == libssh2_NB_state_created) {
|
||||
rc = libssh2_channel_write_ex(channel, 0, (char *) packet, packet_len);
|
||||
rc = _libssh2_channel_write(channel, 0, (char *) packet, packet_len);
|
||||
if (rc == PACKET_EAGAIN) {
|
||||
sftp->mkdir_packet = packet;
|
||||
return PACKET_EAGAIN;
|
||||
@@ -2179,8 +2174,8 @@ static int sftp_rmdir(LIBSSH2_SFTP *sftp, const char *path,
|
||||
}
|
||||
|
||||
if (sftp->rmdir_state == libssh2_NB_state_created) {
|
||||
rc = libssh2_channel_write_ex(channel, 0, (char *) sftp->rmdir_packet,
|
||||
packet_len);
|
||||
rc = _libssh2_channel_write(channel, 0, (char *) sftp->rmdir_packet,
|
||||
packet_len);
|
||||
if (rc == PACKET_EAGAIN) {
|
||||
return PACKET_EAGAIN;
|
||||
} else if (packet_len != rc) {
|
||||
@@ -2298,8 +2293,8 @@ static int sftp_stat(LIBSSH2_SFTP *sftp, const char *path,
|
||||
}
|
||||
|
||||
if (sftp->stat_state == libssh2_NB_state_created) {
|
||||
rc = libssh2_channel_write_ex(channel, 0, (char *) sftp->stat_packet,
|
||||
packet_len);
|
||||
rc = _libssh2_channel_write(channel, 0, (char *) sftp->stat_packet,
|
||||
packet_len);
|
||||
if (rc == PACKET_EAGAIN) {
|
||||
return PACKET_EAGAIN;
|
||||
} else if (packet_len != rc) {
|
||||
@@ -2438,9 +2433,8 @@ static int sftp_symlink(LIBSSH2_SFTP *sftp, const char *path,
|
||||
}
|
||||
|
||||
if (sftp->symlink_state == libssh2_NB_state_created) {
|
||||
rc = libssh2_channel_write_ex(channel, 0,
|
||||
(char *) sftp->symlink_packet,
|
||||
packet_len);
|
||||
rc = _libssh2_channel_write(channel, 0, (char *) sftp->symlink_packet,
|
||||
packet_len);
|
||||
if (rc == PACKET_EAGAIN) {
|
||||
return PACKET_EAGAIN;
|
||||
} else if (packet_len != rc) {
|
||||
|
||||
Reference in New Issue
Block a user