More and better error logging.
This commit is contained in:
parent
f7e588dfae
commit
3cd4a072fd
2 changed files with 14 additions and 6 deletions
11
dirlist.go
11
dirlist.go
|
@ -12,11 +12,11 @@ import (
|
|||
"strings"
|
||||
)
|
||||
|
||||
func generateDirectoryListing(URL *url.URL, path string, config Config) string {
|
||||
func generateDirectoryListing(URL *url.URL, path string, config Config) (string, error) {
|
||||
var listing string
|
||||
files, err := ioutil.ReadDir(path)
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
return listing, err
|
||||
}
|
||||
listing = "# Directory listing\n\n"
|
||||
// Override with .mollyhead file
|
||||
|
@ -24,9 +24,10 @@ func generateDirectoryListing(URL *url.URL, path string, config Config) string {
|
|||
_, err = os.Stat(header_path)
|
||||
if err == nil {
|
||||
header, err := ioutil.ReadFile(header_path)
|
||||
if err == nil {
|
||||
listing = string(header)
|
||||
if err != nil {
|
||||
return listing, err
|
||||
}
|
||||
listing = string(header)
|
||||
}
|
||||
// Do "up" link first
|
||||
if URL.Path != "/" {
|
||||
|
@ -62,7 +63,7 @@ func generateDirectoryListing(URL *url.URL, path string, config Config) string {
|
|||
}
|
||||
listing += fmt.Sprintf("=> %s %s\n", url.PathEscape(file.Name()), generatePrettyFileLabel(file, path, config))
|
||||
}
|
||||
return listing
|
||||
return listing, nil
|
||||
}
|
||||
|
||||
func generatePrettyFileLabel(info os.FileInfo, path string, config Config) string {
|
||||
|
|
|
@ -277,9 +277,16 @@ func serveDirectory(URL *url.URL, path string, log *LogEntry, conn net.Conn, con
|
|||
serveFile(index_path, log, conn, config, errorLog)
|
||||
// Serve a generated listing
|
||||
} else {
|
||||
listing, err := generateDirectoryListing(URL, path, config)
|
||||
if err != nil {
|
||||
errorLog.Println("Error generating listing for directory " + path + ": " + err.Error())
|
||||
conn.Write([]byte("40 Server error!\r\n"))
|
||||
log.Status = 40
|
||||
return
|
||||
}
|
||||
conn.Write([]byte("20 text/gemini\r\n"))
|
||||
log.Status = 20
|
||||
conn.Write([]byte(generateDirectoryListing(URL, path, config)))
|
||||
conn.Write([]byte(listing))
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue