From fca8f5d8addeebba7d55d4b69159745c84f27a91 Mon Sep 17 00:00:00 2001 From: Elizabeth Hunt Date: Sun, 12 May 2024 14:32:50 -0700 Subject: [PATCH] fix segfault --- api/auth/auth.go | 1 - api/dns/dns.go | 4 ++++ api/serve.go | 3 ++- main.go | 1 + 4 files changed, 7 insertions(+), 2 deletions(-) diff --git a/api/auth/auth.go b/api/auth/auth.go index 04d6c12..c54aad6 100644 --- a/api/auth/auth.go +++ b/api/auth/auth.go @@ -170,7 +170,6 @@ func VerifySessionContinuation(context *types.RequestContext, req *http.Request, func GoLoginContinuation(context *types.RequestContext, req *http.Request, resp http.ResponseWriter) types.ContinuationChain { return func(success types.Continuation, failure types.Continuation) types.ContinuationChain { - log.Println("GoLoginContinuation") http.SetCookie(resp, &http.Cookie{ Name: "redirect", Value: req.URL.Path, diff --git a/api/dns/dns.go b/api/dns/dns.go index 6357dfc..7e9c7c7 100644 --- a/api/dns/dns.go +++ b/api/dns/dns.go @@ -20,6 +20,10 @@ var UserOwnedInternalFmtDomains = []string{"%s", "%s.endpoints"} func ListDNSRecordsContinuation(context *types.RequestContext, req *http.Request, resp http.ResponseWriter) types.ContinuationChain { return func(success types.Continuation, failure types.Continuation) types.ContinuationChain { + if context.User == nil { + return failure(context, req, resp) + } + dnsRecords, err := database.GetUserDNSRecords(context.DBConn, context.User.ID) if err != nil { log.Println(err) diff --git a/api/serve.go b/api/serve.go index a688445..ca8142b 100644 --- a/api/serve.go +++ b/api/serve.go @@ -138,7 +138,8 @@ func MakeServer(argv *args.Arguments, dbConn *sql.DB) *http.Server { mux.HandleFunc("POST /dns", func(w http.ResponseWriter, r *http.Request) { requestContext := makeRequestContext() - LogRequestContinuation(requestContext, r, w)(auth.VerifySessionContinuation, FailurePassingContinuation)(dns.ListDNSRecordsContinuation, auth.GoLoginContinuation)(dns.CreateDNSRecordContinuation(cloudflareAdapter, dns.MaxUserRecords, dns.UserOwnedInternalFmtDomains), FailurePassingContinuation)(dns.ListDNSRecordsContinuation, dns.ListDNSRecordsContinuation)(template.TemplateContinuation("dns.html", true), template.TemplateContinuation("dns.html", true))(LogExecutionTimeContinuation, LogExecutionTimeContinuation)(IdContinuation, IdContinuation) + createRecordContinuation := dns.CreateDNSRecordContinuation(cloudflareAdapter, dns.MaxUserRecords, dns.UserOwnedInternalFmtDomains) + LogRequestContinuation(requestContext, r, w)(auth.VerifySessionContinuation, FailurePassingContinuation)(dns.ListDNSRecordsContinuation, auth.GoLoginContinuation)(createRecordContinuation, FailurePassingContinuation)(dns.ListDNSRecordsContinuation, dns.ListDNSRecordsContinuation)(template.TemplateContinuation("dns.html", true), template.TemplateContinuation("dns.html", true))(LogExecutionTimeContinuation, LogExecutionTimeContinuation)(IdContinuation, IdContinuation) }) mux.HandleFunc("POST /dns/delete", func(w http.ResponseWriter, r *http.Request) { diff --git a/main.go b/main.go index fd703f0..47e4f30 100644 --- a/main.go +++ b/main.go @@ -56,6 +56,7 @@ func main() { log.Println("🚀🚀 DNS resolver listening on port", argv.DnsPort) go func() { err = server.ListenAndServe() + if err != nil { log.Fatal(err) }