@@ -77,20 +77,29 @@ func New() *Kid {
77
77
// Run runs HTTP server.
78
78
//
79
79
// Specifying an address is optional. Default address is :2376.
80
- func (k * Kid ) Run (address ... string ) error {
81
- addr := resolveAddress ( address , runtime . GOOS )
80
+ func (k * Kid ) Run (addrs ... string ) error {
81
+ address := k . setUpServer ( addrs )
82
82
83
83
k .printDebug (os .Stdout , "Kid version %s\n " , Version )
84
- k .printDebug (os .Stdout , "Starting server at %s\n " , addr )
84
+ k .printDebug (os .Stdout , "Starting server at %s\n " , address )
85
85
k .printDebug (os .Stdout , "Quit the server with CONTROL-C\n " )
86
86
87
- k .mutex .Lock ()
88
- k .server = & http.Server {Addr : addr , Handler : k }
89
- k .mutex .Unlock ()
90
-
91
87
return k .server .ListenAndServe ()
92
88
}
93
89
90
+ // Run runs HTTPS server.
91
+ //
92
+ // Specifying an address is optional. Default address is :2376.
93
+ func (k * Kid ) RunTLS (certFile , keyFile string , addrs ... string ) error {
94
+ address := k .setUpServer (addrs )
95
+
96
+ k .printDebug (os .Stdout , "Kid version %s\n " , Version )
97
+ k .printDebug (os .Stdout , "Starting TLS server at %s\n " , address )
98
+ k .printDebug (os .Stdout , "Quit the server with CONTROL-C\n " )
99
+
100
+ return k .server .ListenAndServeTLS (certFile , keyFile )
101
+ }
102
+
94
103
// Shutdown gracefully shuts down the server without interrupting any active connections.
95
104
func (k * Kid ) Shutdown (ctx context.Context ) error {
96
105
k .mutex .Lock ()
@@ -267,6 +276,17 @@ func (k *Kid) ApplyOptions(opts ...Option) {
267
276
}
268
277
}
269
278
279
+ // setupServer sets up the server.
280
+ func (k * Kid ) setUpServer (addrs []string ) string {
281
+ address := resolveAddress (addrs , runtime .GOOS )
282
+
283
+ k .mutex .Lock ()
284
+ defer k .mutex .Unlock ()
285
+
286
+ k .server = & http.Server {Addr : address , Handler : k }
287
+ return address
288
+ }
289
+
270
290
// printDebug prints logs only in debug mode.
271
291
func (k * Kid ) printDebug (w io.Writer , format string , values ... any ) {
272
292
if k .Debug () {
0 commit comments