MCPcopy
hub / github.com/bettercap/bettercap / Configure

Method Configure

modules/https_server/https_server.go:83–152  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

81}
82
83func (mod *HttpsServer) Configure() error {
84 var err error
85 var path string
86 var address string
87 var port int
88 var certFile string
89 var keyFile string
90
91 if mod.Running() {
92 return session.ErrAlreadyStarted(mod.Name())
93 }
94
95 if err, path = mod.StringParam("https.server.path"); err != nil {
96 return err
97 }
98
99 router := http.NewServeMux()
100 fileServer := http.FileServer(http.Dir(path))
101
102 router.HandleFunc("/", http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
103 mod.Debug("%s %s %s%s", tui.Bold(strings.Split(r.RemoteAddr, ":")[0]), r.Method, r.Host, r.URL.Path)
104 fileServer.ServeHTTP(w, r)
105 }))
106
107 mod.server.Handler = router
108
109 if err, address = mod.StringParam("https.server.address"); err != nil {
110 return err
111 }
112
113 if err, port = mod.IntParam("https.server.port"); err != nil {
114 return err
115 }
116
117 mod.server.Addr = fmt.Sprintf("%s:%d", address, port)
118
119 if err, certFile = mod.StringParam("https.server.certificate"); err != nil {
120 return err
121 } else if certFile, err = fs.Expand(certFile); err != nil {
122 return err
123 }
124
125 if err, keyFile = mod.StringParam("https.server.key"); err != nil {
126 return err
127 } else if keyFile, err = fs.Expand(keyFile); err != nil {
128 return err
129 }
130
131 if !fs.Exists(certFile) || !fs.Exists(keyFile) {
132 cfg, err := tls.CertConfigFromModule("https.server", mod.SessionModule)
133 if err != nil {
134 return err
135 }
136
137 mod.Debug("%+v", cfg)
138 mod.Info("generating server TLS key to %s", keyFile)
139 mod.Info("generating server TLS certificate to %s", certFile)
140 if err := tls.Generate(cfg, certFile, keyFile, false); err != nil {

Callers 1

StartMethod · 0.95

Calls 9

NameMethod · 0.95
ErrAlreadyStartedFunction · 0.92
CertConfigFromModuleFunction · 0.92
GenerateFunction · 0.92
StringParamMethod · 0.80
IntParamMethod · 0.80
RunningMethod · 0.65
DebugMethod · 0.45
InfoMethod · 0.45

Tested by

no test coverage detected