[BACK]Return to oxserver00.c CVS log [TXT][DIR] Up to [local] / OpenXM / src / kxx

Diff for /OpenXM/src/kxx/oxserver00.c between version 1.5 and 1.8

version 1.5, 2001/05/06 07:53:01 version 1.8, 2002/11/04 10:53:57
Line 1 
Line 1 
 /* $OpenXM: OpenXM/src/kxx/oxserver00.c,v 1.4 2000/07/30 09:55:40 takayama Exp $ */  /* $OpenXM: OpenXM/src/kxx/oxserver00.c,v 1.7 2002/02/24 10:27:21 takayama Exp $ */
 /* nullserver01 */  /* nullserver01 */
 #include <stdio.h>  #include <stdio.h>
 #include <sys/types.h>  #include <sys/types.h>
Line 20  extern int SerialOX;  /* Serial number of the packets 
Line 20  extern int SerialOX;  /* Serial number of the packets 
 extern int SerialCurrent;  /* Current Serial number of the recieved packet. */  extern int SerialCurrent;  /* Current Serial number of the recieved packet. */
 extern int OXprintMessage; /* print oxmessages? */  extern int OXprintMessage; /* print oxmessages? */
   
   #if defined(__CYGWIN__)
   sigjmp_buf EnvOfChildServer;
   #else
 jmp_buf EnvOfChildServer;  jmp_buf EnvOfChildServer;
   #endif
   
 int JmpMessage = 0;  int JmpMessage = 0;
   
Line 64  main(int argc, char *argv[]) {
Line 68  main(int argc, char *argv[]) {
   
 static char *getSuffix(char *s) {  static char *getSuffix(char *s) {
   /* getSuffix("ox_sm1_forAsir") returns "forAsir" */    /* getSuffix("ox_sm1_forAsir") returns "forAsir" */
     /* getSuffix("ox_sm1_forAsir.exe") returns "forAsir" */
   /* getSuffix("ox_sm1_gnuplot") returns "gnuplot" */    /* getSuffix("ox_sm1_gnuplot") returns "gnuplot" */
   int n,i,k;    int n,i,k;
   n = strlen(s);    n = strlen(s);
     if (n > 5 && (strcmp(".exe",&(s[n-4]))==0 || strcmp(".EXE",&(s[n-4]))==0)) {
       s[n-4] = '\0';
     }
   for (i=n-1; i>=0; i--) {    for (i=n-1; i>=0; i--) {
     if (s[i] == '_') {      if (s[i] == '_') {
       return( s+i+1 );        return( s+i+1 );
Line 80  nullserver(int fdStream) {
Line 88  nullserver(int fdStream) {
   ox_stream ostream;    ox_stream ostream;
   char sreason[1024];    char sreason[1024];
   extern void controlResetHandler();    extern void controlResetHandler();
   #if defined(__CYGWIN__)
     extern sigjmp_buf EnvOfStackMachine;
   #else
   extern jmp_buf EnvOfStackMachine;    extern jmp_buf EnvOfStackMachine;
   #endif
   int engineByteOrder;    int engineByteOrder;
   
   fflush(NULL);    fflush(NULL);
Line 97  nullserver(int fdStream) {
Line 109  nullserver(int fdStream) {
     if (PacketMonitor) fp2watch(ostream,stdout);      if (PacketMonitor) fp2watch(ostream,stdout);
   }    }
   aaa : ;    aaa : ;
   #if defined(__CYGWIN__)
     if (sigsetjmp(EnvOfChildServer,1)) {
   #else
   if (setjmp(EnvOfChildServer)) {    if (setjmp(EnvOfChildServer)) {
   #endif
     fprintf(stderr,"childServerMain: jump here.\n");      fprintf(stderr,"childServerMain: jump here.\n");
     if (OxInterruptFlag == 0) {      if (OxInterruptFlag == 0) {
       fprintf(stderr," ?! \n"); fflush(NULL);        fprintf(stderr," ?! \n"); fflush(NULL);
Line 107  nullserver(int fdStream) {
Line 123  nullserver(int fdStream) {
     if (JmpMessage) fprintf(stderr,"Set EnvOfChildServer.\n");      if (JmpMessage) fprintf(stderr,"Set EnvOfChildServer.\n");
     signal(SIGUSR1,controlResetHandler);      signal(SIGUSR1,controlResetHandler);
   }    }
   #if defined(__CYGWIN__)
     if (sigsetjmp(EnvOfStackMachine,1)) {
   #else
   if (setjmp(EnvOfStackMachine)) {    if (setjmp(EnvOfStackMachine)) {
   #endif
     fprintf(stderr,"childServerMain: jump here by EnvOfStackMachine.\n");      fprintf(stderr,"childServerMain: jump here by EnvOfStackMachine.\n");
     if (OxInterruptFlag == 0) {      if (OxInterruptFlag == 0) {
       fprintf(stderr," ?! \n"); fflush(NULL);        fprintf(stderr," ?! \n"); fflush(NULL);
Line 308  void controlResetHandler(sig)
Line 327  void controlResetHandler(sig)
      int sig;       int sig;
 {  {
   signal(sig,SIG_IGN);    signal(sig,SIG_IGN);
     cancelAlarm();
   fprintf(stderr,"From controlResetHandler. OxCritical = %d\n",OxCritical);    fprintf(stderr,"From controlResetHandler. OxCritical = %d\n",OxCritical);
   OxInterruptFlag = 1;    OxInterruptFlag = 1;
   if (OxCritical) {    if (OxCritical) {
     return;      return;
   }else{    }else{
   #if defined(__CYGWIN__)
       siglongjmp(EnvOfChildServer,2); /* returns 2 for ctrl-C */
   #else
     longjmp(EnvOfChildServer,2); /* returns 2 for ctrl-C */      longjmp(EnvOfChildServer,2); /* returns 2 for ctrl-C */
   #endif
   }    }
 }  }
   

Legend:
Removed from v.1.5  
changed lines
  Added in v.1.8

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