1
1
Fork 0
mirror of https://github.com/schollz/croc.git synced 2025-10-11 05:11:06 +02:00
This commit is contained in:
Zack Scholl 2017-10-20 16:13:34 -06:00
parent 28ea514725
commit 9fbaa4bab2

130
main.go
View file

@ -1,65 +1,65 @@
package main package main
import ( import (
"bufio" "bufio"
"flag" "flag"
"fmt" "fmt"
"os" "os"
"strings" "strings"
) )
const BUFFERSIZE = 1024 const BUFFERSIZE = 1024
var oneGigabytePerSecond = 1000000 // expressed as kbps var oneGigabytePerSecond = 1000000 // expressed as kbps
type Flags struct { type Flags struct {
Relay bool Relay bool
Debug bool Debug bool
DontEncrypt bool DontEncrypt bool
Server string Server string
File string File string
Code string Code string
Rate int Rate int
NumberOfConnections int NumberOfConnections int
} }
var version string var version string
func main() { func main() {
fmt.Println(` fmt.Println(`
/\_/\ /\_/\
____/ o o \ ____/ o o \
/~____ =ø= / /~____ =ø= /
(______)__m_m) (______)__m_m)
croc version ` + version + ` croc version ` + version + `
`) `)
flags := new(Flags) flags := new(Flags)
flag.BoolVar(&flags.Relay, "relay", false, "run as relay") flag.BoolVar(&flags.Relay, "relay", false, "run as relay")
flag.BoolVar(&flags.Debug, "debug", false, "debug mode") flag.BoolVar(&flags.Debug, "debug", false, "debug mode")
flag.StringVar(&flags.Server, "server", "cowyo.com", "address of relay server") flag.StringVar(&flags.Server, "server", "cowyo.com", "address of relay server")
flag.StringVar(&flags.File, "send", "", "file to send") flag.StringVar(&flags.File, "send", "", "file to send")
flag.StringVar(&flags.Code, "code", "", "use your own code phrase") flag.StringVar(&flags.Code, "code", "", "use your own code phrase")
flag.IntVar(&flags.Rate, "rate", oneGigabytePerSecond, "throttle down to speed in kbps") flag.IntVar(&flags.Rate, "rate", oneGigabytePerSecond, "throttle down to speed in kbps")
flag.BoolVar(&flags.DontEncrypt, "no-encrypt", false, "turn off encryption") flag.BoolVar(&flags.DontEncrypt, "no-encrypt", false, "turn off encryption")
flag.IntVar(&flags.NumberOfConnections, "threads", 4, "number of threads to use") flag.IntVar(&flags.NumberOfConnections, "threads", 4, "number of threads to use")
flag.Parse() flag.Parse()
if flags.Relay { if flags.Relay {
r := NewRelay(flags) r := NewRelay(flags)
r.Run() r.Run()
} else { } else {
c := NewConnection(flags) c := NewConnection(flags)
err := c.Run() err := c.Run()
if err != nil { if err != nil {
fmt.Printf("Error! Please submit the following error to https://github.com/schollz/croc/issues:\n\n'%s'\n\n", err.Error()) fmt.Printf("Error! Please submit the following error to https://github.com/schollz/croc/issues:\n\n'%s'\n\n", err.Error())
} }
} }
} }
func getInput(prompt string) string { func getInput(prompt string) string {
reader := bufio.NewReader(os.Stdin) reader := bufio.NewReader(os.Stdin)
fmt.Print(prompt) fmt.Print(prompt)
text, _ := reader.ReadString('\n') text, _ := reader.ReadString('\n')
return strings.TrimSpace(text) return strings.TrimSpace(text)
} }