fix(plc4go): fixed some quality issues
diff --git a/plc4go/examples/ads/discovery/Discovery.go b/plc4go/examples/ads/discovery/Discovery.go
index 354bfab..e19cc19 100644
--- a/plc4go/examples/ads/discovery/Discovery.go
+++ b/plc4go/examples/ads/discovery/Discovery.go
@@ -29,7 +29,7 @@
func main() {
discoverer := ads.NewDiscoverer()
- discoverer.Discover(context.Background(), func(event apiModel.PlcDiscoveryItem) {
+ _ = discoverer.Discover(context.Background(), func(event apiModel.PlcDiscoveryItem) {
print(event)
})
time.Sleep(time.Second * 5)
diff --git a/plc4go/examples/bacnet/discovery/hello_world_plc4go_bacnet_discovery.go b/plc4go/examples/bacnet/discovery/hello_world_plc4go_bacnet_discovery.go
index b115eaa..0201c29 100644
--- a/plc4go/examples/bacnet/discovery/hello_world_plc4go_bacnet_discovery.go
+++ b/plc4go/examples/bacnet/discovery/hello_world_plc4go_bacnet_discovery.go
@@ -78,6 +78,6 @@
}
log.Info().Str("connection string", connStr).Msg("Connected")
connection := connectionResult.GetConnection()
- defer connection.BlockingClose()
+ connection.BlockingClose()
}
}
diff --git a/plc4go/examples/knx/discovery/hello_world_plc4go_knx_discovery.go b/plc4go/examples/knx/discovery/hello_world_plc4go_knx_discovery.go
index a97862b..6ccb673 100644
--- a/plc4go/examples/knx/discovery/hello_world_plc4go_knx_discovery.go
+++ b/plc4go/examples/knx/discovery/hello_world_plc4go_knx_discovery.go
@@ -68,7 +68,7 @@
}
log.Info().Str("connection string", connStr).Msg("Connected")
connection := connectionResult.GetConnection()
- defer connection.BlockingClose()
+ connection.BlockingClose()
// Try to find all KNX devices on the current network
browseRequest, err := connection.BrowseRequestBuilder().
diff --git a/plc4go/internal/ads/Discoverer.go b/plc4go/internal/ads/Discoverer.go
index 34fdc41..89fb53e 100644
--- a/plc4go/internal/ads/Discoverer.go
+++ b/plc4go/internal/ads/Discoverer.go
@@ -237,7 +237,9 @@
defer func() {
for _, discoveryItem := range discoveryItems {
if discoveryItem.socket != nil {
- discoveryItem.socket.Close()
+ if err := discoveryItem.socket.Close(); err != nil {
+ d.log.Debug().Err(err).Msg("errored")
+ }
}
}
}()
diff --git a/plc4go/internal/bacnetip/BACnetVirtualLinkLayerService.go b/plc4go/internal/bacnetip/BACnetVirtualLinkLayerService.go
index edacc4a..b5c2f3d 100644
--- a/plc4go/internal/bacnetip/BACnetVirtualLinkLayerService.go
+++ b/plc4go/internal/bacnetip/BACnetVirtualLinkLayerService.go
@@ -165,9 +165,13 @@
log.Debug().Msg("Close")
// pass along the close to the director(s)
- m.directPort.Close()
+ if err := m.directPort.Close(); err != nil {
+ log.Debug().Err(err).Msg("errored")
+ }
if m.broadcastPort != nil {
- m.broadcastPort.Close()
+ if err := m.broadcastPort.Close(); err != nil {
+ log.Debug().Err(err).Msg("errored")
+ }
}
return nil
}
diff --git a/plc4go/internal/bacnetip/Connection.go b/plc4go/internal/bacnetip/Connection.go
index 5c19e55..6bb7a86 100644
--- a/plc4go/internal/bacnetip/Connection.go
+++ b/plc4go/internal/bacnetip/Connection.go
@@ -101,15 +101,7 @@
}()
for c.IsConnected() {
c.log.Trace().Msg("Polling data")
- incomingMessageChannel := c.messageCodec.GetDefaultIncomingMessageChannel()
- timeout := time.NewTimer(20 * time.Millisecond)
- defer utils.CleanupTimer(timeout)
- select {
- case message := <-incomingMessageChannel:
- // TODO: implement mapping to subscribers
- log.Info().Msgf("Received \n%v", message)
- case <-timeout.C:
- }
+ c.passToDefaultIncomingMessageChannel()
}
c.log.Info().Msg("Ending incoming message transfer")
}()
@@ -118,6 +110,19 @@
return ch
}
+func (c *Connection) passToDefaultIncomingMessageChannel() {
+ incomingMessageChannel := c.messageCodec.GetDefaultIncomingMessageChannel()
+ timeout := time.NewTimer(20 * time.Millisecond)
+ defer utils.CleanupTimer(timeout)
+ select {
+ case message := <-incomingMessageChannel:
+ // TODO: implement mapping to subscribers
+ log.Info().Msgf("Received \n%v", message)
+ case <-timeout.C:
+ log.Info().Msg("Message was not handled")
+ }
+}
+
func (c *Connection) GetConnection() plc4go.PlcConnection {
return c
}
diff --git a/plc4go/internal/bacnetip/IOCBModule.go b/plc4go/internal/bacnetip/IOCBModule.go
index ae6a65d..904b1a5 100644
--- a/plc4go/internal/bacnetip/IOCBModule.go
+++ b/plc4go/internal/bacnetip/IOCBModule.go
@@ -299,17 +299,17 @@
// A PriorityQueue implements heap.Interface and holds Items.
type PriorityQueue []*PriorityItem
-func (pq PriorityQueue) Len() int { return len(pq) }
+func (pq *PriorityQueue) Len() int { return len(*pq) }
-func (pq PriorityQueue) Less(i, j int) bool {
+func (pq *PriorityQueue) Less(i, j int) bool {
// We want Pop to give us the highest, not lowest, priority so we use greater than here.
- return pq[i].priority > pq[j].priority
+ return (*pq)[i].priority > (*pq)[j].priority
}
-func (pq PriorityQueue) Swap(i, j int) {
- pq[i], pq[j] = pq[j], pq[i]
- pq[i].index = i
- pq[j].index = j
+func (pq *PriorityQueue) Swap(i, j int) {
+ (*pq)[i], (*pq)[j] = (*pq)[j], (*pq)[i]
+ (*pq)[i].index = i
+ (*pq)[j].index = j
}
func (pq *PriorityQueue) Push(x any) {
diff --git a/plc4go/internal/bacnetip/MessageCodec.go b/plc4go/internal/bacnetip/MessageCodec.go
index bbe1240..128a17e 100644
--- a/plc4go/internal/bacnetip/MessageCodec.go
+++ b/plc4go/internal/bacnetip/MessageCodec.go
@@ -112,7 +112,11 @@
return errors.Wrap(err, "error creating IOCB")
}
go func() {
- go m.bipSimpleApplication.RequestIO(iocb)
+ go func() {
+ if err := m.bipSimpleApplication.RequestIO(iocb); err != nil {
+ log.Debug().Err(err).Msg("errored")
+ }
+ }()
iocb.Wait()
if iocb.ioError != nil {
// TODO: handle error
@@ -142,7 +146,11 @@
return errors.Wrap(err, "error creating IOCB")
}
go func() {
- go m.bipSimpleApplication.RequestIO(iocb)
+ go func() {
+ if err := m.bipSimpleApplication.RequestIO(iocb); err != nil {
+
+ }
+ }()
iocb.Wait()
if err := iocb.ioError; err != nil {
if err := handleError(err); err != nil {
diff --git a/plc4go/internal/bacnetip/PDU.go b/plc4go/internal/bacnetip/PDU.go
index 8308e45..c0e2c04 100644
--- a/plc4go/internal/bacnetip/PDU.go
+++ b/plc4go/internal/bacnetip/PDU.go
@@ -209,7 +209,7 @@
if m {
log.Debug().Msg("combined pattern")
groups := combined_pattern.FindStringSubmatch(addr)
- net := groups[0]
+ _net := groups[0]
global_broadcast := groups[1]
local_broadcast := groups[2]
local_addr := groups[3]
@@ -223,7 +223,7 @@
a := func(...any) {
}
- a(net, global_broadcast, local_broadcast, local_addr, local_ip_addr, local_ip_net, local_ip_port, route_addr, route_ip_addr, route_ip_port)
+ a(_net, global_broadcast, local_broadcast, local_addr, local_ip_addr, local_ip_net, local_ip_port, route_addr, route_ip_addr, route_ip_port)
}
panic("parsing not yet ported")
case AddressTuple[string, uint16]:
diff --git a/plc4go/internal/bacnetip/UDPCommunicationsModule.go b/plc4go/internal/bacnetip/UDPCommunicationsModule.go
index 01a3de1..07e8fc5 100644
--- a/plc4go/internal/bacnetip/UDPCommunicationsModule.go
+++ b/plc4go/internal/bacnetip/UDPCommunicationsModule.go
@@ -277,7 +277,11 @@
}
pdu := NewPDU(bvlc, WithPDUSource(saddr), WithPDUDestination(daddr))
// send the PDU up to the client
- go d._response(pdu)
+ go func() {
+ if err := d._response(pdu); err != nil {
+ log.Debug().Err(err).Msg("errored")
+ }
+ }()
}
func (d *UDPDirector) handleError(err error) {
diff --git a/plc4go/internal/knxnetip/Browser.go b/plc4go/internal/knxnetip/Browser.go
index 585e880..8898ffc 100644
--- a/plc4go/internal/knxnetip/Browser.go
+++ b/plc4go/internal/knxnetip/Browser.go
@@ -554,10 +554,10 @@
}
func (m Browser) explodeSegment(segment string, min uint8, max uint8) ([]uint8, error) {
- var options []uint8
+ var segmentOptions []uint8
if strings.Contains(segment, "*") {
for i := min; i <= max; i++ {
- options = append(options, i)
+ segmentOptions = append(segmentOptions, i)
}
} else if strings.HasPrefix(segment, "[") && strings.HasSuffix(segment, "]") {
segment = strings.TrimPrefix(segment, "[")
@@ -574,14 +574,14 @@
return nil, err
}
for i := localMin; i <= localMax; i++ {
- options = append(options, uint8(i))
+ segmentOptions = append(segmentOptions, uint8(i))
}
} else {
option, err := strconv.ParseUint(segment, 10, 8)
if err != nil {
return nil, err
}
- options = append(options, uint8(option))
+ segmentOptions = append(segmentOptions, uint8(option))
}
}
} else {
@@ -590,10 +590,10 @@
return nil, err
}
if uint8(value) >= min && uint8(value) <= max {
- options = append(options, uint8(value))
+ segmentOptions = append(segmentOptions, uint8(value))
}
}
- return options, nil
+ return segmentOptions, nil
}
func (m Browser) parseAssociationTable(deviceDescriptor uint16, knxGroupAddresses []driverModel.KnxGroupAddress, value values.PlcValue) (driverModel.KnxGroupAddress, uint16) {
diff --git a/plc4go/pkg/api/cache/plcConnectionLease.go b/plc4go/pkg/api/cache/plcConnectionLease.go
index 41f6b0a..34c2b68 100644
--- a/plc4go/pkg/api/cache/plcConnectionLease.go
+++ b/plc4go/pkg/api/cache/plcConnectionLease.go
@@ -121,13 +121,13 @@
// Extract the trace entries from the connection.
var traces []tracer.TraceEntry
if t.IsTraceEnabled() {
- tracer := t.GetTracer()
+ _tracer := t.GetTracer()
// Save all traces.
- traces = tracer.GetTraces()
+ traces = _tracer.GetTraces()
// Clear the log.
- tracer.ResetTraces()
+ _tracer.ResetTraces()
// Reset the connection id back to the one without the lease-id.
- tracer.SetConnectionId(t.connection.GetConnectionId())
+ _tracer.SetConnectionId(t.connection.GetConnectionId())
}
// Return the connection to the connection container and don't actually close it.
diff --git a/plc4go/spi/default/DefaultCodec.go b/plc4go/spi/default/DefaultCodec.go
index 2eb5869..ddf2819 100644
--- a/plc4go/spi/default/DefaultCodec.go
+++ b/plc4go/spi/default/DefaultCodec.go
@@ -328,9 +328,8 @@
if m.customMessageHandling(codec, message) {
workerLog.Trace().Msg("Custom handling handled the message")
continue mainLoop
- } else {
- workerLog.Trace().Msg("Custom handling didn't handle the message")
}
+ workerLog.Trace().Msg("Custom handling didn't handle the message")
}
workerLog.Trace().Msg("Handle message")
@@ -340,14 +339,18 @@
// If the message has not been handled and a default handler is provided, call this ...
if !messageHandled {
workerLog.Trace().Msg("Message was not handled")
- timeout := time.NewTimer(time.Millisecond * 40)
- defer utils.CleanupTimer(timeout)
- select {
- case m.defaultIncomingMessageChannel <- message:
- case <-timeout.C:
- timeout.Stop()
- workerLog.Warn().Msgf("Message discarded\n%s", message)
- }
+ m.passToDefaultIncomingMessageChannel(workerLog, message)
}
}
}
+
+func (m *defaultCodec) passToDefaultIncomingMessageChannel(workerLog zerolog.Logger, message spi.Message) {
+ timeout := time.NewTimer(time.Millisecond * 40)
+ defer utils.CleanupTimer(timeout)
+ select {
+ case m.defaultIncomingMessageChannel <- message:
+ case <-timeout.C:
+ timeout.Stop()
+ workerLog.Warn().Msgf("Message discarded\n%s", message)
+ }
+}
diff --git a/plc4go/spi/model/DefaultPlcBrowseRequest_test.go b/plc4go/spi/model/DefaultPlcBrowseRequest_test.go
index d7a9fe2..4b0f30e 100644
--- a/plc4go/spi/model/DefaultPlcBrowseRequest_test.go
+++ b/plc4go/spi/model/DefaultPlcBrowseRequest_test.go
@@ -265,7 +265,7 @@
queryNames: tt.fields.queryNames,
queries: tt.fields.queries,
}
- assert.Equalf(t, tt.want, d.ExecuteWithInterceptor(tt.args.interceptor), "ExecuteWithInterceptor(%v)", tt.args.interceptor)
+ assert.Equalf(t, tt.want, d.ExecuteWithInterceptor(tt.args.interceptor), "ExecuteWithInterceptor(func(%t))", tt.args.interceptor != nil)
})
}
}
@@ -306,7 +306,7 @@
queryNames: tt.fields.queryNames,
queries: tt.fields.queries,
}
- assert.Equalf(t, tt.want, d.ExecuteWithInterceptorWithContext(tt.args.ctx, tt.args.interceptor), "ExecuteWithInterceptorWithContext(%v, %v)", tt.args.ctx, tt.args.interceptor)
+ assert.Equalf(t, tt.want, d.ExecuteWithInterceptorWithContext(tt.args.ctx, tt.args.interceptor), "ExecuteWithInterceptorWithContext(%v, func(%t))", tt.args.ctx, tt.args.interceptor != nil)
})
}
}
diff --git a/plc4go/spi/model/DefaultPlcSubscriptionRequest_test.go b/plc4go/spi/model/DefaultPlcSubscriptionRequest_test.go
index 66a3556..2028342 100644
--- a/plc4go/spi/model/DefaultPlcSubscriptionRequest_test.go
+++ b/plc4go/spi/model/DefaultPlcSubscriptionRequest_test.go
@@ -436,7 +436,7 @@
intervals: tt.fields.intervals,
preRegisteredConsumers: tt.fields.preRegisteredConsumers,
}
- assert.Equalf(t, tt.want, d.AddPreRegisteredConsumer(tt.args.name, tt.args.consumer), "AddPreRegisteredConsumer(%v, %v)", tt.args.name, tt.args.consumer)
+ assert.Equalf(t, tt.want, d.AddPreRegisteredConsumer(tt.args.name, tt.args.consumer), "AddPreRegisteredConsumer(%v, func(%t))", tt.args.name, tt.args.consumer != nil)
})
}
}
diff --git a/plc4go/spi/model/DefaultPlcUnsubscriptionRequest.go b/plc4go/spi/model/DefaultPlcUnsubscriptionRequest.go
index 56407bc..97c564c 100644
--- a/plc4go/spi/model/DefaultPlcUnsubscriptionRequest.go
+++ b/plc4go/spi/model/DefaultPlcUnsubscriptionRequest.go
@@ -35,16 +35,16 @@
return &DefaultPlcUnsubscriptionRequest{}
}
-func (d DefaultPlcUnsubscriptionRequest) Execute() <-chan apiModel.PlcUnsubscriptionRequestResult {
+func (d *DefaultPlcUnsubscriptionRequest) Execute() <-chan apiModel.PlcUnsubscriptionRequestResult {
//TODO implement me
panic("implement me")
}
-func (d DefaultPlcUnsubscriptionRequest) ExecuteWithContext(ctx context.Context) <-chan apiModel.PlcUnsubscriptionRequestResult {
+func (d *DefaultPlcUnsubscriptionRequest) ExecuteWithContext(ctx context.Context) <-chan apiModel.PlcUnsubscriptionRequestResult {
//TODO implement me
panic("implement me")
}
-func (d DefaultPlcUnsubscriptionRequest) IsAPlcMessage() bool {
+func (d *DefaultPlcUnsubscriptionRequest) IsAPlcMessage() bool {
return true
}
diff --git a/plc4go/spi/transports/utils/TransportLogger_test.go b/plc4go/spi/transports/utils/TransportLogger_test.go
index 35a023a..08cd5a5 100644
--- a/plc4go/spi/transports/utils/TransportLogger_test.go
+++ b/plc4go/spi/transports/utils/TransportLogger_test.go
@@ -159,7 +159,7 @@
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
if got := WithLogger(tt.args.log); !assert.Equal(t, tt.want, got) {
- t.Errorf("WithLogger() = %v, want %v", got, tt.want)
+ t.Errorf("WithLogger() = func(%t), want (%t)", got != nil, tt.want != nil)
}
})
}
diff --git a/plc4go/tools/plc4xgenerator/gen.go b/plc4go/tools/plc4xgenerator/gen.go
index b7eedec..0591b0d 100644
--- a/plc4go/tools/plc4xgenerator/gen.go
+++ b/plc4go/tools/plc4xgenerator/gen.go
@@ -138,7 +138,7 @@
}
func (g *Generator) Printf(format string, args ...any) {
- fmt.Fprintf(&g.buf, format, args...)
+ _, _ = fmt.Fprintf(&g.buf, format, args...)
}
// File holds a single parsed file and associated data.