Skip to content

Commit f194d47

Browse files
committed
Refactor CoapConfig struct in main.go
The CoapConfig struct in main.go has been refactored to improve code organization and readability. The struct now includes separate fields for host, port, DTLS, targetHost, and targetPort. This change allows for better configuration of CoAP settings. The code has been updated to reflect these changes. Signed-off-by: SammyOina <sammyoina@gmail.com>
1 parent de524ee commit f194d47

File tree

2 files changed

+30
-25
lines changed

2 files changed

+30
-25
lines changed

cmd/main.go

Lines changed: 29 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -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+
117120
type 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

go.mod

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,13 +7,13 @@ require (
77
github.com/google/uuid v1.3.0
88
github.com/gorilla/websocket v1.5.0
99
github.com/mainflux/mainflux v0.12.0
10+
github.com/pion/dtls/v2 v2.2.8-0.20230905141523-2b584af66577
1011
)
1112

1213
require (
1314
github.com/dsnet/golib/memfile v1.0.0 // indirect
1415
github.com/hashicorp/errwrap v1.1.0 // indirect
1516
github.com/hashicorp/go-multierror v1.1.1 // indirect
16-
github.com/pion/dtls/v2 v2.2.8-0.20230905141523-2b584af66577 // indirect
1717
github.com/pion/logging v0.2.2 // indirect
1818
github.com/pion/transport/v3 v3.0.1 // indirect
1919
go.uber.org/atomic v1.11.0 // indirect

0 commit comments

Comments
 (0)