[BACK]Return to sio.c CVS log [TXT][DIR] Up to [local] / OpenXM_contrib2 / asir2000 / io

Diff for /OpenXM_contrib2/asir2000/io/sio.c between version 1.20 and 1.27

version 1.20, 2003/01/28 08:58:23 version 1.27, 2015/08/14 13:51:55
Line 44 
Line 44 
  * OF THE SOFTWARE HAS BEEN DEVELOPED BY A THIRD PARTY, THE THIRD PARTY   * OF THE SOFTWARE HAS BEEN DEVELOPED BY A THIRD PARTY, THE THIRD PARTY
  * DEVELOPER SHALL HAVE NO LIABILITY IN CONNECTION WITH THE USE,   * DEVELOPER SHALL HAVE NO LIABILITY IN CONNECTION WITH THE USE,
  * PERFORMANCE OR NON-PERFORMANCE OF THE SOFTWARE.   * PERFORMANCE OR NON-PERFORMANCE OF THE SOFTWARE.
  * $OpenXM: OpenXM_contrib2/asir2000/io/sio.c,v 1.19 2003/01/28 08:38:59 noro Exp $   * $OpenXM: OpenXM_contrib2/asir2000/io/sio.c,v 1.26 2015/08/06 10:01:52 fujimoto Exp $
 */  */
 #include "ca.h"  #include "ca.h"
 #include <setjmp.h>  #include <setjmp.h>
 #include "ox.h"  #include "ox.h"
 #if defined(VISUAL)  #if defined(VISUAL) || defined(__MINGW32__)
 #include <winsock2.h>  #include <winsock2.h>
 #include <io.h>  #include <io.h>
 #else  #else
