diff options
author | bustico | 2008-02-08 09:33:07 +0000 |
---|---|---|
committer | bustico | 2008-02-08 09:33:07 +0000 |
commit | 4013e1acba325a4f7ef4192c13ec39f64b4d098a (patch) | |
tree | 0eadf35fb16550a75f1e7cea6c4e4d08d2c3f22c /src/ivysocket.c | |
parent | e2f721ae39bd48abacb80c414b64e934abdbe610 (diff) | |
download | ivy-c-4013e1acba325a4f7ef4192c13ec39f64b4d098a.zip ivy-c-4013e1acba325a4f7ef4192c13ec39f64b4d098a.tar.gz ivy-c-4013e1acba325a4f7ef4192c13ec39f64b4d098a.tar.bz2 ivy-c-4013e1acba325a4f7ef4192c13ec39f64b4d098a.tar.xz |
fix makefile for non omp target
Diffstat (limited to 'src/ivysocket.c')
-rw-r--r-- | src/ivysocket.c | 20 |
1 files changed, 18 insertions, 2 deletions
diff --git a/src/ivysocket.c b/src/ivysocket.c index d0fd60e..1cc12e6 100644 --- a/src/ivysocket.c +++ b/src/ivysocket.c @@ -26,6 +26,7 @@ #include <stdio.h> #include <stdarg.h> #include <string.h> +#include <fcntl.h> #ifdef WIN32 #define close closesocket @@ -186,6 +187,7 @@ static void HandleServer(Channel channel, HANDLE fd, void *data) HANDLE ns; socklen_t addrlen; struct sockaddr_in remote2; + long socketFlag; TRACE( "Accepting Connection...\n"); @@ -210,6 +212,13 @@ static void HandleServer(Channel channel, HANDLE fd, void *data) client->terminator = '\n'; client->from = remote2; client->fd = ns; + + socketFlag = fcntl (client->fd, F_GETFD); + if (fcntl (client->fd, F_SETFD, socketFlag|O_NONBLOCK)) { + fprintf(stderr,"Warning : Setting socket in nonblock mode FAILED\n"); + } + + client->channel = IvyChannelAdd (ns, client, DeleteSocket, HandleSocket ); client->interpretation = server->interpretation; client->ptr = client->buffer; @@ -490,7 +499,8 @@ void *SocketGetData (Client client ) void SocketBroadcast ( char *fmt, ... ) { Client client; - static IvyBuffer buffer = {NULL, 0, 0 }; /* Use satic mem to eliminate multiple call to malloc /free */ + static IvyBuffer buffer = {NULL, 0, 0 }; /* Use satic mem to eliminate + multiple call to malloc /free */ #ifdef OPENMP #pragma omp threadprivate (buffer) #endif @@ -521,7 +531,8 @@ Client SocketConnect (char * host, unsigned short port, fprintf(stderr, "Erreur %s Calculateur inconnu !\n",host); return NULL; } - return SocketConnectAddr ((struct in_addr*)(rhost->h_addr), port, data, interpretation, handle_delete); + return SocketConnectAddr ((struct in_addr*)(rhost->h_addr), port, data, + interpretation, handle_delete); } Client SocketConnectAddr (struct in_addr * addr, unsigned short port, @@ -533,6 +544,7 @@ Client SocketConnectAddr (struct in_addr * addr, unsigned short port, HANDLE handle; Client client; struct sockaddr_in remote; + long socketFlag; remote.sin_family = AF_INET; remote.sin_addr = *addr; @@ -547,6 +559,10 @@ Client SocketConnectAddr (struct in_addr * addr, unsigned short port, perror ("*** client connect ***"); return NULL; }; + socketFlag = fcntl (handle, F_GETFD); + if (fcntl (handle, F_SETFD, socketFlag|O_NONBLOCK)) { + fprintf(stderr,"Warning : Setting socket in nonblock mode FAILED\n"); + } IVY_LIST_ADD_START(clients_list, client ); |