]> Sergey Matveev's repositories - godlighty.git/blob - cfg.go
Use mtime instead of ctime
[godlighty.git] / cfg.go
1 // godlighty -- highly-customizable HTTP, HTTP/2, HTTPS server
2 // Copyright (C) 2021-2024 Sergey Matveev <stargrave@stargrave.org>
3 //
4 // This program is free software: you can redistribute it and/or modify
5 // it under the terms of the GNU General Public License as published by
6 // the Free Software Foundation, version 3 of the License.
7 //
8 // This program is distributed in the hope that it will be useful,
9 // but WITHOUT ANY WARRANTY; without even the implied warranty of
10 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
11 // GNU General Public License for more details.
12 //
13 // You should have received a copy of the GNU General Public License
14 // along with this program.  If not, see <http://www.gnu.org/licenses/>.
15
16 package godlighty
17
18 import (
19         "net/http"
20 )
21
22 type TLSCfg struct {
23         Cert   string
24         Key    string
25         CACert string
26
27         // Require client authentication
28         ClientCAs []string
29 }
30
31 type AuthCfg struct {
32         Passwords string
33         Realm     string
34 }
35
36 type Hook func(http.ResponseWriter, *http.Request) bool
37
38 type HostCfg struct {
39         Root     string
40         ECDSATLS *TLSCfg
41         EdDSATLS *TLSCfg
42         GOSTTLS  *TLSCfg
43         DirList  bool
44         WebDAV   bool
45         Hooks    []Hook
46         Auth     *AuthCfg
47
48         Indices []string
49         Readmes []string
50         MIMEs   map[string]string
51 }
52
53 var Hosts = make(map[string]*HostCfg)