Skip to content

Commit 5e70935

Browse files
committed
golink: PR feedback round two
* create discrete ctx variables for localClient & tsnet server interactions. * DRY up the http(s) handler code even further. * call log.Fatal for https serving errors that were previously swallowed. Signed-off-by: Patrick O'Doherty <[email protected]>
1 parent 5722cf2 commit 5e70935

File tree

1 file changed

+13
-23
lines changed

1 file changed

+13
-23
lines changed

golink.go

Lines changed: 13 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -174,53 +174,43 @@ func Run() error {
174174
localClient, _ = srv.LocalClient()
175175
out:
176176
for {
177-
ctx, cancel := context.WithTimeout(context.Background(), 10*time.Second)
177+
upCtx, cancel := context.WithTimeout(context.Background(), 10*time.Second)
178178
defer cancel()
179-
status, err := srv.Up(ctx)
179+
status, err := srv.Up(upCtx)
180180
if err == nil && status != nil {
181181
break out
182182
}
183183
}
184184

185-
ctx, cancel := context.WithTimeout(context.Background(), 10*time.Second)
185+
statusCtx, cancel := context.WithTimeout(context.Background(), 10*time.Second)
186186
defer cancel()
187-
status, err := localClient.Status(ctx)
187+
status, err := localClient.Status(statusCtx)
188188
if err != nil {
189189
return err
190190
}
191191
enableTLS := status.Self.HasCap(tailcfg.CapabilityHTTPS)
192-
dnsName := status.Self.DNSName
192+
fqdn := strings.TrimSuffix(status.Self.DNSName, ".")
193193

194-
var httpHandler http.Handler
195-
var httpsHandler http.Handler
194+
httpHandler := serveHandler()
196195
if enableTLS {
197-
redirectFqdn := strings.TrimSuffix(dnsName, ".")
198-
httpHandler = redirectHandler(redirectFqdn)
199-
httpsHandler = HSTS(serveHandler())
200-
} else {
201-
httpHandler = serveHandler()
202-
httpsHandler = nil
203-
}
196+
httpsHandler := HSTS(httpHandler)
197+
httpHandler = redirectHandler(fqdn)
204198

205-
if httpsHandler != nil {
206-
log.Println("Listening on :443")
207199
httpsListener, err := srv.ListenTLS("tcp", ":443")
208200
if err != nil {
209201
return err
210202
}
211-
go func() error {
212-
log.Printf("Serving https://%s/ ...", strings.TrimSuffix(dnsName, "."))
203+
log.Println("Listening on :443")
204+
go func() {
205+
log.Printf("Serving https://%s/ ...", fqdn)
213206
if err := http.Serve(httpsListener, httpsHandler); err != nil {
214-
return err
207+
log.Fatal(err)
215208
}
216-
return nil
217209
}()
218210
}
219211

220-
// HTTP handler that either serves primary handler or redirects to HTTPS
221-
// depending on availability of TLS.
222-
log.Println("Listening on :80")
223212
httpListener, err := srv.Listen("tcp", ":80")
213+
log.Println("Listening on :80")
224214
if err != nil {
225215
return err
226216
}

0 commit comments

Comments
 (0)