Line 76  struct IOFP iofp[MAXIOFP];
Line 76  struct IOFP iofp[MAXIOFP];
   
 void init_socket(void);  void init_socket(void);
   
   #if !defined(VISUAL) && !defined(__MINGW32__)
   #define closesocket(s)   (close((s)))
   #endif
   
 int getremotesocket(int s)  int getremotesocket(int s)
 {  {
         return iofp[s].s;          return iofp[s].s;
Line 103  void generate_port(int use_unix,char *port_str)
Line 107  void generate_port(int use_unix,char *port_str)
         unsigned int port;          unsigned int port;
         static int count=0;          static int count=0;
   
 #if !defined(VISUAL)  #if !defined(VISUAL) && !defined(__MINGW32__)
         if ( use_unix ) {          if ( use_unix ) {
                 sprintf(port_str,"/tmp/ox%02x.XXXXXX",count);                  sprintf(port_str,"/tmp/ox%02x.XXXXXX",count);
                 count++;                  count++;
Line 123  int try_bind_listen(int use_unix,char *port_str)
Line 127  int try_bind_listen(int use_unix,char *port_str)
         struct sockaddr *saddr;          struct sockaddr *saddr;
         int len;          int len;
         int service;          int service;
 #if !defined(VISUAL)  #if !defined(VISUAL) && !defined(__MINGW32__)
         struct sockaddr_un s_un;          struct sockaddr_un s_un;
   
         if ( use_unix ) {          if ( use_unix ) {
Line 156  int try_bind_listen(int use_unix,char *port_str)
Line 160  int try_bind_listen(int use_unix,char *port_str)
         }          }
         if (bind(service, saddr, len) < 0) {          if (bind(service, saddr, len) < 0) {
                 perror("in bind");                  perror("in bind");
                 close(service);                  closesocket(service);
                 return -1;                  return -1;
         }          }
         if (getsockname(service,saddr, &len) < 0) {          if (getsockname(service,saddr, &len) < 0) {
             perror("in getsockname");              perror("in getsockname");
             close(service);              closesocket(service);
             return -1;              return -1;
         }          }
         if (listen(service, SOCKQUEUELENGTH) < 0) {          if (listen(service, SOCKQUEUELENGTH) < 0) {
                 perror("in listen");                  perror("in listen");
                 close(service);                  closesocket(service);
                 return -1;                  return -1;
         }          }
         return service;          return service;
Line 191  int try_accept(int af_unix,int s)
Line 195  int try_accept(int af_unix,int s)
         int len,c,i;          int len,c,i;
         struct sockaddr_in sin;          struct sockaddr_in sin;
   
 #if !defined(VISUAL)  #if !defined(VISUAL) && !defined(__MINGW32__)
         struct sockaddr_un s_un;          struct sockaddr_un s_un;
         if ( af_unix ) {          if ( af_unix ) {
                 len = sizeof(s_un);                  len = sizeof(s_un);
Line 207  int try_accept(int af_unix,int s)
Line 211  int try_accept(int af_unix,int s)
         }          }
         if ( i == 10 )          if ( i == 10 )
                 c = -1;                  c = -1;
         close(s);          closesocket(s);
         return c;          return c;
 }  }
   
Line 217  int try_connect(int use_unix,char *host,char *port_str
Line 221  int try_connect(int use_unix,char *host,char *port_str
         struct sockaddr *saddr;          struct sockaddr *saddr;
         struct hostent *hp;          struct hostent *hp;
         int len,s,i;          int len,s,i;
 #if !defined(VISUAL)  #if !defined(VISUAL) && !defined(__MINGW32__)
         struct sockaddr_un s_un;          struct sockaddr_un s_un;
 #endif  #endif
   
         for ( i = 0; i < 10; i++ ) {          for ( i = 0; i < 10; i++ ) {
 #if !defined(VISUAL)  #if !defined(VISUAL) && !defined(__MINGW32__)
                 if ( use_unix ) {                  if ( use_unix ) {
                         if ( (s = socket(AF_UNIX,SOCK_STREAM,0)) < 0 ) {                          if ( (s = socket(AF_UNIX,SOCK_STREAM,0)) < 0 ) {
                                 perror("socket");                                  perror("socket");
Line 263  int try_connect(int use_unix,char *host,char *port_str
Line 267  int try_connect(int use_unix,char *host,char *port_str
                 if ( connect(s,saddr,len) >= 0 )                  if ( connect(s,saddr,len) >= 0 )
                         break;                          break;
                 else {                  else {
                         close(s);                          closesocket(s);
 #if defined(VISUAL)  #if defined(VISUAL) || defined(__MINGW32__)
                         Sleep(100);                          Sleep(100);
 #else  #else
                         usleep(100000);                          usleep(100000);
Line 313  void free_iofp(int s)
Line 317  void free_iofp(int s)
         struct IOFP *r;          struct IOFP *r;
   
         r = &iofp[s];          r = &iofp[s];
 #if defined(VISUAL)  #if defined(VISUAL) || defined(__MINGW32__)
         if ( r->s ) close(r->s);          if ( r->s ) closesocket(r->s);
 #elif !MPI  #elif !defined(MPI)
         if ( r->in ) fclose(r->in);          if ( r->in ) fclose(r->in);
         if ( r->out ) fclose(r->out);          if ( r->out ) fclose(r->out);
         if ( r->socket ) unlink(r->socket);          if ( r->socket ) unlink(r->socket);
Line 330  int get_iofp(int s1,char *af_sock,int is_server)
Line 334  int get_iofp(int s1,char *af_sock,int is_server)
         unsigned char c,rc;          unsigned char c,rc;
         extern int mpi_myid;          extern int mpi_myid;
   
 #if MPI  #if defined(MPI)
         iofp[s1].s = s1;          iofp[s1].s = s1;
         if ( mpi_myid == s1 ) {          if ( mpi_myid == s1 ) {
                 iofp[s1].in = 0;                  iofp[s1].in = 0;
Line 348  int get_iofp(int s1,char *af_sock,int is_server)
Line 352  int get_iofp(int s1,char *af_sock,int is_server)
                 if ( !iofp[i].in )                  if ( !iofp[i].in )
                         break;                          break;
         iofp[i].s = s1;          iofp[i].s = s1;
 #if defined(VISUAL)  #if defined(VISUAL) || defined(__MINGW32__)
         iofp[i].in = WSIO_open(s1,"r");          iofp[i].in = WSIO_open(s1,"r");
         iofp[i].out = WSIO_open(s1,"w");          iofp[i].out = WSIO_open(s1,"w");
 #else  #else
         iofp[i].in = fdopen(s1,"r");          iofp[i].in = fdopen(s1,"r");
         iofp[i].out = fdopen(s1,"w");          iofp[i].out = fdopen(s1,"w");
 #if !defined(__CYGWIN__)  #if !defined(__CYGWIN__)
         setbuffer(iofp[i].in,iofp[i].inbuf = (char *)GC_malloc_atomic(LBUFSIZ),LBUFSIZ);          setbuffer(iofp[i].in,iofp[i].inbuf = (char *)MALLOC_ATOMIC(LBUFSIZ),LBUFSIZ);
         setbuffer(iofp[i].out,iofp[i].outbuf = (char *)GC_malloc_atomic(LBUFSIZ),LBUFSIZ);          setbuffer(iofp[i].out,iofp[i].outbuf = (char *)MALLOC_ATOMIC(LBUFSIZ),LBUFSIZ);
 #endif  #endif
 #endif  #endif
         if ( little_endian )          if ( little_endian )
Line 385  int get_iofp(int s1,char *af_sock,int is_server)
Line 389  int get_iofp(int s1,char *af_sock,int is_server)
 #endif  #endif
 }  }
   
 #if defined(VISUAL)  #if defined(VISUAL) || defined(__MINGW32__)
 void init_socket()  void init_socket()
 {  {
         static int socket_is_initialized;          static int socket_is_initialized;

Legend:
Removed from v.1.20  
changed lines
  Added in v.1.27

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>