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

Diff for /OpenXM/src/kan96xx/plugin/oxmisc.c between version 1.21 and 1.30

version 1.21, 2004/09/16 23:53:45 version 1.30, 2016/03/31 03:22:55
Line 1 
Line 1 
 /*  $OpenXM: OpenXM/src/kan96xx/plugin/oxmisc.c,v 1.20 2004/03/08 08:24:42 takayama Exp $ */  /*  $OpenXM: OpenXM/src/kan96xx/plugin/oxmisc.c,v 1.29 2015/10/08 11:49:37 takayama Exp $ */
 #include <stdio.h>  #include <stdio.h>
   #include <string.h>
 #include <sys/types.h>  #include <sys/types.h>
 #include <sys/stat.h>  #include <sys/stat.h>
 #include <sys/socket.h>  #include <sys/socket.h>
Line 22  FILE *MyErrorOut = NULL;
Line 23  FILE *MyErrorOut = NULL;
 #include "../Kan/extern.h"  #include "../Kan/extern.h"
   
 #include "ox_kan.h"  #include "ox_kan.h"
   #include "mysig.h"
   
   
 #define READBUFSIZE 5000  #define READBUFSIZE 5000
   
 int OxVersion = 200012030;  int OxVersion = 200012030;
Line 178  int oxWaitSyncBall(ox_stream ostream)
Line 181  int oxWaitSyncBall(ox_stream ostream)
     fprintf(stderr,"Looking for the next message tag. mtag=%d\n",mtag);      fprintf(stderr,"Looking for the next message tag. mtag=%d\n",mtag);
     /* or stdout */      /* or stdout */
     fflush(NULL);      fflush(NULL);
           if (mtag == -1) {
             fprintf(stderr,"Your peer seems to be dead.\n"); return 0;
           }
   }    }
 }  }
   
