More robust token checking

This commit is contained in:
Neil Alexander 2020-12-10 17:19:53 +00:00
parent 05e956f9dd
commit ef5b4000dd
No known key found for this signature in database
GPG key ID: A02A2019A2BB0944

View file

@ -261,14 +261,13 @@ func NewTopologyTokenFromString(tok string) (token TopologyToken, err error) {
if i > len(positions) { if i > len(positions) {
break break
} }
if len(p) == 0 { var pos int
err = fmt.Errorf("empty position %d not allowed", i) pos, err = strconv.Atoi(p)
if err != nil {
return return
} }
if pos, perr := strconv.Atoi(p); perr == nil {
positions[i] = StreamPosition(pos) positions[i] = StreamPosition(pos)
} }
}
token = TopologyToken{ token = TopologyToken{
Depth: positions[0], Depth: positions[0],
PDUPosition: positions[1], PDUPosition: positions[1],
@ -309,14 +308,13 @@ func NewStreamTokenFromString(tok string) (token StreamingToken, err error) {
if i > len(positions) { if i > len(positions) {
break break
} }
if len(p) == 0 { var pos int
err = fmt.Errorf("empty position %d not allowed", i) pos, err = strconv.Atoi(p)
if err != nil {
return return
} }
if pos, perr := strconv.Atoi(p); perr == nil {
positions[i] = StreamPosition(pos) positions[i] = StreamPosition(pos)
} }
}
token = StreamingToken{ token = StreamingToken{
PDUPosition: positions[0], PDUPosition: positions[0],
TypingPosition: positions[1], TypingPosition: positions[1],