move RootDir variable to be stored in ConnHost (will help with virtual hosts in future)

Signed-off-by: kim (grufwub) <grufwub@gmail.com>
master
kim (grufwub) 4 years ago
parent 75db1de42f
commit ac20b9d6b3

@ -13,7 +13,6 @@ import (
*/
type ServerConfig struct {
/* Base settings */
RootDir string
/* Content settings */
FooterText []byte

@ -6,8 +6,9 @@ import (
/* Data structure to hold specific host details */
type ConnHost struct {
Name string
Port string
Name string
Port string
RootDir string
}
/* Simple wrapper to Listener that holds onto virtual
@ -19,9 +20,9 @@ type GophorListener struct {
Host *ConnHost
}
func BeginGophorListen(bindAddr, hostname, port string) (*GophorListener, error) {
func BeginGophorListen(bindAddr, hostname, port, rootDir string) (*GophorListener, error) {
gophorListener := new(GophorListener)
gophorListener.Host = &ConnHost{ hostname, port }
gophorListener.Host = &ConnHost{ hostname, port, rootDir }
var err error
gophorListener.Listener, err = net.Listen("tcp", bindAddr+":"+port)
@ -40,7 +41,7 @@ func (l *GophorListener) Accept() (*GophorConn, error) {
gophorConn := new(GophorConn)
gophorConn.Conn = conn
gophorConn.Host = &ConnHost{ l.Host.Name, l.Host.Port }
gophorConn.Host = &ConnHost{ l.Host.Name, l.Host.Port, l.Host.RootDir }
return gophorConn, nil
}

@ -159,11 +159,10 @@ func setupServer() []*GophorListener {
/* Try enter chroot if requested */
if *rootless {
Config.RootDir = *serverRoot
Config.LogSystem("Running rootless, server root set: %s\n", *serverRoot)
} else {
chrootServerDir(*serverRoot)
Config.RootDir = "/"
*serverRoot = "/"
Config.LogSystem("Chroot success, new root: %s\n", *serverRoot)
}
@ -172,7 +171,7 @@ func setupServer() []*GophorListener {
/* If requested, setup unencrypted listener */
if *serverPort != 0 {
l, err := BeginGophorListen(*serverBindAddr, *serverHostname, strconv.Itoa(*serverPort))
l, err := BeginGophorListen(*serverBindAddr, *serverHostname, strconv.Itoa(*serverPort), *serverRoot)
if err != nil {
Config.LogSystemFatal("Error setting up (unencrypted) listener: %s\n", err.Error())
}

@ -106,7 +106,7 @@ func (worker *Worker) RespondGopher(data []byte) *GophorError {
}
/* Get request path from data string */
requestPath := NewRequestPath(Config.RootDir, dataStr)
requestPath := NewRequestPath(worker.Conn.Host.RootDir, dataStr)
/* Append lastline */
response, gophorErr := Config.FileSystem.HandleRequest(requestPath, worker.Conn.Host)

Loading…
Cancel
Save