Compare commits

...

2 Commits

Author SHA1 Message Date
Paper 7ebb925153 Add an option to not include symlinks in dirlist. 2021-02-08 12:27:31 +01:00
Paper 53644b96e0 Prefer server cipher suites 2021-02-08 11:50:43 +01:00
5 changed files with 24 additions and 4 deletions

View File

@ -235,6 +235,8 @@ directory listing:
directory listings will use the first top-level heading (i.e. line
beginning with "# ") in files with an extension of `GeminiExt`
instead of the filename (default value false).
* `DirectoryLinks` (boolean): if false, symlinks will not be included
in the automatically generated directory listings.
### Redirects

View File

@ -29,6 +29,7 @@ type Config struct {
DirectorySort string
DirectoryReverse bool
DirectoryTitles bool
DirectoryLinks bool
}
type MollyFile struct {
@ -41,6 +42,7 @@ type MollyFile struct {
DirectorySort string
DirectoryReverse bool
DirectoryTitles bool
DirectoryLinks bool
}
func getConfig(filename string) (Config, error) {
@ -126,6 +128,7 @@ func parseMollyFiles(path string, config *Config, errorLog *log.Logger) {
mollyFile.DirectorySort = config.DirectorySort
mollyFile.DirectoryReverse = config.DirectoryReverse
mollyFile.DirectoryTitles = config.DirectoryTitles
mollyFile.DirectoryLinks = config.DirectoryLinks
// Build list of directories to check
var dirs []string
dirs = append(dirs, path)
@ -163,6 +166,7 @@ func parseMollyFiles(path string, config *Config, errorLog *log.Logger) {
config.DirectorySort = mollyFile.DirectorySort
config.DirectoryReverse = mollyFile.DirectoryReverse
config.DirectoryTitles = mollyFile.DirectoryTitles
config.DirectoryLinks = mollyFile.DirectoryLinks
for key, value := range mollyFile.TempRedirects {
config.TempRedirects[key] = value
}

View File

@ -13,10 +13,21 @@ import (
func generateDirectoryListing(URL *url.URL, path string, config Config) (string, error) {
var listing string
files, err := ioutil.ReadDir(path)
rfiles, err := ioutil.ReadDir(path)
if err != nil {
return listing, err
}
var files []os.FileInfo
if config.DirectoryLinks {
files = rfiles
} else {
for _, file := range rfiles {
if file.Mode() & os.ModeSymlink == 0 {
files = append(files, file)
}
}
}
listing = "# Directory listing\n\n"
// Override with .mollyhead file
header_path := filepath.Join(path, ".mollyhead")

View File

@ -17,6 +17,7 @@
#DirectorySort = "Time"
#DirectoryReverse = true
#DirectoryTitles = true
#DirectoryLinks = false
#
## Dynamic content
#

View File

@ -56,10 +56,12 @@ func main() {
errorLog.Println("Error loading TLS keypair: " + err.Error())
log.Fatal(err)
}
tlscfg := &tls.Config{
Certificates: []tls.Certificate{cert},
MinVersion: tls.VersionTLS12,
ClientAuth: tls.RequestClientCert,
Certificates: []tls.Certificate{cert},
MinVersion: tls.VersionTLS12,
ClientAuth: tls.RequestClientCert,
PreferServerCipherSuites: true,
}
// Create TLS listener