Line 344  void oxSendResultOfControl(int fd) 
Line 350  void oxSendResultOfControl(int fd) 
 void oxSendMathCap(ox_stream os,struct mathCap *mathcap)  void oxSendMathCap(ox_stream os,struct mathCap *mathcap)
 {  {
   int i,n,infosize,ncmo;    int i,n,infosize,ncmo;
   struct object mathinfo;    struct object mathinfo = OINIT;
   /* printf("ox sending mathcap\n"); fflush(stdout); */    /* printf("ox sending mathcap\n"); fflush(stdout); */
   mathinfo = *((struct object *)(mathcap->infop));    mathinfo = *((struct object *)(mathcap->infop));
   infosize = getoaSize(mathinfo);    infosize = getoaSize(mathinfo);
Line 618  int oxIsThereErrorClient(oxclientp client) {
Line 624  int oxIsThereErrorClient(oxclientp client) {
   return(0);    return(0);
 }  }
   
 oxclientp oxCreateClient(char *sname,int portStream,int portControl)  oxclientp oxCreateClient(char *sname,int portStream,int portControl,
                            char *passControl, char *passData)
      /* you also need to change oxCreateClient2. */       /* you also need to change oxCreateClient2. */
 {  {
   int v = 0;    int v = 0;
Line 642  oxclientp oxCreateClient(char *sname,int portStream,in
Line 649  oxclientp oxCreateClient(char *sname,int portStream,in
     return(NULL);      return(NULL);
   }    }
   
     if (passControl != NULL) {
       if (v) fprintf(stderr,"Sending password %s for the control channel.\n",
                      passControl);
       if (write(fdControl,passControl,strlen(passControl)+1) < 0) {
         fprintf(stderr,"oxCreateClient(): failed to send passControl.\n");
         return(NULL);
       }
     }
     if (passData != NULL) {
       if (v) fprintf(stderr,"Sending password %s for the data channel.\n",
                      passData);
       if (write(fdStream,passData,strlen(passData)+1) < 0) {
         fprintf(stderr,"oxCreateClient(): failed to send passData.\n");
         return(NULL);
       }
     }
   
   controlByteOrder = oxSetByteOrder(fdControl);    controlByteOrder = oxSetByteOrder(fdControl);
   if (v) fprintf(stderr,"Byte order for control process is %s.\n",    if (v) fprintf(stderr,"Byte order for control process is %s.\n",
                  (controlByteOrder == 0? "network byte order":                   (controlByteOrder == 0? "network byte order":
Line 899  static void cancelConnection() {
Line 923  static void cancelConnection() {
 #else  #else
   extern jmp_buf MyEnv_oxmisc;    extern jmp_buf MyEnv_oxmisc;
 #endif  #endif
   signal(SIGALRM,SIG_IGN);    mysignal(SIGALRM,SIG_IGN);
   fprintf(stderr,"Time out in TCP/IP connection.\n");    fprintf(stderr,"Time out in TCP/IP connection.\n");
 #if defined(__CYGWIN__)  #if defined(__CYGWIN__)
   siglongjmp(MyEnv_oxmisc,1);    MYSIGLONGJMP(MyEnv_oxmisc,1);
 #else  #else
   longjmp(MyEnv_oxmisc,1);    MYLONGJMP(MyEnv_oxmisc,1);
 #endif  #endif
 }  }
   
 oxclientp oxCreateClient2(int fdstream,int portStream,  oxclientp oxCreateClient2(int fdstream,int portStream,
                           int fdcontrol,int portControl,int ipmask,char *pass)                            int fdcontrol,int portControl,int ipmask,
                             char *passControl, char *passData)
 {  {
   int v = 0;    int v = 0;
   int fdControl = -1;    int fdControl = -1;
Line 927  oxclientp oxCreateClient2(int fdstream,int portStream,
Line 952  oxclientp oxCreateClient2(int fdstream,int portStream,
   
   v = !Quiet;    v = !Quiet;
 #if defined(__CYGWIN__)  #if defined(__CYGWIN__)
   if (sigsetjmp(MyEnv_oxmisc,1)) {    if (MYSIGSETJMP(MyEnv_oxmisc,1)) {
 #else  #else
   if (setjmp(MyEnv_oxmisc)) {    if (MYSETJMP(MyEnv_oxmisc)) {
 #endif  #endif
     return(NULL);      return(NULL);
   }else{    }else{
   }    }
   alarm((unsigned int) 20);  /* setup timeout. */    alarm((unsigned int) 20);  /* setup timeout. */
   signal(SIGALRM,cancelConnection);    mysignal(SIGALRM,cancelConnection);
   
   switch(ipmask) {    switch(ipmask) {
   case 0:/* only local */    case 0:/* only local */
Line 957  oxclientp oxCreateClient2(int fdstream,int portStream,
Line 982  oxclientp oxCreateClient2(int fdstream,int portStream,
   }    }
   
   /* Authentication by password. */    /* Authentication by password. */
   m = strlen(pass);    m = strlen(passControl)+strlen(passData);
   if (m > 0) {    if (m > 0) {
     s = (char *)mymalloc(sizeof(char)*(m+1));      s = (char *)mymalloc(sizeof(char)*(m+1));
       m = strlen(passControl); s[0] = 0;
     read(fdControl,s,m+1); s[m] = '\0';      read(fdControl,s,m+1); s[m] = '\0';
     if (strcmp(s,pass) != 0) {      if (strcmp(s,passControl) != 0) {
         fprintf(stderr,"s=%s, passControl=%s\n",s,passControl);
       fprintf(stderr,"oxCreateClient2(): password authentication failed for control channel.\n");        fprintf(stderr,"oxCreateClient2(): password authentication failed for control channel.\n");
       close(fdControl);        close(fdControl);
       return(NULL);        return(NULL);
     }      }
       m = strlen(passData); s[0] = 0;
     read(fdStream,s,m+1); s[m] = '\0';      read(fdStream,s,m+1); s[m] = '\0';
     if (strcmp(s,pass) != 0) {      if (strcmp(s,passData) != 0) {
         fprintf(stderr,"s=%s, passData=%s\n",s,passData);
       fprintf(stderr,"oxCreateClient2(): password authentication failed for data channel.\n");        fprintf(stderr,"oxCreateClient2(): password authentication failed for data channel.\n");
       close(fdStream);        close(fdStream);
       return(NULL);        return(NULL);
     }      }
   }    }
   signal(SIGALRM,SIG_IGN);    mysignal(SIGALRM,SIG_IGN);
   
   controlByteOrder = oxSetByteOrder(fdControl);    controlByteOrder = oxSetByteOrder(fdControl);
   if (v) fprintf(stderr,"Byte order for control process is %s.\n",    if (v) fprintf(stderr,"Byte order for control process is %s.\n",

Legend:
Removed from v.1.21  
changed lines
  Added in v.1.30

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