PIEthernet TCP improvements

git-svn-id: svn://db.shs.com.ru/pip@131 12ceb7fc-bf1f-11e4-8940-5bc7170c53b5
This commit is contained in:
2015-05-18 07:12:04 +00:00
parent a4fadea95f
commit bfcdb80186
7 changed files with 23 additions and 11 deletions

View File

@@ -268,7 +268,7 @@ bool PIEthernet::closeDevice() {
while (!clients_.isEmpty())
delete clients_.back();
if (connected_) disconnected(false);
connected_ = false;
connected_ = connecting_ = false;
return true;
}
@@ -520,11 +520,11 @@ int PIEthernet::read(void * read_to, int max_size) {
//qDebug() << "readed" << rs;
if (rs <= 0) {
lerr = ethErrorCore();
//piCoutObj << "readed error" << lerr << errorString().data();
//piCoutObj << "readed error" << lerr << errorString().data() << parameters()[DisonnectOnTimeout];
#ifdef WINDOWS
if (lerr == WSAEWOULDBLOCK || /*lerr == NO_ERROR ||*/ lerr == WSAETIMEDOUT) {
if ((lerr == WSAEWOULDBLOCK || lerr == WSAETIMEDOUT) && !parameters()[DisonnectOnTimeout]) {
#else
if (lerr == EAGAIN || lerr == EWOULDBLOCK) {
if ((lerr == EWOULDBLOCK || lerr == EAGAIN) && !parameters()[DisonnectOnTimeout]) {
#endif
//piCoutObj << errorString();
piMSleep(10);
@@ -532,10 +532,10 @@ int PIEthernet::read(void * read_to, int max_size) {
}
if (connected_) {
init();
connected_ = false;
disconnected(rs < 0);
}
connected_ = false;
if (parameters()[PIEthernet::KeepConnection])
if (parameters()[KeepConnection])
connect();
//piCoutObj << "eth" << ip_ << "disconnected";
}