1
1

Fix doc and actually make the test run :)

Этот коммит содержится в:
Aris Adamantiadis 2010-05-09 01:05:12 +02:00
родитель 3a326793fd
Коммит af519d73ae
3 изменённых файлов: 17 добавлений и 5 удалений

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

@ -685,7 +685,7 @@ int ssh_connect(ssh_session session) {
leave_function();
return SSH_ERROR;
}
if (session->fd == -1 && session->host == NULL) {
if (session->fd == -1 && session->host == NULL && session->ProxyCommand == NULL) {
ssh_set_error(session, SSH_FATAL, "Hostname required");
leave_function();
return SSH_ERROR;
@ -699,6 +699,8 @@ int ssh_connect(ssh_session session) {
if (session->fd != -1) {
ssh_socket_set_fd(session->socket, session->fd);
ret=SSH_OK;
} else if (session->ProxyCommand != NULL){
ret=ssh_socket_connect_proxycommand(session->socket, session->ProxyCommand);
} else {
ret=ssh_socket_connect(session->socket, session->host, session->port,
session->bindaddr);

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

@ -365,6 +365,9 @@ char *dir_expand_dup(ssh_session session, const char *value, int allowsshdir) {
* - SSH_OPTIONS_HOSTKEYCHECK:
* Set the parameter StrictHostKeyChecking to avoid
* asking about a fingerprint
* - SSH_OPTIONS_PROXYCOMMAND:
* Set the command to be executed in order to connect to
* server.
*
* @param value The value to set. This is a generic pointer and the
* datatype which is used should be set according to the

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

@ -66,6 +66,7 @@ enum ssh_socket_states_e {
struct ssh_socket_struct {
socket_t fd_in;
socket_t fd_out;
int fd_is_socket;
int last_errno;
int data_to_read; /* reading now on socket will
not block */
@ -113,6 +114,7 @@ ssh_socket ssh_socket_new(ssh_session session) {
s->fd_in = -1;
s->fd_out= -1;
s->last_errno = -1;
s->fd_is_socket = 1;
s->session = session;
s->in_buffer = buffer_new();
if (s->in_buffer == NULL) {
@ -391,8 +393,10 @@ static int ssh_socket_unbuffered_read(ssh_socket s, void *buffer, uint32_t len)
if (s->data_except) {
return -1;
}
rc = recv(s->fd_in,buffer, len, 0);
if(s->fd_is_socket)
rc = recv(s->fd_in,buffer, len, 0);
else
rc = read(s->fd_in,buffer, len);
#ifdef _WIN32
s->last_errno = WSAGetLastError();
#else
@ -417,8 +421,10 @@ static int ssh_socket_unbuffered_write(ssh_socket s, const void *buffer,
if (s->data_except) {
return -1;
}
w = send(s->fd_out,buffer, len, 0);
if (s->fd_is_socket)
w = send(s->fd_out,buffer, len, 0);
else
w = write(s->fd_out, buffer, len);
#ifdef _WIN32
s->last_errno = WSAGetLastError();
#else
@ -936,6 +942,7 @@ int ssh_socket_connect_proxycommand(ssh_socket s, const char *command){
ssh_socket_set_fd_in(s,in_pipe[0]);
ssh_socket_set_fd_out(s,out_pipe[1]);
s->state=SSH_SOCKET_CONNECTED;
s->fd_is_socket=0;
/* POLLOUT is the event to wait for in a nonblocking connect */
ssh_poll_set_events(ssh_socket_get_poll_handle_in(s),POLLIN | POLLERR);
ssh_poll_set_events(ssh_socket_get_poll_handle_out(s),POLLOUT);