PIEthernet TCP improvements
git-svn-id: svn://db.shs.com.ru/pip@131 12ceb7fc-bf1f-11e4-8940-5bc7170c53b5
This commit is contained in:
@@ -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";
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user