From 3b09a2ad1dfc1e9859ab88a06cfd8beb340bb0dd Mon Sep 17 00:00:00 2001 From: "David A. Mellis" Date: Mon, 15 Jun 2009 20:11:13 +0000 Subject: [PATCH] Fixing Client::connected() and Client::status() to return reasonable values when the Client isn't associated with a valid socket: issue #34. --- hardware/libraries/Ethernet/Client.cpp | 16 ++++++++++++---- todo.txt | 6 ++++-- 2 files changed, 16 insertions(+), 6 deletions(-) diff --git a/hardware/libraries/Ethernet/Client.cpp b/hardware/libraries/Ethernet/Client.cpp index ebbb08de4..0511c7ba8 100644 --- a/hardware/libraries/Ethernet/Client.cpp +++ b/hardware/libraries/Ethernet/Client.cpp @@ -113,13 +113,21 @@ void Client::stop() { } uint8_t Client::connected() { - uint8_t s = status(); - return !(s == SOCK_LISTEN || s == SOCK_CLOSED || s == SOCK_FIN_WAIT || - (s == SOCK_CLOSE_WAIT && !available())); + if (_sock == 255) { + return 0; + } else { + uint8_t s = status(); + return !(s == SOCK_LISTEN || s == SOCK_CLOSED || s == SOCK_FIN_WAIT || + (s == SOCK_CLOSE_WAIT && !available())); + } } uint8_t Client::status() { - return getSn_SR(_sock); + if (_sock == 255) { + return SOCK_CLOSED; + } else { + return getSn_SR(_sock); + } } // the next three functions are a hack so we can compare the client returned diff --git a/todo.txt b/todo.txt index 8cbcae271..096c51bdc 100644 --- a/todo.txt +++ b/todo.txt @@ -3,12 +3,14 @@ PROCESSING 5503 SYNC -Serial monitor errors should appear in serial monitor. - Don't require save before upload. Add library keyword highlighting. +Allow closing of the serial monitor with keyboard short cuts. + +Support libraries in the SKETCH/code folder? + Get rid of unused preferences in the preferences dialog. Don't allow in-place modification of user-installed library examples.