[BACK]Return to mytcpio.c CVS log [TXT][DIR] Up to [local] / OpenXM / src / kan96xx / plugin

Diff for /OpenXM/src/kan96xx/plugin/mytcpio.c between version 1.9 and 1.16

version 1.9, 2002/10/23 08:42:22 version 1.16, 2005/07/03 11:08:54
Line 1 
Line 1 
 /*  $OpenXM: OpenXM/src/kan96xx/plugin/mytcpio.c,v 1.8 2002/10/20 08:26:00 takayama Exp $ */  /*  $OpenXM: OpenXM/src/kan96xx/plugin/mytcpio.c,v 1.15 2004/11/23 05:28:19 takayama Exp $ */
 #include <stdio.h>  #include <stdio.h>
   #include <string.h>
 #include <sys/types.h>  #include <sys/types.h>
 #include <sys/socket.h>  #include <sys/socket.h>
 #include <sys/time.h>  #include <sys/time.h>
 #include <netinet/in.h>  #include <netinet/in.h>
 #include <netdb.h>  #include <netdb.h>
 #include <setjmp.h>  #include <setjmp.h>
   #include <errno.h>
 /* -lnsl -lsocket /usr/ucblib/libucb.a */  /* -lnsl -lsocket /usr/ucblib/libucb.a */
 #include "ox_kan.h"  #include "ox_kan.h"
 /*  /*
Line 38  socketOpen(char *serverName,int portNumber) {
Line 40  socketOpen(char *serverName,int portNumber) {
   static struct sockaddr_in me;    static struct sockaddr_in me;
   static int s_waiting;    static int s_waiting;
   static int on;    static int on;
   extern int errno;  
   int tt;    int tt;
   
   SET_TCPIOERROR;    SET_TCPIOERROR;
   fprintf(TcpioError,"Hello from open. serverName is %s and portnumber is %d\n",    if (!Quiet) fprintf(TcpioError,"Hello from open. serverName is %s and portnumber is %d\n",
           serverName,portNumber);            serverName,portNumber);
   if ((myhost = gethostbyname(serverName)) == NULL) {    if ((myhost = gethostbyname(serverName)) == NULL) {
     errorMsg1s("Bad server name.");      errorMsg1s("Bad server name.");
Line 78  socketOpen(char *serverName,int portNumber) {
Line 79  socketOpen(char *serverName,int portNumber) {
     errorMsg1s("Listen failed");      errorMsg1s("Listen failed");
     return(-1);      return(-1);
   }    }
   fprintf(TcpioError,"Done the initialization. port =%d\n",ntohs(me.sin_port));    if (!Quiet) fprintf(TcpioError,"Done the initialization. port =%d\n",ntohs(me.sin_port));
   OpenedSocket = ntohs(me.sin_port);    OpenedSocket = ntohs(me.sin_port);
   return(s_waiting);    return(s_waiting);
 }  }
Line 89  socketAccept(int snum) {
Line 90  socketAccept(int snum) {
   
   SET_TCPIOERROR;    SET_TCPIOERROR;
   s = snum;    s = snum;
   fprintf(TcpioError,"Trying to accept... "); fflush(TcpioError);    if (!Quiet) {fprintf(TcpioError,"Trying to accept... "); fflush(TcpioError);}
   if ((news = accept(s,NULL,NULL)) < 0) {    if ((news = accept(s,NULL,NULL)) < 0) {
     errorMsg1s("Error in accept.");      errorMsg1s("Error in accept. Retrying (socketAccept).");
     return(-1);      /* Code added for strange behavior on cygwin. */
       if ((news = accept(s,NULL,NULL)) < 0) {
         errorMsg1s("Error in accept. Retry failed.");
         return (-1);
       }
   }    }
   fprintf(TcpioError,"Accepted.\n"); fflush(TcpioError);    if (!Quiet) {fprintf(TcpioError,"Accepted.\n"); fflush(TcpioError);}
   if (close(s) < 0) {    if (close(s) < 0) {
     errorMsg1s("Error in closing the old socket.");      errorMsg1s("Error in closing the old socket.");
     return(-1);      return(-1);
Line 110  socketAcceptLocal(int snum) {
Line 115  socketAcceptLocal(int snum) {
   
   SET_TCPIOERROR;    SET_TCPIOERROR;
   s = snum;    s = snum;
   fprintf(TcpioError,"Trying to accept from localhost... "); fflush(TcpioError);    if (!Quiet) {fprintf(TcpioError,"Trying to accept from localhost... "); fflush(TcpioError);}
   len = sizeof(struct sockaddr);    len = sizeof(struct sockaddr);
   if ((news = accept(s,&peer,&len)) < 0) {    if ((news = accept(s,&peer,&len)) < 0) {
     errorMsg1s("Error in accept.");      errorMsg1s("Error in accept. Retrying");
     return(-1);      /* Code added for strange behavior on cygwin. */
      if ((news = accept(s,&peer,&len)) < 0) {
         errorMsg1s("Error in accept. Retry failed.");
         return (-1);
      }
   }    }
   
   len = sizeof(struct sockaddr);    len = sizeof(struct sockaddr);
   getpeername(news,&peer,&len);    getpeername(news,&peer,&len);
   printf("len= %d\n",len);    if (!Quiet) printf("len= %d\n",len);
   for (i=0; i<len; i++) {    for (i=0; i<len; i++) {
     printf(" %x ",peer.sa_data[i]);      if (!Quiet) printf(" %x ",peer.sa_data[i]);
   }    }
   printf("\n");    if (!Quiet) printf("\n");
   if (peer.sa_data[2] == 0x7f && peer.sa_data[3] == 0 &&    if (peer.sa_data[2] == 0x7f && peer.sa_data[3] == 0 &&
       peer.sa_data[4] == 0    && peer.sa_data[5] == 1) {        peer.sa_data[4] == 0    && peer.sa_data[5] == 1) {
     fprintf(stderr,"Authentication: localhost is allowed to be accepted.\n");      if (!Quiet) fprintf(stderr,"Authentication: localhost is allowed to be accepted.\n");
   }else{    }else{
     errorMsg1s("Authentication: The connection is not from the localhost.");      errorMsg1s("Authentication: The connection is not from the localhost.");
     close(s);      close(s);
Line 134  socketAcceptLocal(int snum) {
Line 143  socketAcceptLocal(int snum) {
     return(-1);      return(-1);
   }    }
   
   fprintf(TcpioError,"Accepted.\n"); fflush(TcpioError);    if (!Quiet) {fprintf(TcpioError,"Accepted.\n"); fflush(TcpioError);}
   if (close(s) < 0) {    if (close(s) < 0) {
     errorMsg1s("Error in closing the old socket.");      errorMsg1s("Error in closing the old socket.");
     return(-1);      return(-1);
Line 151  socketAcceptLocal2(int snum) {
Line 160  socketAcceptLocal2(int snum) {
   
   SET_TCPIOERROR;    SET_TCPIOERROR;
   s = snum;    s = snum;
   fprintf(TcpioError,"Trying to accept from localhost... "); fflush(TcpioError);    if (!Quiet) {fprintf(TcpioError,"Trying to accept from localhost... "); fflush(TcpioError);}
   len = sizeof(struct sockaddr);    len = sizeof(struct sockaddr);
   if ((news = accept(s,&peer,&len)) < 0) {    if ((news = accept(s,&peer,&len)) < 0) {
     errorMsg1s("Error in accept.");      errorMsg1s("Error in accept. Retrying (socketAcceptLocal2).");
     return(-1);      /* Code added for strange behavior on cygwin. */
       if ((news = accept(s,&peer,&len)) < 0) {
         errorMsg1s("Error in accept. Retry failed.");
         return (-1);
       }
   }    }
   
   len = sizeof(struct sockaddr);    len = sizeof(struct sockaddr);
   getpeername(news,&peer,&len);    getpeername(news,&peer,&len);
   printf("len= %d\n",len);    if (!Quiet) printf("len= %d\n",len);
   for (i=0; i<len; i++) {    for (i=0; i<len; i++) {
     printf(" %x ",peer.sa_data[i]);      if (!Quiet) printf(" %x ",peer.sa_data[i]);
   }    }
   printf("\n");    if (!Quiet) printf("\n");
   if (peer.sa_data[2] == 0x7f && peer.sa_data[3] == 0 &&    if (peer.sa_data[2] == 0x7f && peer.sa_data[3] == 0 &&
       peer.sa_data[4] == 0    && peer.sa_data[5] == 1) {        peer.sa_data[4] == 0    && peer.sa_data[5] == 1) {
     fprintf(stderr,"Authentication: localhost is allowed to be accepted.\n");      if (!Quiet) fprintf(stderr,"Authentication: localhost is allowed to be accepted.\n");
   }else{    }else{
     errorMsg1s("Authentication: The connection is not from the localhost.");      errorMsg1s("Authentication: The connection is not from the localhost.");
     fprintf(stderr,"The connection is refused.");      fprintf(stderr,"The connection is refused.");
     return(-1);      return(-1);
   }    }
   
   fprintf(TcpioError,"Accepted.\n"); fflush(TcpioError);    if (!Quiet) {fprintf(TcpioError,"Accepted.\n"); fflush(TcpioError);}
   return(news);    return(news);
 }  }
   
Line 182  int oxSocketSelect0(int fd,int t) {
Line 195  int oxSocketSelect0(int fd,int t) {
   fd_set readfds;    fd_set readfds;
   struct timeval timeout;    struct timeval timeout;
   int debug = 0;    int debug = 0;
   extern int errno;  
   SET_TCPIOERROR;    SET_TCPIOERROR;
   FD_ZERO(&readfds);    FD_ZERO(&readfds);
   FD_SET(fd,&readfds);    FD_SET(fd,&readfds);
Line 214  oxSocketMultiSelect(int sid[],int size,int t,int resul
Line 226  oxSocketMultiSelect(int sid[],int size,int t,int resul
   fd_set readfds;    fd_set readfds;
   struct timeval timeout;    struct timeval timeout;
   int isdata = 0;    int isdata = 0;
   extern errno;  
   
   SET_TCPIOERROR;    SET_TCPIOERROR;
   FD_ZERO(&readfds);    FD_ZERO(&readfds);

Legend:
Removed from v.1.9  
changed lines
  Added in v.1.16

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