sshで踏み台するときにconectコマンドを使うのですが、いつからかhomebrewで入らなくなったので、環境作り直しの時に調べるの面倒なので入れ方メモ。
wget ftp://ftp.st.ryukoku.ac.jp/pub/security/tool/openssh-supports/connect.c gcc connect.c -o connect -lresolv # 適当にPATHが通ってるところに置いておく sudo mv connect ~/opt/bin/
compile時に大量にwarningsがでるが一応バイナリはできる。
connect.c:1937:13: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types with different sign [-Wpointer-sign] strcpy( ptr, relay_user ); ^~~ /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.10.sdk/usr/include/secure/_string.h:83:27: note: expanded from macro 'strcpy' __builtin___strcpy_chk (dest, src, __darwin_obsz (dest)) ^ connect.c:1941:13: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types with different sign [-Wpointer-sign] strcpy( ptr, pass ); ^~~ /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.10.sdk/usr/include/secure/_string.h:83:27: note: expanded from macro 'strcpy' __builtin___strcpy_chk (dest, src, __darwin_obsz (dest)) ^ connect.c:1947:20: warning: passing 'unsigned char [1024]' to parameter of type 'char *' converts between pointers to integer types with different sign [-Wpointer-sign] atomic_out( s, buf, ptr-buf ); ^~~ connect.c:1756:29: note: passing argument to parameter 'buf' here atomic_out( SOCKET s, char *buf, int size ) ^ connect.c:1949:19: warning: passing 'unsigned char [1024]' to parameter of type 'char *' converts between pointers to integer types with different sign [-Wpointer-sign] atomic_in( s, buf, 2 ); ^~~ connect.c:1782:28: note: passing argument to parameter 'buf' here atomic_in( SOCKET s, char *buf, int size ) ^ connect.c:2035:36: warning: initializing 'unsigned char *' with an expression of type 'char *' converts between pointers to integer types with different sign [-Wpointer-sign] unsigned char buf[256], *ptr, *env = socks5_auth; ^ ~~~~~~~~~~~ connect.c:2046:13: warning: assigning to 'unsigned char *' from 'char *' converts between pointers to integer types with different sign [-Wpointer-sign] env = getparam(ENV_SOCKS5_AUTH); ^ ~~~~~~~~~~~~~~~~~~~~~~~~~ connect.c:2053:36: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types with different sign [-Wpointer-sign] n_auth = socks5_auth_parse(env, auth_list, 10); ^~~ connect.c:2008:25: note: passing argument to parameter 'start' here socks5_auth_parse(char *start, unsigned char *auth_list, int max_auth){ ^ connect.c:2061:20: warning: passing 'unsigned char [256]' to parameter of type 'char *' converts between pointers to integer types with different sign [-Wpointer-sign] atomic_out( s, buf, ptr-buf ); /* send requst */ ^~~ connect.c:1756:29: note: passing argument to parameter 'buf' here atomic_out( SOCKET s, char *buf, int size ) ^ connect.c:2062:19: warning: passing 'unsigned char [256]' to parameter of type 'char *' converts between pointers to integer types with different sign [-Wpointer-sign] atomic_in( s, buf, 2 ); /* recv response */ ^~~ connect.c:1782:28: note: passing argument to parameter 'buf' here atomic_in( SOCKET s, char *buf, int size ) ^ connect.c:2115:20: warning: passing 'unsigned char [256]' to parameter of type 'char *' converts between pointers to integer types with different sign [-Wpointer-sign] atomic_out( s, buf, ptr-buf); /* send request */ ^~~ connect.c:1756:29: note: passing argument to parameter 'buf' here atomic_out( SOCKET s, char *buf, int size ) ^ connect.c:2116:19: warning: passing 'unsigned char [256]' to parameter of type 'char *' converts between pointers to integer types with different sign [-Wpointer-sign] atomic_in( s, buf, 4 ); /* recv response */ ^~~ connect.c:1782:28: note: passing argument to parameter 'buf' here atomic_in( SOCKET s, char *buf, int size ) ^ connect.c:2125:23: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types with different sign [-Wpointer-sign] atomic_in( s, ptr, 4+2 ); /* recv IPv4 addr and port */ ^~~ connect.c:1782:28: note: passing argument to parameter 'buf' here atomic_in( SOCKET s, char *buf, int size ) ^ connect.c:2128:23: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types with different sign [-Wpointer-sign] atomic_in( s, ptr, 1 ); /* recv name and port */ ^~~ connect.c:1782:28: note: passing argument to parameter 'buf' here atomic_in( SOCKET s, char *buf, int size ) ^ connect.c:2129:23: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types with different sign [-Wpointer-sign] atomic_in( s, ptr+1, *(unsigned char*)ptr + 2); ^~~~~ connect.c:1782:28: note: passing argument to parameter 'buf' here atomic_in( SOCKET s, char *buf, int size ) ^ connect.c:2132:23: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types with different sign [-Wpointer-sign] atomic_in( s, ptr, 16+2 ); /* recv IPv6 addr and port */ ^~~ connect.c:1782:28: note: passing argument to parameter 'buf' here atomic_in( SOCKET s, char *buf, int size ) ^ connect.c:2193:13: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types with different sign [-Wpointer-sign] strcpy( ptr, relay_user ); ^~~ /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.10.sdk/usr/include/secure/_string.h:83:27: note: expanded from macro 'strcpy' __builtin___strcpy_chk (dest, src, __darwin_obsz (dest)) ^ connect.c:2197:17: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types with different sign [-Wpointer-sign] strcpy( ptr, dest_host ); ^~~ /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.10.sdk/usr/include/secure/_string.h:83:27: note: expanded from macro 'strcpy' __builtin___strcpy_chk (dest, src, __darwin_obsz (dest)) ^ connect.c:2202:20: warning: passing 'unsigned char [256]' to parameter of type 'char *' converts between pointers to integer types with different sign [-Wpointer-sign] atomic_out( s, buf, ptr-buf); /* send request */ ^~~ connect.c:1756:29: note: passing argument to parameter 'buf' here atomic_out( SOCKET s, char *buf, int size ) ^ connect.c:2203:19: warning: passing 'unsigned char [256]' to parameter of type 'char *' converts between pointers to integer types with different sign [-Wpointer-sign] atomic_in( s, buf, 8 ); /* recv response */ ^~~ connect.c:1782:28: note: passing argument to parameter 'buf' here atomic_in( SOCKET s, char *buf, int size ) ^ connect.c:2248:9: warning: assigning to 'char *' from 'unsigned char *' converts between pointers to integer types with different sign [-Wpointer-sign] dst = (unsigned char *)buf; ^ ~~~~~~~~~~~~~~~~~~~~ connect.c:2749:41: warning: passing 'int *' to parameter of type 'socklen_t *' (aka 'unsigned int *') converts between pointers to integer types with different sign [-Wpointer-sign] connection = accept( sock, &client, &socklen); ^~~~~~~~ /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.10.sdk/usr/include/sys/socket.h:560:69: note: passing argument to parameter here int accept(int, struct sockaddr * __restrict, socklen_t * __restrict) ^ 21 warnings generated.