1
1
git-svn-id: svn+ssh://svn.berlios.de/svnroot/repos/libssh/trunk@474 7dcaeef0-15fb-0310-b436-a5af3365683c
Этот коммит содержится в:
Andreas Schneider 2009-04-14 14:46:04 +00:00
родитель 118d4ee131
Коммит 16084e548e

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

@ -232,26 +232,33 @@ void ssh_set_fd_except(SSH_SESSION *session) {
/** \warning I don't remember if this should be internal or not /** \warning I don't remember if this should be internal or not
*/ */
/* looks if there is data to read on the socket and parse it. */ /* looks if there is data to read on the socket and parse it. */
int ssh_handle_packets(SSH_SESSION *session){ int ssh_handle_packets(SSH_SESSION *session) {
int w,err,r,i=0; int w = 0;
int e = 0;
int rc = -1;
enter_function(); enter_function();
do { do {
r=ssh_socket_poll(session->socket,&w,&err); rc = ssh_socket_poll(session->socket, &w, &e);
if(r<=0){ if (rc <= 0) {
/* error or no data available */
leave_function(); leave_function();
return r; // error or no data available return rc;
} }
/* if an exception happened, it will be trapped by packet_read() */ /* if an exception happened, it will be trapped by packet_read() */
if ((packet_read(session) != SSH_OK) || if ((packet_read(session) != SSH_OK) ||
(packet_translate(session) != SSH_OK)) { (packet_translate(session) != SSH_OK)) {
leave_function(); leave_function();
return -1; return -1;
} }
packet_parse(session); packet_parse(session);
++i; } while(rc > 0);
} while(r>0);
leave_function(); leave_function();
return r; return rc;
} }
/** \brief get session status /** \brief get session status