mirror of
				https://github.com/therootcompany/sclient
				synced 2024-11-16 17:09:00 +00:00 
			
		
		
		
	Compare commits
	
		
			No commits in common. "master" and "v1.3.3" have entirely different histories.
		
	
	
		
	
		
| @ -24,15 +24,13 @@ func ver() string { | ||||
| } | ||||
| 
 | ||||
| func usage() { | ||||
| 	fmt.Fprintf(os.Stderr, "\n%s\n"+ | ||||
| 	fmt.Fprintf(os.Stderr, "\nsclient %s\n"+ | ||||
| 		"\nusage: sclient <remote> <local>\n"+ | ||||
| 		"\n"+ | ||||
| 		"   ex: sclient example.com 3000\n"+ | ||||
| 		"      (sclient example.com:443 localhost:3000)\n"+ | ||||
| 		"\n"+ | ||||
| 		"   ex: sclient example.com:8443 0.0.0.0:4080\n"+ | ||||
| 		"\n"+ | ||||
| 		"   ex: sclient example.com:443 -\n"+ | ||||
| 		"\n", ver()) | ||||
| 	flag.PrintDefaults() | ||||
| 	fmt.Println() | ||||
| @ -48,11 +46,9 @@ func main() { | ||||
| 	} | ||||
| 
 | ||||
| 	flag.Usage = usage | ||||
| 	insecure := flag.Bool("k", false, "alias for --insecure") | ||||
| 	silent := flag.Bool("s", false, "alias of --silent") | ||||
| 	insecure := flag.Bool("k", false, "ignore bad TLS/SSL/HTTPS certificates") | ||||
| 	servername := flag.String("servername", "", "specify a servername different from <remote> (to disable SNI use an IP as <remote> and do use this option)") | ||||
| 	flag.BoolVar(insecure, "insecure", false, "ignore bad TLS/SSL/HTTPS certificates") | ||||
| 	flag.BoolVar(silent, "silent", false, "less verbose output") | ||||
| 	flag.Parse() | ||||
| 	remotestr := flag.Arg(0) | ||||
| 	localstr := flag.Arg(1) | ||||
| @ -73,7 +69,6 @@ func main() { | ||||
| 		LocalAddress:       "localhost", | ||||
| 		InsecureSkipVerify: *insecure, | ||||
| 		ServerName:         *servername, | ||||
| 		Silent:             *silent, | ||||
| 	} | ||||
| 
 | ||||
| 	remote := strings.Split(remotestr, ":") | ||||
|  | ||||
							
								
								
									
										25
									
								
								sclient.go
									
									
									
									
									
								
							
							
						
						
									
										25
									
								
								sclient.go
									
									
									
									
									
								
							| @ -18,7 +18,6 @@ type Tunnel struct { | ||||
| 	LocalPort          int | ||||
| 	InsecureSkipVerify bool | ||||
| 	ServerName         string | ||||
| 	Silent             bool | ||||
| } | ||||
| 
 | ||||
| // DialAndListen will create a test TLS connection to the remote address and then | ||||
| @ -46,7 +45,7 @@ func (t *Tunnel) DialAndListen() error { | ||||
| 		} else { | ||||
| 			name = "stdin" | ||||
| 		} | ||||
| 		conn := &stdnet{os.Stdin, os.Stdout, &stdaddr{net.UnixAddr{Name: name, Net: network}}} | ||||
| 		conn := &stdnet{os.Stdin, os.Stdout, &stdaddr{net.UnixAddr{name, network}}} | ||||
| 		t.handleConnection(remote, conn) | ||||
| 		return nil | ||||
| 	} | ||||
| @ -58,10 +57,8 @@ func (t *Tunnel) DialAndListen() error { | ||||
| 		return err | ||||
| 	} | ||||
| 
 | ||||
| 	if !t.Silent { | ||||
| 		fmt.Fprintf(os.Stdout, "[listening] %s:%d <= %s:%d\n", | ||||
| 			t.RemoteAddress, t.RemotePort, t.LocalAddress, t.LocalPort) | ||||
| 	} | ||||
| 	fmt.Fprintf(os.Stdout, "[listening] %s:%d <= %s:%d\n", | ||||
| 		t.RemoteAddress, t.RemotePort, t.LocalAddress, t.LocalPort) | ||||
| 
 | ||||
| 	for { | ||||
| 		conn, err := ln.Accept() | ||||
| @ -113,7 +110,7 @@ func pipe(r netReadWriteCloser, w netReadWriteCloser, t string) { | ||||
| 		if nil != err { | ||||
| 			//fmt.Fprintf(os.Stdout, "[debug] (%s:%d) error reading %s\n", t, count, err) | ||||
| 			if io.EOF != err { | ||||
| 				fmt.Fprintf(os.Stderr, "[read error] (%s:%d) %s\n", t, count, err) | ||||
| 				fmt.Fprintf(os.Stderr, "[read error] (%s:%s) %s\n", t, count, err) | ||||
| 			} | ||||
| 			r.Close() | ||||
| 			//w.Close() | ||||
| @ -152,14 +149,12 @@ func (t *Tunnel) handleConnection(remote string, conn netReadWriteCloser) { | ||||
| 		return | ||||
| 	} | ||||
| 
 | ||||
| 	if !t.Silent { | ||||
| 		if "stdio" == conn.RemoteAddr().Network() { | ||||
| 			fmt.Fprintf(os.Stdout, "(connected to %s:%d and reading from %s)\n", | ||||
| 				t.RemoteAddress, t.RemotePort, conn.RemoteAddr().String()) | ||||
| 		} else { | ||||
| 			fmt.Fprintf(os.Stdout, "[connect] %s => %s:%d\n", | ||||
| 				strings.Replace(conn.RemoteAddr().String(), "[::1]:", "localhost:", 1), t.RemoteAddress, t.RemotePort) | ||||
| 		} | ||||
| 	if "stdio" == conn.RemoteAddr().Network() { | ||||
| 		fmt.Fprintf(os.Stdout, "(connected to %s:%d and reading from %s)\n", | ||||
| 			t.RemoteAddress, t.RemotePort, conn.RemoteAddr().String()) | ||||
| 	} else { | ||||
| 		fmt.Fprintf(os.Stdout, "[connect] %s => %s:%d\n", | ||||
| 			strings.Replace(conn.RemoteAddr().String(), "[::1]:", "localhost:", 1), t.RemoteAddress, t.RemotePort) | ||||
| 	} | ||||
| 
 | ||||
| 	go pipe(conn, sclient, "local") | ||||
|  | ||||
| @ -1,11 +0,0 @@ | ||||
| # I like my yoda conditions ST1017 | ||||
| checks = ["all", "-ST1017", "-ST1000", "-ST1003", "-ST1016", "-ST1020", "-ST1021", "-ST1022", "-ST1023"] | ||||
| initialisms = ["ACL", "API", "ASCII", "CPU", "CSS", "DNS", | ||||
| 	"EOF", "GUID", "HTML", "HTTP", "HTTPS", "ID", | ||||
| 	"IP", "JSON", "QPS", "RAM", "RPC", "SLA", | ||||
| 	"SMTP", "SQL", "SSH", "TCP", "TLS", "TTL", | ||||
| 	"UDP", "UI", "GID", "UID", "UUID", "URI", | ||||
| 	"URL", "UTF8", "VM", "XML", "XMPP", "XSRF", | ||||
| 	"XSS", "SIP", "RTP", "AMQP", "DB", "TS"] | ||||
| dot_import_whitelist = [] | ||||
| http_status_code_whitelist = ["200", "400", "404", "500"] | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user