fix(common.opcua): parse full range of status codes with uint32 (#12376)
This commit is contained in:
parent
c6663aca4f
commit
35b5476c83
|
|
@ -138,11 +138,11 @@ func (o *OpcUAClient) setupOptions() error {
|
||||||
func (o *OpcUAClient) setupWorkarounds() error {
|
func (o *OpcUAClient) setupWorkarounds() error {
|
||||||
o.codes = []ua.StatusCode{ua.StatusOK}
|
o.codes = []ua.StatusCode{ua.StatusOK}
|
||||||
for _, c := range o.Config.Workarounds.AdditionalValidStatusCodes {
|
for _, c := range o.Config.Workarounds.AdditionalValidStatusCodes {
|
||||||
val, err := strconv.ParseInt(c, 0, 32) // setting 32 bits to allow for safe conversion
|
val, err := strconv.ParseUint(c, 0, 32) // setting 32 bits to allow for safe conversion
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
o.codes = append(o.codes, ua.StatusCode(uint32(val)))
|
o.codes = append(o.codes, ua.StatusCode(val))
|
||||||
}
|
}
|
||||||
|
|
||||||
return nil
|
return nil
|
||||||
|
|
|
||||||
|
|
@ -10,7 +10,7 @@ func TestSetupWorkarounds(t *testing.T) {
|
||||||
o := OpcUAClient{
|
o := OpcUAClient{
|
||||||
Config: &OpcUAClientConfig{
|
Config: &OpcUAClientConfig{
|
||||||
Workarounds: OpcUAWorkarounds{
|
Workarounds: OpcUAWorkarounds{
|
||||||
AdditionalValidStatusCodes: []string{"0xC0", "0x00AA0000"},
|
AdditionalValidStatusCodes: []string{"0xC0", "0x00AA0000", "0x80000000"},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
@ -18,10 +18,11 @@ func TestSetupWorkarounds(t *testing.T) {
|
||||||
err := o.setupWorkarounds()
|
err := o.setupWorkarounds()
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
|
|
||||||
require.Len(t, o.codes, 3)
|
require.Len(t, o.codes, 4)
|
||||||
require.Equal(t, o.codes[0], ua.StatusCode(0))
|
require.Equal(t, o.codes[0], ua.StatusCode(0))
|
||||||
require.Equal(t, o.codes[1], ua.StatusCode(192))
|
require.Equal(t, o.codes[1], ua.StatusCode(192))
|
||||||
require.Equal(t, o.codes[2], ua.StatusCode(11141120))
|
require.Equal(t, o.codes[2], ua.StatusCode(11141120))
|
||||||
|
require.Equal(t, o.codes[3], ua.StatusCode(2147483648))
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestCheckStatusCode(t *testing.T) {
|
func TestCheckStatusCode(t *testing.T) {
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue