improve cli input validation
This commit is contained in:
parent
c3b26395e1
commit
4a69686f81
20
main.go
20
main.go
@ -8,6 +8,7 @@ import (
|
|||||||
"io/ioutil"
|
"io/ioutil"
|
||||||
"log"
|
"log"
|
||||||
"math/rand"
|
"math/rand"
|
||||||
|
"net"
|
||||||
"net/http"
|
"net/http"
|
||||||
"net/url"
|
"net/url"
|
||||||
"os"
|
"os"
|
||||||
@ -205,7 +206,7 @@ func main() {
|
|||||||
flag.StringVar(&domain, "domain", "localhost", "Domain to write to the URLs")
|
flag.StringVar(&domain, "domain", "localhost", "Domain to write to the URLs")
|
||||||
flag.StringVar(&dumpFile, "dump", "urls.json", "Path to the file to dump the kv db")
|
flag.StringVar(&dumpFile, "dump", "urls.json", "Path to the file to dump the kv db")
|
||||||
flag.StringVar(&path, "path", "", "Path to the base URL (https://localhost/PATH/... remember to append a / at the end")
|
flag.StringVar(&path, "path", "", "Path to the base URL (https://localhost/PATH/... remember to append a / at the end")
|
||||||
flag.StringVar(&port, "port", "8080", "Port to listen for connections")
|
flag.IntVar(&port, "port", 8080, "Port to listen for connections")
|
||||||
flag.StringVar(&proto, "proto", "https", "proto to the base URL (HTTPS://localhost/path/... no real https here just to set the url (for like a proxy offloading https")
|
flag.StringVar(&proto, "proto", "https", "proto to the base URL (HTTPS://localhost/path/... no real https here just to set the url (for like a proxy offloading https")
|
||||||
flag.IntVar(&urlSize, "urlsize", 10, "Define the size of the shortened String, default 10")
|
flag.IntVar(&urlSize, "urlsize", 10, "Define the size of the shortened String, default 10")
|
||||||
version := flag.Bool("v", false, "prints current version")
|
version := flag.Bool("v", false, "prints current version")
|
||||||
@ -215,11 +216,26 @@ func main() {
|
|||||||
os.Exit(0)
|
os.Exit(0)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if port > 65535 || port < 1 {
|
||||||
|
|
||||||
|
}
|
||||||
if path != "" && !strings.HasSuffix(path, "/") {
|
if path != "" && !strings.HasSuffix(path, "/") {
|
||||||
path = path + "/"
|
path = path + "/"
|
||||||
}
|
}
|
||||||
|
ip := net.ParseIP(addr)
|
||||||
|
if ip != nil {
|
||||||
|
listenAddr = ip.String() + ":" + strconv.Itoa(port)
|
||||||
|
} else {
|
||||||
|
if govalidator.IsDNSName(addr) {
|
||||||
|
listenAddr = addr + ":" + strconv.Itoa(port)
|
||||||
|
} else {
|
||||||
|
log.Fatalln("Invalid ip address")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
listenAddr := addr + ":" + port
|
if !govalidator.IsDNSName(domain) {
|
||||||
|
log.Fatalln("Invalid domain address")
|
||||||
|
}
|
||||||
|
|
||||||
r := mux.NewRouter()
|
r := mux.NewRouter()
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user