1
1
Этот коммит содержится в:
Aris Adamantiadis 2011-09-02 11:15:28 +03:00
родитель 92c8a71abb
Коммит 3eece8ac0b
3 изменённых файлов: 15 добавлений и 4 удалений

Просмотреть файл

@ -104,7 +104,7 @@ int channel_change_pty_size1(ssh_channel channel, int cols, int rows);
int channel_request_shell1(ssh_channel channel); int channel_request_shell1(ssh_channel channel);
int channel_request_exec1(ssh_channel channel, const char *cmd); int channel_request_exec1(ssh_channel channel, const char *cmd);
int channel_write1(ssh_channel channel, const void *data, int len); int channel_write1(ssh_channel channel, const void *data, int len);
ssh_channel ssh_get_channel1(ssh_session session);
#endif #endif
#endif /* CHANNELS_H_ */ #endif /* CHANNELS_H_ */

Просмотреть файл

@ -421,7 +421,7 @@ static ssh_channel channel_from_msg(ssh_session session, ssh_buffer packet) {
#ifdef WITH_SSH1 #ifdef WITH_SSH1
/* With SSH1, the channel is always the first one */ /* With SSH1, the channel is always the first one */
if(session->version==1) if(session->version==1)
return session->channels; return ssh_get_channel1(session);
#endif #endif
if (buffer_get_u32(packet, &chan) != sizeof(uint32_t)) { if (buffer_get_u32(packet, &chan) != sizeof(uint32_t)) {
ssh_set_error(session, SSH_FATAL, ssh_set_error(session, SSH_FATAL,

Просмотреть файл

@ -36,6 +36,7 @@
#include "libssh/packet.h" #include "libssh/packet.h"
#include "libssh/channels.h" #include "libssh/channels.h"
#include "libssh/session.h" #include "libssh/session.h"
#include "libssh/misc.h"
#ifdef WITH_SSH1 #ifdef WITH_SSH1
@ -221,7 +222,7 @@ int channel_request_exec1(ssh_channel channel, const char *cmd) {
} }
SSH_PACKET_CALLBACK(ssh_packet_data1){ SSH_PACKET_CALLBACK(ssh_packet_data1){
ssh_channel channel = session->channels; ssh_channel channel = ssh_get_channel1(session);
ssh_string str = NULL; ssh_string str = NULL;
int is_stderr=(type==SSH_SMSG_STDOUT_DATA ? 0 : 1); int is_stderr=(type==SSH_SMSG_STDOUT_DATA ? 0 : 1);
(void)user; (void)user;
@ -246,7 +247,7 @@ SSH_PACKET_CALLBACK(ssh_packet_data1){
} }
SSH_PACKET_CALLBACK(ssh_packet_close1){ SSH_PACKET_CALLBACK(ssh_packet_close1){
ssh_channel channel = session->channels; ssh_channel channel = ssh_get_channel1(session);
uint32_t status; uint32_t status;
(void)type; (void)type;
(void)user; (void)user;
@ -295,5 +296,15 @@ int channel_write1(ssh_channel channel, const void *data, int len) {
return origlen; return origlen;
} }
ssh_channel ssh_get_channel1(ssh_session session){
struct ssh_iterator *it;
/* With SSH1, the channel is always the first one */
if(session->channels != NULL){
it = ssh_list_get_iterator(session->channels);
if(it)
return ssh_iterator_value(ssh_channel, it);
}
return NULL;
}
#endif /* WITH_SSH1 */ #endif /* WITH_SSH1 */
/* vim: set ts=2 sw=2 et cindent: */ /* vim: set ts=2 sw=2 et cindent: */