DDVSocket edits

This commit is contained in:
Thulinma 2010-11-08 16:25:35 +01:00
parent 5ca0886b6d
commit 7ef4d086ff
2 changed files with 11 additions and 3 deletions

View file

@ -105,7 +105,9 @@ int main(int argc, char ** argv){
//rightnow = getNowMS(); //rightnow = getNowMS();
retval = epoll_wait(poller, events, 1, 0); retval = epoll_wait(poller, events, 1, 0);
if (!ready4data || (snd_cnt - snd_window_at >= snd_window_size)){ if (!ready4data || (snd_cnt - snd_window_at >= snd_window_size)){
parseChunk(); if (DDV_ready(CONN_fd)){
parseChunk();
}
} }
if (ready4data){ if (ready4data){
if (!inited){ if (!inited){

View file

@ -73,7 +73,7 @@ bool DDV_write(void * buffer, int todo, int sock){
int r = send(sock, (char*)buffer + sofar, todo-sofar, 0); int r = send(sock, (char*)buffer + sofar, todo-sofar, 0);
if (r <= 0){ if (r <= 0){
switch (errno){ switch (errno){
case EWOULDBLOCK: socketBlocking = true; return false; break; case EWOULDBLOCK: socketBlocking = true; break;
default: default:
socketError = true; socketError = true;
printf("Could not write! %s\n", strerror(errno)); printf("Could not write! %s\n", strerror(errno));
@ -86,6 +86,12 @@ bool DDV_write(void * buffer, int todo, int sock){
return true; return true;
} }
bool DDV_ready(int sock){
char tmp;
int r = recv(sock, &tmp, 1, MSG_PEEK);
return (r == 1);
}
bool DDV_read(void * buffer, int todo, int sock){ bool DDV_read(void * buffer, int todo, int sock){
int sofar = 0; int sofar = 0;
socketBlocking = false; socketBlocking = false;
@ -93,7 +99,7 @@ bool DDV_read(void * buffer, int todo, int sock){
int r = recv(sock, (char*)buffer + sofar, todo-sofar, 0); int r = recv(sock, (char*)buffer + sofar, todo-sofar, 0);
if (r <= 0){ if (r <= 0){
switch (errno){ switch (errno){
case EWOULDBLOCK: socketBlocking = true; return false; break; case EWOULDBLOCK: socketBlocking = true; break;
default: default:
socketError = true; socketError = true;
printf("Could not read! %s\n", strerror(errno)); printf("Could not read! %s\n", strerror(errno));