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 {
|
||||
o.codes = []ua.StatusCode{ua.StatusOK}
|
||||
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 {
|
||||
return err
|
||||
}
|
||||
o.codes = append(o.codes, ua.StatusCode(uint32(val)))
|
||||
o.codes = append(o.codes, ua.StatusCode(val))
|
||||
}
|
||||
|
||||
return nil
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@ func TestSetupWorkarounds(t *testing.T) {
|
|||
o := OpcUAClient{
|
||||
Config: &OpcUAClientConfig{
|
||||
Workarounds: OpcUAWorkarounds{
|
||||
AdditionalValidStatusCodes: []string{"0xC0", "0x00AA0000"},
|
||||
AdditionalValidStatusCodes: []string{"0xC0", "0x00AA0000", "0x80000000"},
|
||||
},
|
||||
},
|
||||
}
|
||||
|
|
@ -18,10 +18,11 @@ func TestSetupWorkarounds(t *testing.T) {
|
|||
err := o.setupWorkarounds()
|
||||
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[1], ua.StatusCode(192))
|
||||
require.Equal(t, o.codes[2], ua.StatusCode(11141120))
|
||||
require.Equal(t, o.codes[3], ua.StatusCode(2147483648))
|
||||
}
|
||||
|
||||
func TestCheckStatusCode(t *testing.T) {
|
||||
|
|
|
|||
Loading…
Reference in New Issue