summaryrefslogtreecommitdiffhomepage
path: root/cmd
diff options
context:
space:
mode:
authorArnaud Dezandee <dezandee.arnaud@gmail.com>2021-12-06 09:28:19 +0100
committerBrad Fitzpatrick <brad@danga.com>2021-12-08 08:58:30 -0800
commit656809e4ee8eb243c6b778a29bfbefc41fbea7f9 (patch)
treeea6d8586aa248e23f63f544a61bd9597230c9cf2 /cmd
parente34ba3223c2cf8235fd882e6eb0b5460f90945f6 (diff)
downloadtailscale-656809e4ee8eb243c6b778a29bfbefc41fbea7f9.tar.xz
tailscale-656809e4ee8eb243c6b778a29bfbefc41fbea7f9.zip
cmd/derper: allow http port configuration
Signed-off-by: Arnaud Dezandee <dezandee.arnaud@gmail.com>
Diffstat (limited to 'cmd')
-rw-r--r--cmd/derper/derper.go38
1 files changed, 21 insertions, 17 deletions
diff --git a/cmd/derper/derper.go b/cmd/derper/derper.go
index e29bc4fda..d7007ed78 100644
--- a/cmd/derper/derper.go
+++ b/cmd/derper/derper.go
@@ -12,6 +12,7 @@ import (
"errors"
"expvar"
"flag"
+ "fmt"
"io"
"io/ioutil"
"log"
@@ -36,6 +37,7 @@ import (
var (
dev = flag.Bool("dev", false, "run in localhost development mode")
addr = flag.String("a", ":443", "server address")
+ httpPort = flag.Int("http-port", 80, "The port on which to serve HTTP. Set to -1 to disable")
configPath = flag.String("c", "", "config file path")
certMode = flag.String("certmode", "letsencrypt", "mode for getting a cert. possible options: manual, letsencrypt")
certDir = flag.String("certdir", tsweb.DefaultCertDir("derper-certs"), "directory to store LetsEncrypt certs, if addr's port is :443")
@@ -250,24 +252,26 @@ func main() {
w.Header().Set("Content-Security-Policy", "default-src 'none'; frame-ancestors 'none'; form-action 'none'; base-uri 'self'; block-all-mixed-content; plugin-types 'none'")
mux.ServeHTTP(w, r)
})
- go func() {
- port80srv := &http.Server{
- Addr: net.JoinHostPort(listenHost, "80"),
- Handler: certManager.HTTPHandler(tsweb.Port80Handler{Main: mux}),
- ReadTimeout: 30 * time.Second,
- // Crank up WriteTimeout a bit more than usually
- // necessary just so we can do long CPU profiles
- // and not hit net/http/pprof's "profile
- // duration exceeds server's WriteTimeout".
- WriteTimeout: 5 * time.Minute,
- }
- err := port80srv.ListenAndServe()
- if err != nil {
- if err != http.ErrServerClosed {
- log.Fatal(err)
+ if *httpPort > -1 {
+ go func() {
+ port80srv := &http.Server{
+ Addr: net.JoinHostPort(listenHost, fmt.Sprintf("%d", *httpPort)),
+ Handler: certManager.HTTPHandler(tsweb.Port80Handler{Main: mux}),
+ ReadTimeout: 30 * time.Second,
+ // Crank up WriteTimeout a bit more than usually
+ // necessary just so we can do long CPU profiles
+ // and not hit net/http/pprof's "profile
+ // duration exceeds server's WriteTimeout".
+ WriteTimeout: 5 * time.Minute,
}
- }
- }()
+ err := port80srv.ListenAndServe()
+ if err != nil {
+ if err != http.ErrServerClosed {
+ log.Fatal(err)
+ }
+ }
+ }()
+ }
err = httpsrv.ListenAndServeTLS("", "")
} else {
log.Printf("derper: serving on %s", *addr)