Skip to content

GSMClient::read() returns 0 rather than -1 if there's no data available #3690

@amcewen

Description

@amcewen

Part of the problem is the line https://github.com/arduino/Arduino/blob/master/libraries/GSM/src/GSM3ShieldV1ClientProvider.cpp#L248, which returns 0 when there's no data available.

However, there's also (from code inspection) a problem in the multi-byte version of GSMClient::read because that also assumes that read() returning 0 indicates no data left.

And the problem propagates all the way down to GSM3CircularBuffer::read which also returns 0 if there's no data available.

The problem there is that GSM3CircularBuffer::read returns a char, so there's nowhere that an error can be signalled, so presumably it would need to be reworked to return an int instead.

Metadata

Metadata

Assignees

Labels

Library: OtherArduino libraries that don't have their own label

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions