From: Urban Wallasch Date: Sat, 13 Apr 2019 10:23:29 +0000 (+0200) Subject: * Added cfg.xport, used in generated links (easy proxy support). X-Git-Url: https://git.packet-gain.de/?a=commitdiff_plain;h=HEAD;p=gogopherd.git * Added cfg.xport, used in generated links (easy proxy support). --- diff --git a/config.go b/config.go index 4841c66..2e0310f 100644 --- a/config.go +++ b/config.go @@ -24,6 +24,7 @@ var cfg = struct { iface string port string fqdn string + xport string docroot string idxpage string header string @@ -44,6 +45,7 @@ var cfg = struct { iface: "localhost", port: "7070", fqdn: "localhost", + xport: "7070", docroot: ".", idxpage: "index.goph", header: "", @@ -85,6 +87,8 @@ func parseConfigFile(filename string) error { cfg.port = val case "fqdn": cfg.fqdn = val + case "xport": + cfg.xport = val case "docroot": cfg.docroot = val case "idxpage": @@ -132,6 +136,7 @@ func initialize() { flag.StringVar(&cfg.iface, "i", cfg.iface, "interface to bind to; empty for any") flag.StringVar(&cfg.port, "p", cfg.port, "TCP `port` to listen on") flag.StringVar(&cfg.fqdn, "f", cfg.fqdn, "fully qualified domain name") + flag.StringVar(&cfg.xport, "x", cfg.xport, "TCP port for generated links") flag.StringVar(&cfg.docroot, "r", cfg.docroot, "document root `directory`") flag.StringVar(&cfg.idxpage, "I", cfg.idxpage, "directory index `file` name") flag.StringVar(&cfg.header, "H", cfg.header, "header: prepend contents of `file` to generated pages") @@ -182,9 +187,10 @@ func initialize() { } tracer.Print("final config:") - tracer.Print("fqdn: ", cfg.fqdn) tracer.Print("iface: ", cfg.iface) tracer.Print("port: ", cfg.port) + tracer.Print("fqdn: ", cfg.fqdn) + tracer.Print("xport: ", cfg.xport) tracer.Print("docroot: ", cfg.docroot) tracer.Print("idxpage: ", cfg.idxpage) tracer.Print("header: ", cfg.header) diff --git a/gogopherd.cfg.example b/gogopherd.cfg.example index e4e1d20..e59d5b9 100644 --- a/gogopherd.cfg.example +++ b/gogopherd.cfg.example @@ -8,6 +8,8 @@ iface = "localhost" port = 7070 # Fully qualified domain name associated with server. fqdn = "localhost" +# Port to use in generated links (useful for proxy support). +xport = 7070 # Root directory of document hierarchy. docroot = "samplehole" diff --git a/gogopherd.go b/gogopherd.go index 3ccc609..3ffe160 100644 --- a/gogopherd.go +++ b/gogopherd.go @@ -38,7 +38,7 @@ func createIndex(dirname string, selector string) (string, error) { if check(err, "Readdir "+dirname) != nil { return "", err } - loc := "\t" + cfg.fqdn + "\t" + cfg.port + "\r\n" + loc := "\t" + cfg.fqdn + "\t" + cfg.xport + "\r\n" list := "" if dirname != cfg.docroot { list += "1..\t" + path.Dir(selector) + loc @@ -108,7 +108,7 @@ func sendIndex(conn net.Conn, path string, selector string) (int64, error) { if selector == "" { selector = "/" } - page := "iIndex of " + selector + "\tErr\t" + cfg.fqdn + "\t" + cfg.port + "\r\n" + page := "iIndex of " + selector + "\tErr\t" + cfg.fqdn + "\t" + cfg.xport + "\r\n" page += idxpage var nb1 int nb1, err = conn.Write([]byte(page)) @@ -158,7 +158,7 @@ func sendError(conn net.Conn, msg string) { } nbytes, _ := sendHeader(conn) tracer.Print("send error page: ", msg) - s := "3Gopher Meditation: " + msg + emsg + "\tErr\t" + cfg.fqdn + "\t" + cfg.port + "\r\n" + s := "3Gopher Meditation: " + msg + emsg + "\tErr\t" + cfg.fqdn + "\t" + cfg.xport + "\r\n" nb1, err := conn.Write([]byte(s)) if check(err, "sendError Write ") != nil { return