summaryrefslogtreecommitdiff
path: root/client/socket.c
diff options
context:
space:
mode:
Diffstat (limited to 'client/socket.c')
-rw-r--r--client/socket.c14
1 files changed, 6 insertions, 8 deletions
diff --git a/client/socket.c b/client/socket.c
index 44af8db..9e399cb 100644
--- a/client/socket.c
+++ b/client/socket.c
@@ -1,5 +1,5 @@
/*
- * $Id: socket.c,v 1.1 2004/12/30 22:44:04 lordjaxom Exp $
+ * $Id: socket.c,v 1.2 2005/02/08 13:59:16 lordjaxom Exp $
*/
#include <tools/select.h>
@@ -39,15 +39,12 @@ cTBSocket *cClientSocket::DataSocket(eSocketId Id) const {
bool cClientSocket::Command(const cTBString &Command, uint Expected,
uint TimeoutMs) {
- cTBString pkt;
- time_t st;
-
errno = 0;
- pkt = Command + "\015\012";
+ cTBString pkt = Command + "\015\012";
Dprintf("OUT: |%s|\n", (const char*)Command);
- st = time_ms();
+ cTimeMs starttime;
if (!TimedWrite((const char*)pkt, pkt.Length(), TimeoutMs)) {
esyslog("Streamdev: Lost connection to %s:%d: %s",
(const char*)RemoteIp(), RemotePort(), strerror(errno));
@@ -55,8 +52,9 @@ bool cClientSocket::Command(const cTBString &Command, uint Expected,
return false;
}
- if (Expected != 0) {
- TimeoutMs -= time_ms() - st;
+ uint64 elapsed = starttime.Elapsed();
+ if (Expected != 0) { // XXX+ What if elapsed > TimeoutMs?
+ TimeoutMs -= elapsed;
return Expect(Expected, NULL, TimeoutMs);
}