| version 1.26, 2006/05/06 10:53:36 |
version 1.31, 2016/08/29 01:15:01 |
|
|
| /* $OpenXM: OpenXM/src/kan96xx/plugin/oxmisc.c,v 1.25 2005/07/03 11:08:54 ohara Exp $ */ |
/* $OpenXM: OpenXM/src/kan96xx/plugin/oxmisc.c,v 1.30 2016/03/31 03:22:55 takayama Exp $ */ |
| #include <stdio.h> |
#include <stdio.h> |
| #include <string.h> |
#include <string.h> |
| #include <sys/types.h> |
#include <sys/types.h> |
| Line 23 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 175 int oxWaitSyncBall(ox_stream ostream) |
|
| Line 177 int oxWaitSyncBall(ox_stream ostream) |
|
| { |
{ |
| int sss; |
int sss; |
| int mtag; |
int mtag; |
| |
int com; |
| while ((mtag = oxGetOXheader(ostream,&sss)) != OX_SYNC_BALL) { |
while ((mtag = oxGetOXheader(ostream,&sss)) != OX_SYNC_BALL) { |
| fprintf(stderr,"Looking for the next message tag. mtag=%d\n",mtag); |
switch (mtag) { |
| |
case OX_COMMAND: |
| |
fprintf(stderr,"Waiting for command body: "); fflush(NULL); |
| |
com=oxGetInt32(ostream); |
| |
fprintf(stderr,"%d. Done\n",com); |
| |
break; |
| |
default: /* Todo, need support OX_DATA */ |
| |
fprintf(stderr,"Looking for the next message tag. Current unknown or unimplented mtag=%d\n",mtag); |
| |
if (UseOXPacketSerial) fprintf(stderr,"Note that we expect the OX message tag with a serial number.\n"); |
| |
if (UseOXPacketSerial && (sss == OX_SYNC_BALL)) { |
| |
/* dirty trick, it might cause a trouble. */ |
| |
fprintf(stderr,"We assume that the serial number is OX_SYNC_BALL\n"); |
| |
oxGetInt32(ostream); // discard the serial of OX_SYNC_BALL |
| |
goto aaa ; |
| |
} |
| |
break; |
| |
} |
| |
aaa: |
| /* or stdout */ |
/* or stdout */ |
| fflush(NULL); |
fflush(NULL); |
| if (mtag == -1) { |
if (mtag == -1) { |
| fprintf(stderr,"Your peer seems to be dead.\n"); return; |
fprintf(stderr,"Your peer seems to be dead.\n"); return 0; |
| } |
} |
| } |
} |
| } |
} |
| Line 921 static void cancelConnection() { |
|
| Line 941 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 |
| } |
} |
| |
|
| Line 950 oxclientp oxCreateClient2(int fdstream,int portStream, |
|
| Line 970 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 1000 oxclientp oxCreateClient2(int fdstream,int portStream, |
|
| Line 1020 oxclientp oxCreateClient2(int fdstream,int portStream, |
|
| 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", |