@@ -104,16 +104,19 @@ type config struct {
104104 httpConfig HTTPConfig
105105 mqttConfig MQTTConfig
106106 wsConfig WSConfig
107-
108- coapHost string
109- coapPort string
110- coapDTLS bool
111- coapTargetHost string
112- coapTargetPort string
107+ coapConfig CoapConfig
113108
114109 logLevel string
115110}
116111
112+ type CoapConfig struct {
113+ host string
114+ port string
115+ DTLS bool
116+ targetHost string
117+ targetPort string
118+ }
119+
117120type WSConfig struct {
118121 host string
119122 port string
@@ -185,7 +188,7 @@ func main() {
185188 }
186189
187190 switch {
188- case cfg .coapDTLS :
191+ case cfg .coapConfig . DTLS :
189192 tlsCfg , err := mptls .LoadTLSCfg (cfg .caCerts , cfg .serverCert , cfg .serverKey )
190193 if err != nil {
191194 errs <- err
@@ -194,15 +197,15 @@ func main() {
194197 Certificates : tlsCfg .Certificates ,
195198 ClientCAs : tlsCfg .ClientCAs ,
196199 }
197- go proxyCoapDTLS (cfg , dtlsCfg , logger , h , errs )
200+ go proxyCoapDTLS (cfg . coapConfig , dtlsCfg , logger , h , errs )
198201 case cfg .clientTLS :
199202 tlsCfg , err := mptls .LoadTLSCfg (cfg .caCerts , cfg .serverCert , cfg .serverKey )
200203 if err != nil {
201204 errs <- err
202205 }
203- go proxyCoapTLS (cfg , tlsCfg , logger , h , errs )
206+ go proxyCoapTLS (cfg . coapConfig , tlsCfg , logger , h , errs )
204207 default :
205- go proxyCoap (cfg , logger , h , errs )
208+ go proxyCoap (cfg . coapConfig , logger , h , errs )
206209 }
207210
208211 go func () {
@@ -271,11 +274,13 @@ func loadConfig() config {
271274 },
272275
273276 // CoAP
274- coapHost : env (envCoAPHost , defCoAPHost ),
275- coapPort : env (envCoAPPort , defCoAPPort ),
276- coapDTLS : dtls ,
277- coapTargetHost : env (envCoAPTargetHost , defCoAPTargetHost ),
278- coapTargetPort : env (envCoAPTargetPort , defCoAPTargetPort ),
277+ coapConfig : CoapConfig {
278+ host : env (envCoAPHost , defCoAPHost ),
279+ port : env (envCoAPPort , defCoAPPort ),
280+ DTLS : dtls ,
281+ targetHost : env (envCoAPTargetHost , defCoAPTargetHost ),
282+ targetPort : env (envCoAPTargetPort , defCoAPTargetPort ),
283+ },
279284
280285 // Log
281286 logLevel : env (envLogLevel , defLogLevel ),
@@ -336,9 +341,9 @@ func proxyHTTPS(ctx context.Context, cfg HTTPConfig, logger mflog.Logger, handle
336341 http .HandleFunc ("/" , hp .Handler )
337342 errs <- hp .ListenTLS (cfg .serverCert , cfg .serverKey )
338343}
339- func proxyCoapTLS (cfg config , tlsCfg * tls.Config , logger mflog.Logger , errs chan error ) {
340- address := fmt .Sprintf ("%s:%s" , cfg .coapHost , cfg .coapPort )
341- target := fmt .Sprintf ("%s:%s" , cfg .coapTargetHost , cfg .coapTargetPort )
344+ func proxyCoapTLS (cfg CoapConfig , tlsCfg * tls.Config , logger mflog.Logger , handler session. Handler , errs chan error ) {
345+ address := fmt .Sprintf ("%s:%s" , cfg .host , cfg .port )
346+ target := fmt .Sprintf ("%s:%s" , cfg .targetHost , cfg .targetPort )
342347 cp , err := coap .NewProxy (address , target , logger , handler )
343348 if err != nil {
344349 errs <- err
@@ -347,9 +352,9 @@ func proxyCoapTLS(cfg config, tlsCfg *tls.Config, logger mflog.Logger, errs chan
347352 errs <- cp .ListenTLS (tlsCfg )
348353}
349354
350- func proxyCoapDTLS (cfg config , dtlsCfg * dtls.Config , logger mflog.Logger , handler session.Handler , errs chan error ) {
351- address := fmt .Sprintf ("%s:%s" , cfg .coapHost , cfg .coapPort )
352- target := fmt .Sprintf ("%s:%s" , cfg .coapTargetHost , cfg .coapTargetPort )
355+ func proxyCoapDTLS (cfg CoapConfig , dtlsCfg * dtls.Config , logger mflog.Logger , handler session.Handler , errs chan error ) {
356+ address := fmt .Sprintf ("%s:%s" , cfg .host , cfg .port )
357+ target := fmt .Sprintf ("%s:%s" , cfg .targetHost , cfg .targetPort )
353358 cp , err := coap .NewProxy (address , target , logger , handler )
354359 if err != nil {
355360 errs <- err
@@ -358,9 +363,9 @@ func proxyCoapDTLS(cfg config, dtlsCfg *dtls.Config, logger mflog.Logger, handle
358363 errs <- cp .ListenDLS (dtlsCfg )
359364}
360365
361- func proxyCoap (cfg config , logger mflog.Logger , handler session.Handler , errs chan error ) {
362- address := fmt .Sprintf ("%s:%s" , cfg .coapHost , cfg .coapPort )
363- target := fmt .Sprintf ("%s:%s" , cfg .coapTargetHost , cfg .coapTargetPort )
366+ func proxyCoap (cfg CoapConfig , logger mflog.Logger , handler session.Handler , errs chan error ) {
367+ address := fmt .Sprintf ("%s:%s" , cfg .host , cfg .port )
368+ target := fmt .Sprintf ("%s:%s" , cfg .targetHost , cfg .targetPort )
364369 cp , err := coap .NewProxy (address , target , logger , handler )
365370 if err != nil {
366371 errs <- err
0 commit comments