Commit 8ba9f836 authored by Sanne Raymaekers's avatar Sanne Raymaekers
Browse files

socket: Undouble socket fds

parent 60037f32
Loading
Loading
Loading
Loading
Loading
+2 −3
Original line number Diff line number Diff line
@@ -34,7 +34,7 @@ ssh_socket ssh_socket_new(ssh_session session);
void ssh_socket_reset(ssh_socket s);
void ssh_socket_free(ssh_socket s);
void ssh_socket_set_fd(ssh_socket s, socket_t fd);
socket_t ssh_socket_get_fd_in(ssh_socket s);
socket_t ssh_socket_get_fd(ssh_socket s);
#ifndef _WIN32
int ssh_socket_unix(ssh_socket s, const char *path);
void ssh_execute_command(const char *command, socket_t in, socket_t out);
@@ -61,8 +61,7 @@ int ssh_socket_set_blocking(socket_t fd);

void ssh_socket_set_callbacks(ssh_socket s, ssh_socket_callbacks callbacks);
int ssh_socket_pollcallback(struct ssh_poll_handle_struct *p, socket_t fd, int revents, void *v_s);
struct ssh_poll_handle_struct * ssh_socket_get_poll_handle_in(ssh_socket s);
struct ssh_poll_handle_struct * ssh_socket_get_poll_handle_out(ssh_socket s);
struct ssh_poll_handle_struct * ssh_socket_get_poll_handle(ssh_socket s);

int ssh_socket_connect(ssh_socket s, const char *host, int port, const char *bind_addr);

+1 −1
Original line number Diff line number Diff line
@@ -73,7 +73,7 @@ static size_t atomicio(struct ssh_agent_struct *agent, void *buf, size_t n, int

  /* Using a socket ? */
  if (channel == NULL) {
    fd = ssh_socket_get_fd_in(agent->sock);
    fd = ssh_socket_get_fd(agent->sock);
    pfd.fd = fd;
    pfd.events = do_read ? POLLIN : POLLOUT;

+1 −1
Original line number Diff line number Diff line
@@ -447,7 +447,7 @@ int ssh_bind_accept_fd(ssh_bind sshbind, ssh_session session, socket_t fd){
      return SSH_ERROR;
    }
    ssh_socket_set_fd(session->socket, fd);
    ssh_socket_get_poll_handle_out(session->socket);
    ssh_socket_get_poll_handle(session->socket);

    /* We must try to import any keys that could be imported in case
     * we are not using ssh_bind_listen (which is the other place
+1 −1
Original line number Diff line number Diff line
@@ -312,7 +312,7 @@ static int ssh_pcap_context_connect(ssh_pcap_context ctx){
		return SSH_ERROR;
	if(session->socket==NULL)
		return SSH_ERROR;
	fd=ssh_socket_get_fd_in(session->socket);
	fd=ssh_socket_get_fd(session->socket);
	/* TODO: adapt for windows */
	if(fd<0)
		return SSH_ERROR;
+4 −9
Original line number Diff line number Diff line
@@ -534,17 +534,12 @@ int ssh_poll_ctx_add(ssh_poll_ctx ctx, ssh_poll_handle p) {
 * @return              0 on success, < 0 on error
 */
int ssh_poll_ctx_add_socket (ssh_poll_ctx ctx, ssh_socket s) {
  ssh_poll_handle p_in, p_out;
  ssh_poll_handle p;
  int ret;
  p_in=ssh_socket_get_poll_handle_in(s);
  if(p_in==NULL)
  p=ssh_socket_get_poll_handle(s);
  if(p==NULL)
  	return -1;
  ret = ssh_poll_ctx_add(ctx,p_in);
  if(ret != 0)
    return ret;
  p_out=ssh_socket_get_poll_handle_out(s);
  if(p_in != p_out)
    ret = ssh_poll_ctx_add(ctx,p_out);
  ret = ssh_poll_ctx_add(ctx,p);
  return ret;
}

Loading