diff options
| author | Oskari Timperi <oskari.timperi@iki.fi> | 2017-02-18 15:39:42 +0200 |
|---|---|---|
| committer | Oskari Timperi <oskari.timperi@iki.fi> | 2017-02-18 15:39:42 +0200 |
| commit | a378aa66d14b1de86df65bc02b411e8858ec620a (patch) | |
| tree | e4026976111067b0d4a00ff12e87cc3346956b0f /src/client.c | |
| parent | 1cd48156bb1f8a9afd7a280b0820389592907f2a (diff) | |
| download | mqtt-a378aa66d14b1de86df65bc02b411e8858ec620a.tar.gz mqtt-a378aa66d14b1de86df65bc02b411e8858ec620a.zip | |
Add timeout param to MqttClientRunOnce()
Also change SocketSelect() to take timeout in milliseconds.
Diffstat (limited to 'src/client.c')
| -rw-r--r-- | src/client.c | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/src/client.c b/src/client.c index 3aba76c..c9fa876 100644 --- a/src/client.c +++ b/src/client.c @@ -282,7 +282,7 @@ int MqttClientDisconnect(MqttClient *client) return MqttClientQueueSimplePacket(client, MqttPacketTypeDisconnect); } -int MqttClientRunOnce(MqttClient *client) +int MqttClientRunOnce(MqttClient *client, int timeout) { int rv; int events; @@ -312,7 +312,12 @@ int MqttClientRunOnce(MqttClient *client) LOG_DEBUG("selecting"); - rv = SocketSelect(client->stream.sock, &events, client->keepAlive); + if (timeout <= 0) + { + timeout = client->keepAlive * 1000; + } + + rv = SocketSelect(client->stream.sock, &events, timeout); if (rv == -1) { @@ -390,7 +395,7 @@ int MqttClientRun(MqttClient *client) while (!client->stopped) { - if (MqttClientRunOnce(client) == -1) + if (MqttClientRunOnce(client, -1) == -1) return -1; } |
