this repo has no description smallweb.run
smallweb
4
fork

Configure Feed

Select the types of activity you want to include in your feed.

fix crash when using http

pomdtr b4f08b0c c44ca139

+51 -19
+51 -19
cmd/up.go
··· 107 107 workers: make(map[string]*worker.Worker), 108 108 }) 109 109 110 - var tlsConfig *tls.Config 111 110 if flags.acmdnsCreds != "" { 112 111 credentialPath := filepath.Join(xdg.DataHome, "smallweb", "acmedns", "credentials.json") 113 112 if _, err := os.Stat(credentialPath); err != nil { ··· 146 145 } 147 146 } 148 147 149 - c, err := certmagic.TLS(domains) 148 + tlsConfig, err := certmagic.TLS(domains) 150 149 if err != nil { 151 150 return fmt.Errorf("failed to get tls config: %v", err) 152 151 } 152 + tlsConfig.NextProtos = append([]string{"h2", "http/1.1"}, tlsConfig.NextProtos...) 153 153 154 - tlsConfig = c 154 + addr := flags.addr 155 + if addr == "" { 156 + addr = ":443" 157 + } 158 + 159 + ln, err := getListener(addr, tlsConfig) 160 + if err != nil { 161 + return fmt.Errorf("failed to get listener: %v", err) 162 + } 163 + 164 + fmt.Fprintf(cmd.ErrOrStderr(), "Serving *.%s from %s on %s...\n", k.String("domain"), utils.AddTilde(k.String("dir")), addr) 165 + go http.Serve(ln, handler) 155 166 } else if flags.onDemandTLS { 156 167 certmagic.Default.OnDemand = &certmagic.OnDemandConfig{ 157 168 DecisionFunc: func(ctx context.Context, name string) error { ··· 182 193 }, 183 194 } 184 195 185 - c, err := certmagic.TLS(nil) 196 + tlsConfig, err := certmagic.TLS(nil) 186 197 if err != nil { 187 198 return fmt.Errorf("failed to get tls config: %v", err) 188 199 } 200 + tlsConfig.NextProtos = append([]string{"h2", "http/1.1"}, tlsConfig.NextProtos...) 189 201 190 - tlsConfig = c 202 + addr := flags.addr 203 + if addr == "" { 204 + addr = ":443" 205 + } 206 + 207 + ln, err := getListener(addr, tlsConfig) 208 + if err != nil { 209 + return fmt.Errorf("failed to get listener: %v", err) 210 + } 211 + 212 + fmt.Fprintf(cmd.ErrOrStderr(), "Serving *.%s from %s on %s...\n", k.String("domain"), utils.AddTilde(k.String("dir")), addr) 213 + go http.Serve(ln, handler) 191 214 } else if flags.tlsCert != "" && flags.tlsKey != "" { 192 215 cert, err := tls.LoadX509KeyPair(flags.tlsCert, flags.tlsKey) 193 216 if err != nil { 194 217 return fmt.Errorf("failed to load tls certificate: %v", err) 195 218 } 196 219 197 - tlsConfig = &tls.Config{Certificates: []tls.Certificate{cert}} 198 - } 220 + tlsConfig := &tls.Config{Certificates: []tls.Certificate{cert}} 221 + tlsConfig.NextProtos = append([]string{"h2", "http/1.1"}, tlsConfig.NextProtos...) 199 222 200 - addr := flags.addr 201 - if addr == "" { 202 - if tlsConfig != nil { 223 + addr := flags.addr 224 + if addr == "" { 203 225 addr = ":443" 204 - } else { 226 + } 227 + 228 + ln, err := getListener(addr, tlsConfig) 229 + if err != nil { 230 + return fmt.Errorf("failed to get listener: %v", err) 231 + } 232 + 233 + fmt.Fprintf(cmd.ErrOrStderr(), "Serving *.%s from %s on %s...\n", k.String("domain"), utils.AddTilde(k.String("dir")), addr) 234 + go http.Serve(ln, handler) 235 + } else { 236 + addr := flags.addr 237 + if addr == "" { 205 238 addr = ":7777" 206 239 } 207 - } 240 + 241 + ln, err := getListener(addr, nil) 242 + if err != nil { 243 + return fmt.Errorf("failed to get listener: %v", err) 244 + } 208 245 209 - tlsConfig.NextProtos = append([]string{"h2", "http/1.1"}, tlsConfig.NextProtos...) 210 - ln, err := getListener(addr, tlsConfig) 211 - if err != nil { 212 - return fmt.Errorf("failed to get listener: %v", err) 246 + fmt.Fprintf(cmd.ErrOrStderr(), "Serving *.%s from %s on %s...\n", k.String("domain"), utils.AddTilde(k.String("dir")), addr) 247 + go http.Serve(ln, handler) 213 248 } 214 - 215 - fmt.Fprintf(cmd.ErrOrStderr(), "Serving *.%s from %s on %s...\n", k.String("domain"), utils.AddTilde(k.String("dir")), addr) 216 - go http.Serve(ln, handler) 217 249 218 250 if flags.cron { 219 251 fmt.Fprintln(cmd.ErrOrStderr(), "Starting cron jobs...")