comet = false;
openSocket = false;
sendfileInProgress = false;
+ readComplete = true;
int soTimeout = endpoint.getSoTimeout();
rp.setStage(org.apache.coyote.Constants.STAGE_KEEPALIVE);
if (breakKeepAliveLoop(socketWrapper)) {
- break;
+ break;
}
}
if (sendfileInProgress) {
return SocketState.SENDFILE;
} else {
- return (openSocket) ? SocketState.OPEN : SocketState.CLOSED;
+ if (openSocket) {
+ if (readComplete) {
+ return SocketState.OPEN;
+ } else {
+ return SocketState.LONG;
+ }
+ } else {
+ return SocketState.CLOSED;
+ }
}
}
-
}
comet = false;
openSocket = false;
sendfileInProgress = false;
+ readComplete = true;
int soTimeout = endpoint.getSoTimeout();
}
boolean keptAlive = false;
- boolean readComplete = true;
while (!error && keepAlive && !comet && !isAsync() && !endpoint.isPaused()) {
//always default to our soTimeout
rp.setStage(org.apache.coyote.Constants.STAGE_KEEPALIVE);
if (breakKeepAliveLoop(socketWrapper)) {
- break;
+ break;
}
}
rp.setStage(org.apache.coyote.Constants.STAGE_ENDED);
+
if (error || endpoint.isPaused()) {
return SocketState.CLOSED;
} else if (comet || isAsync()) {
return SocketState.LONG;
} else {
- return (openSocket) ? (readComplete?SocketState.OPEN:SocketState.LONG) : SocketState.CLOSED;
+ if (sendfileInProgress) {
+ return SocketState.SENDFILE;
+ } else {
+ if (openSocket) {
+ if (readComplete) {
+ return SocketState.OPEN;
+ } else {
+ return SocketState.LONG;
+ }
+ } else {
+ return SocketState.CLOSED;
+ }
+ }
}
}
@Override
protected boolean breakKeepAliveLoop(
- SocketWrapper<NioChannel> socketWrapper) {
+ SocketWrapper<NioChannel> socketWrapper) {
// Do sendfile as needed: add socket to sendfile and end
if (sendfileData != null && !error) {
((KeyAttachment) socketWrapper).setSendfileData(sendfileData);
(KeyAttachment) socketWrapper, true, true);
return true;
}
- return false;
+ return false;
}
comet = false;
openSocket = false;
sendfileInProgress = false;
+ readComplete = true;
int soTimeout = endpoint.getSoTimeout();
rp.setStage(org.apache.coyote.Constants.STAGE_KEEPALIVE);
if (breakKeepAliveLoop(socketWrapper)) {
- break;
+ break;
}
}
rp.setStage(org.apache.coyote.Constants.STAGE_ENDED);
+
if (error || endpoint.isPaused()) {
return SocketState.CLOSED;
- } else if (isAsync()) {
+ } else if (comet || isAsync()) {
return SocketState.LONG;
} else {
- if (!keepAlive) {
- return SocketState.CLOSED;
+ if (sendfileInProgress) {
+ return SocketState.SENDFILE;
} else {
- return SocketState.OPEN;
+ if (openSocket) {
+ if (readComplete) {
+ return SocketState.OPEN;
+ } else {
+ return SocketState.LONG;
+ }
+ } else {
+ return SocketState.CLOSED;
+ }
}
- }
+ }
}