Well, I finally realized I had never sent these diffs.
These are against socket-1.1, and include the patches from the
NetBSD 'pkgsrc' kit, so aren't just my changes. I can rework
them slightly if they aren't clear to people.
What this patch allows, is for you to create a ssh connection
via a proxy server that supports SSL. The appropriate entry
for ~/.ssh/config is:
Host x.x.x.x
ProxyCommand socket -t %h proxy.hostname 8080
Since proxy servers often only allow SSL connections to the official
ports, my patch attempts to connect to port 443. You obviously
will need to do 'sshd -p 443' on the remote end. It would be simple
to add support for passing the port on the commandline. I haven't
needed it, so never bothered.
Anyway, here is the patch:
Index: Makefile
===================================================================
RCS file: /u1/cvs/gillhaa/socket/Makefile,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -r1.1.1.1 -r1.2
3c3
< # $Header: /u1/cvs/gillhaa/socket/Makefile,v 1.1.1.1 1998/03/07 17:59:02 gillhaa Exp $
--- > # $Header: /u1/cvs/gillhaa/socket/Makefile,v 1.2 1998/03/07 18:07:06 gillhaa Exp $ 11c11 < INSTALLBASE = /usr/local --- > INSTALLBASE = ${PREFIX} 46c46,47 < --- > # FreeBSD 2.x (4.4BSD) > SWITCHES=-DHAVE_SYS_PARAM_H -Wall Index: README =================================================================== RCS file: /u1/cvs/gillhaa/socket/README,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -r1.1.1.1 -r1.2 169c169 < <nickel@cs.tu-berlin.de> --- > Juergen Nickelsen <jn@berlin.snafu.de> Index: globals.h =================================================================== RCS file: /u1/cvs/gillhaa/socket/globals.h,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -r1.1.1.1 -r1.2 3c3 < $Header: /u1/cvs/gillhaa/socket/globals.h,v 1.1.1.1 1998/03/07 17:59:02 gillhaa Exp $ --- > $Header: /u1/cvs/gillhaa/socket/globals.h,v 1.2 1998/03/07 18:07:07 gillhaa Exp $ 10a11,15 > > #if HAVE_SYS_PARAM_H > # include <sys/param.h> > #endif > 52c57,60 < extern char *sys_errlist[], *sys_siglist[] ; --- > > #if !(defined(BSD) && (BSD >=199306)) > extern char *sys_errlist[], *sys_siglist[] ; > #endif Index: io.c =================================================================== RCS file: /u1/cvs/gillhaa/socket/io.c,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -r1.1.1.1 -r1.2 3c3 < $Header: /u1/cvs/gillhaa/socket/io.c,v 1.1.1.1 1998/03/07 17:59:02 gillhaa Exp $ --- > $Header: /u1/cvs/gillhaa/socket/io.c,v 1.2 1998/03/07 18:07:07 gillhaa Exp $ 18a19,20 > #include <string.h> > #include <unistd.h> 93c95 < do_io() --- > void do_io() Index: siglist.c =================================================================== RCS file: /u1/cvs/gillhaa/socket/siglist.c,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -r1.1.1.1 -r1.2 35c35,37 < char *sys_siglist[NSIG]; --- > #if HAVE_SYS_PARAM_H > # include <sys/param.h> > #endif 36a39,41 > #if !(defined(BSD) && (BSD >=199306)) > char *sys_siglist[NSIG]; > #endif 39c44 < initialize_siglist () --- > void initialize_siglist () 40a46 > #if !(defined(BSD) && (BSD >=199306)) 221a228 > #endif /* !(defined(BSD) && (BSD >=199306)) */ Index: socket.1 =================================================================== RCS file: /u1/cvs/gillhaa/socket/socket.1,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -r1.1.1.1 -r1.2 3c3 < $Header: /u1/cvs/gillhaa/socket/socket.1,v 1.1.1.1 1998/03/07 17:59:03 gillhaa Exp $ --- > $Header: /u1/cvs/gillhaa/socket/socket.1,v 1.2 1998/03/07 18:07:08 gillhaa Exp $ 161c161 < Juergen Nickelsen <nickel@cs.tu-berlin.de> --- > Juergen Nickelsen <jn@berlin.snafu.de> Index: socket.c =================================================================== RCS file: /u1/cvs/gillhaa/socket/socket.c,v retrieving revision 1.1.1.1 retrieving revision 1.5 diff -r1.1.1.1 -r1.5 3c3 < $Header: /u1/cvs/gillhaa/socket/socket.c,v 1.1.1.1 1998/03/07 17:59:03 gillhaa Exp $ --- > $Header: /u1/cvs/gillhaa/socket/socket.c,v 1.5 1998/03/07 18:17:58 gillhaa Exp $ 20a21,22 > #include <stdlib.h> > #include <unistd.h> 35a38 > char *remote_host = NULL ; /* remote host to connect via SSL proxy */ 39a43,44 > extern void init_signals A((void)) ; > extern void do_io A((void)) ; 49c54 < char *host ; /* name of remote host */ --- > /* char *host ; */ /* name of remote host */ 61c66 < if (cp = strrchr(progname, '/')) progname = cp + 1 ; --- > if ((cp = strrchr(progname, '/'))) progname = cp + 1 ; 64c69 < while ((opt = getopt(argc, argv, "bcflp:qrsvw?")) != -1) { --- > while ((opt = getopt(argc, argv, "bcflpt:qrsvw?")) != -1) { 86a92,94 > case 't': > remote_host = argv[optind - 1] ; > break ; 188c196 < he = gethostbyaddr(&sa.sin_addr.s_addr, --- > he = gethostbyaddr((char *)&sa.sin_addr.s_addr, 193,196c201,204 < (norder >> 24) & 0xff, < (norder >> 16) & 0xff, < (norder >> 8) & 0xff, < norder & 0xff) ; --- > (int)((norder >> 24) & 0xff), > (int)((norder >> 16) & 0xff), > (int)((norder >> 8) & 0xff), > (int)(norder & 0xff)) ; 262a271,278 > } > > /* issue SSL connect if requested */ > if (remote_host != NULL ) { > char mystring[128]; > sprintf(mystring, "CONNECT %s:443 HTTP/1.0\n\n", remote_host); > write(active_socket, &mystring, strlen(mystring)); > read(active_socket, &mystring, 127); Index: socketp.c =================================================================== RCS file: /u1/cvs/gillhaa/socket/socketp.c,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -r1.1.1.1 -r1.2 3c3 < $Header: /u1/cvs/gillhaa/socket/socketp.c,v 1.1.1.1 1998/03/07 17:59:03 gillhaa Exp $ --- > $Header: /u1/cvs/gillhaa/socket/socketp.c,v 1.2 1998/03/07 18:07:09 gillhaa Exp $ 13a14 > #include <arpa/inet.h> 15a17,19 > #include <stdlib.h> > #include <string.h> > #include <unistd.h> 17a22,23 > extern int is_number A((char *)); > 55c61 < int a, s ; --- > int s ; 79c85 < if (connect(s, &sa, sizeof(sa)) < 0) { /* connect */ --- > if (connect(s, (struct sockaddr *)&sa, sizeof(sa)) < 0) { /* connect */ Index: utils.c =================================================================== RCS file: /u1/cvs/gillhaa/socket/utils.c,v retrieving revision 1.1.1.1 retrieving revision 1.3 diff -r1.1.1.1 -r1.3 3c3 < $Header: /u1/cvs/gillhaa/socket/utils.c,v 1.1.1.1 1998/03/07 17:59:03 gillhaa Exp $ --- > $Header: /u1/cvs/gillhaa/socket/utils.c,v 1.3 1998/03/07 18:09:35 gillhaa Exp $ 27a28 > #include <unistd.h> 29a31 > extern void initialize_siglist A((void)) ; 45c47 < "Usage: %s [-bclqrvw] [-p prog] [-s | host] port\n" ; --- > "Usage: %s [-bclqrvw] [-p prog] [-t remote host ] [-s | host] port\n" ; 73c75 < init_signals() --- > void init_signals() -- ----------------------------------------------------------------- Andrew Gillham | This space left blank gillham@whirlpool.com | inadvertently. I speak for myself, not for my employer. | Contact the publisher.Received on Sat Mar 07 1998 - 11:06:27 MST
This archive was generated by hypermail pre-2.1.9 : Tue Dec 09 2003 - 16:39:11 MST