[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

ssh + socks



Philip Hands writes:
 > > 
 > > If someone wants to use ssh with socks4, he can use runsocks. So there
 > > is no problem here.
 > 
 > Is this the ``right'' solution, or should something in libsocks4 be fixed, and 
 > then ssh linked against it ?
 > 
 > If using runsocks is the right way to go (I don't use socks, so I don't know), 
 > then close the bug report.
 > 
 > Otherwise, mail me when it's fixed, and I'll resume linking ssh against 
 > libsocks4
 > 


Phil,

this problem is still pending. 

ssh is not working with runsocks. I do not know why. It always says
that the host I want to connect is not known. 

It is a standard feature of libsocks4 to give syslog messages on debug
level about which connections are maid.

So there are three options we have.

1. Ignore the debug syslog messages, relink ssh with socks and close
   the bug report claiming that it is no bug. (Herbert will not like
   this one, I suppose.)

2. Implement the changes I sent to you in a previous message and
   appended below. socks could then be enabled via /etc/ssh_config and
   a commandline option. This would be the best solution in my
   opinion, but needs some work to do.

3. Releasing a separate ssh-socks version. I could do this.

So, please, lets get this solved soon.

Christoph

-----------------------------------------------------------------------------
(old code:)
#if defined(SOCKS) && !defined(HAVE_SOCKS_H)
	      if (Rconnect(sock, (struct sockaddr *)&hostaddr, 
			   sizeof(hostaddr)) >= 0)
#else /* SOCKS */
	      if (connect(sock, (struct sockaddr *)&hostaddr, 
			  sizeof(hostaddr)) >= 0)
#endif /* SOCKS */
		{
		  /* Successful connection. */
		  break;
		}

(new code:)
#if defined(SOCKS) && !defined(HAVE_SOCKS_H)
	    if socks
	      if (Rconnect(sock, (struct sockaddr *)&hostaddr, 
			   sizeof(hostaddr)) >= 0)
		{
		  /* Successful connection. */
		  break;
		}
            else
#else /* SOCKS */
	      if (connect(sock, (struct sockaddr *)&hostaddr, 
			  sizeof(hostaddr)) >= 0)
#endif /* SOCKS */
		{
		  /* Successful connection. */
		  break;
		}

There are only 4 calls to socks function in ssh.


Reply to: