version 1.28, 2015/09/27 08:12:42 |
version 1.31, 2016/08/29 01:15:01 |
|
|
/* $OpenXM: OpenXM/src/kan96xx/plugin/oxmisc.c,v 1.27 2013/11/06 06:23:24 takayama 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" |
|
|
#if defined(__MSYS__) |
|
#define setjmp(e) _setjmp(e) |
|
#define sigsetjmp(e,n) _setjmp(e) |
|
#endif |
|
|
|
#define READBUFSIZE 5000 |
#define READBUFSIZE 5000 |
|
|
Line 180 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) { |
Line 926 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 955 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 1005 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", |