@@ -103,14 +103,17 @@ func newListener(addr, scheme string, opts ...ListenerOption) (net.Listener, err
103
103
return wrapTLS (scheme , lnOpts .tlsInfo , lnOpts .Listener )
104
104
}
105
105
106
- func newKeepAliveListener (cfg * net.ListenConfig , addr string ) (ln net.Listener , err error ) {
106
+ func newKeepAliveListener (cfg * net.ListenConfig , addr string ) (net.Listener , error ) {
107
+ var ln net.Listener
108
+ var err error
109
+
107
110
if cfg != nil {
108
111
ln , err = cfg .Listen (context .TODO (), "tcp" , addr )
109
112
} else {
110
113
ln , err = net .Listen ("tcp" , addr )
111
114
}
112
115
if err != nil {
113
- return
116
+ return nil , err
114
117
}
115
118
116
119
return NewKeepAliveListener (ln , "tcp" , nil )
@@ -204,16 +207,18 @@ func (info TLSInfo) Empty() bool {
204
207
return info .CertFile == "" && info .KeyFile == ""
205
208
}
206
209
207
- func SelfCert (lg * zap.Logger , dirpath string , hosts []string , selfSignedCertValidity uint , additionalUsages ... x509.ExtKeyUsage ) (info TLSInfo , err error ) {
210
+ func SelfCert (lg * zap.Logger , dirpath string , hosts []string , selfSignedCertValidity uint , additionalUsages ... x509.ExtKeyUsage ) (TLSInfo , error ) {
208
211
verify .Assert (lg != nil , "nil log isn't allowed" )
209
- info .Logger = lg
212
+
213
+ var err error
214
+ info := TLSInfo {Logger : lg }
210
215
if selfSignedCertValidity == 0 {
211
216
err = errors .New ("selfSignedCertValidity is invalid,it should be greater than 0" )
212
217
info .Logger .Warn (
213
218
"cannot generate cert" ,
214
219
zap .Error (err ),
215
220
)
216
- return
221
+ return info , err
217
222
}
218
223
err = fileutil .TouchDirAll (lg , dirpath )
219
224
if err != nil {
@@ -223,16 +228,16 @@ func SelfCert(lg *zap.Logger, dirpath string, hosts []string, selfSignedCertVali
223
228
zap .Error (err ),
224
229
)
225
230
}
226
- return
231
+ return info , err
227
232
}
228
233
229
234
certPath , err := filepath .Abs (filepath .Join (dirpath , "cert.pem" ))
230
235
if err != nil {
231
- return
236
+ return info , err
232
237
}
233
238
keyPath , err := filepath .Abs (filepath .Join (dirpath , "key.pem" ))
234
239
if err != nil {
235
- return
240
+ return info , err
236
241
}
237
242
_ , errcert := os .Stat (certPath )
238
243
_ , errkey := os .Stat (keyPath )
@@ -242,7 +247,7 @@ func SelfCert(lg *zap.Logger, dirpath string, hosts []string, selfSignedCertVali
242
247
info .ClientCertFile = certPath
243
248
info .ClientKeyFile = keyPath
244
249
info .selfCert = true
245
- return
250
+ return info , err
246
251
}
247
252
248
253
serialNumberLimit := new (big.Int ).Lsh (big .NewInt (1 ), 128 )
@@ -254,7 +259,7 @@ func SelfCert(lg *zap.Logger, dirpath string, hosts []string, selfSignedCertVali
254
259
zap .Error (err ),
255
260
)
256
261
}
257
- return
262
+ return info , err
258
263
}
259
264
260
265
tmpl := x509.Certificate {
@@ -292,7 +297,7 @@ func SelfCert(lg *zap.Logger, dirpath string, hosts []string, selfSignedCertVali
292
297
zap .Error (err ),
293
298
)
294
299
}
295
- return
300
+ return info , err
296
301
}
297
302
298
303
derBytes , err := x509 .CreateCertificate (rand .Reader , & tmpl , & tmpl , & priv .PublicKey , priv )
@@ -303,7 +308,7 @@ func SelfCert(lg *zap.Logger, dirpath string, hosts []string, selfSignedCertVali
303
308
zap .Error (err ),
304
309
)
305
310
}
306
- return
311
+ return info , err
307
312
}
308
313
309
314
certOut , err := os .Create (certPath )
@@ -313,7 +318,7 @@ func SelfCert(lg *zap.Logger, dirpath string, hosts []string, selfSignedCertVali
313
318
zap .String ("path" , certPath ),
314
319
zap .Error (err ),
315
320
)
316
- return
321
+ return info , err
317
322
}
318
323
pem .Encode (certOut , & pem.Block {Type : "CERTIFICATE" , Bytes : derBytes })
319
324
certOut .Close ()
@@ -323,7 +328,7 @@ func SelfCert(lg *zap.Logger, dirpath string, hosts []string, selfSignedCertVali
323
328
324
329
b , err := x509 .MarshalECPrivateKey (priv )
325
330
if err != nil {
326
- return
331
+ return info , err
327
332
}
328
333
keyOut , err := os .OpenFile (keyPath , os .O_WRONLY | os .O_CREATE | os .O_TRUNC , 0600 )
329
334
if err != nil {
@@ -334,7 +339,7 @@ func SelfCert(lg *zap.Logger, dirpath string, hosts []string, selfSignedCertVali
334
339
zap .Error (err ),
335
340
)
336
341
}
337
- return
342
+ return info , err
338
343
}
339
344
pem .Encode (keyOut , & pem.Block {Type : "EC PRIVATE KEY" , Bytes : b })
340
345
keyOut .Close ()
0 commit comments