version 1.29, 2006/01/10 11:52:56 |
version 1.34, 2015/09/25 01:47:09 |
|
|
/* $OpenXM: OpenXM/src/util/ox_pathfinder.c,v 1.28 2004/10/14 10:08:09 takayama Exp $ */ |
/* $OpenXM: OpenXM/src/util/ox_pathfinder.c,v 1.33 2015/08/06 22:33:21 takayama Exp $ */ |
/* Moved from misc-2003/07/cygwin/test.c */ |
/* Moved from misc-2003/07/cygwin/test.c */ |
|
|
#include <stdio.h> |
#include <stdio.h> |
|
|
#include <fcntl.h> |
#include <fcntl.h> |
#include <stdlib.h> |
#include <stdlib.h> |
#include <unistd.h> |
#include <unistd.h> |
|
#if (!defined(__MINGW32__) && !defined(__MINGW64__)) |
#include <sys/wait.h> |
#include <sys/wait.h> |
|
#else |
|
#include <_mingw.h> |
|
#endif |
#include <signal.h> |
#include <signal.h> |
#include <ctype.h> |
#include <ctype.h> |
#include <time.h> |
#include <time.h> |
#include <string.h> |
#include <string.h> |
#include "ox_pathfinder.h" |
#include "ox_pathfinder.h" |
|
|
|
void *sGC_malloc(int); |
|
|
int OX_P_stdin = -1; |
int OX_P_stdin = -1; |
int OX_P_stdout = -1; |
int OX_P_stdout = -1; |
int OX_P_stderr = -1; |
int OX_P_stderr = -1; |
Line 38 static int Verbose_get_home = 0; |
|
Line 44 static int Verbose_get_home = 0; |
|
static int Verbose = 1; |
static int Verbose = 1; |
static int NoX = 0; |
static int NoX = 0; |
static int ErrorVerbose = 1; |
static int ErrorVerbose = 1; |
|
static int EngineLogToStdout = 0; |
|
|
#define nomemory(a) {fprintf(stderr,"(%d) no more memory.\n",a);exit(10);} |
#define nomemory(a) {fprintf(stderr,"(%p) no more memory.\n",(void *)a);exit(10);} |
#define mymalloc(a) sGC_malloc(a) |
#define mymalloc(a) sGC_malloc(a) |
|
|
void pathFinderErrorVerbose(int k) { |
void pathFinderErrorVerbose(int k) { |
Line 121 void *sGC_malloc(int s) { return (void *) malloc(s); } |
|
Line 128 void *sGC_malloc(int s) { return (void *) malloc(s); } |
|
#define MYFORKCP_SIZE 100 |
#define MYFORKCP_SIZE 100 |
static int Myforkchildren[MYFORKCP_SIZE]; |
static int Myforkchildren[MYFORKCP_SIZE]; |
static int Myforkcp=0; |
static int Myforkcp=0; |
|
#if (!defined(__MINGW32__) && !defined(__MINGW64__)) |
static void myforkwait() { |
static void myforkwait() { |
int status; |
int status; |
int pid; |
int pid; |
Line 170 int oxForkExec(char **argv) { |
|
Line 178 int oxForkExec(char **argv) { |
|
sigaddset(&sss,SIGINT); |
sigaddset(&sss,SIGINT); |
sigprocmask(SIG_BLOCK,&sss,NULL); |
sigprocmask(SIG_BLOCK,&sss,NULL); |
} |
} |
if (NoX) { |
if (NoX && (!EngineLogToStdout)) { |
FILE *null; |
FILE *null; |
null = fopen("/dev/null","wb"); |
null = fopen("/dev/null","wb"); |
if (OX_P_stdout >= 0) dup2(OX_P_stdout,1); else dup2(fileno(null),1); |
if (OX_P_stdout >= 0) dup2(OX_P_stdout,1); else dup2(fileno(null),1); |
Line 215 int oxForkExecBlocked(char **argv) { |
|
Line 223 int oxForkExecBlocked(char **argv) { |
|
sigaddset(&sss,SIGINT); |
sigaddset(&sss,SIGINT); |
sigprocmask(SIG_BLOCK,&sss,NULL); |
sigprocmask(SIG_BLOCK,&sss,NULL); |
} |
} |
if (NoX) { |
if (NoX && (!EngineLogToStdout)) { |
FILE *null; |
FILE *null; |
null = fopen("/dev/null","wb"); |
null = fopen("/dev/null","wb"); |
if (OX_P_stdout >= 0) dup2(OX_P_stdout,1); else dup2(fileno(null),1); |
if (OX_P_stdout >= 0) dup2(OX_P_stdout,1); else dup2(fileno(null),1); |
Line 231 int oxForkExecBlocked(char **argv) { |
|
Line 239 int oxForkExecBlocked(char **argv) { |
|
exit(3); |
exit(3); |
} |
} |
} |
} |
|
#else |
|
static void myforkwait() { |
|
fprintf(stderr,"ERROR: myforkwait is not implented in mingw\n"); |
|
return; |
|
} |
|
int oxForkExec(char **argv) { |
|
/* cf. Kan/shell.c */ |
|
fprintf(stderr,"ERROR: oxForkExec is not implented in mingw\n"); |
|
return(-1); |
|
} |
|
int oxForkExecBlocked(char **argv) { |
|
fprintf(stderr,"ERROR: oxForkExecBlocked is not implented in mingw\n"); |
|
return(-1); |
|
} |
|
#endif |
|
|
static int getOStypei() { |
static int getOStypei() { |
/* |
/* |
Line 571 char *cygwinPathToWinPath(char *s) { |
|
Line 594 char *cygwinPathToWinPath(char *s) { |
|
} |
} |
|
|
if (ans[0] == '/') { |
if (ans[0] == '/') { |
|
#if defined(__CYGWIN64__) || (defined(__CYGWIN__) && defined(__x86_64__)) |
|
strcpy(ans,"C:\\cygwin64"); |
|
#else |
strcpy(ans,"C:\\cygwin"); |
strcpy(ans,"C:\\cygwin"); |
|
#endif |
strcat(ans,s); |
strcat(ans,s); |
} |
} |
|
|
Line 1132 int oxDeleteFile(char *fname) { |
|
Line 1159 int oxDeleteFile(char *fname) { |
|
/* This function just kills processes, so if there is a process which |
/* This function just kills processes, so if there is a process which |
uses ox protocol, it is not relevant to use this functions. |
uses ox protocol, it is not relevant to use this functions. |
*/ |
*/ |
|
#if (!defined(__MINGW32__) && !defined(__MINGW64__)) |
int oxKillAll(void) { |
int oxKillAll(void) { |
int i; |
int i; |
int pid; |
int pid; |
Line 1146 int oxKillAll(void) { |
|
Line 1174 int oxKillAll(void) { |
|
Myforkcp = 0; |
Myforkcp = 0; |
return(0); |
return(0); |
} |
} |
|
#else |
|
int oxKillAll(void) { |
|
fprintf(stderr,"ERROR: oxKillAll is not implented in mingw\n"); |
|
return(-1); |
|
} |
|
#endif |
void ox_pathfinder_quiet(void) { |
void ox_pathfinder_quiet(void) { |
Verbose_get_home = 0; |
Verbose_get_home = 0; |
Verbose = 0; |
Verbose = 0; |
Line 1204 int oxpSendStringAsFile(char *user,char *hostname, cha |
|
Line 1237 int oxpSendStringAsFile(char *user,char *hostname, cha |
|
|
|
char *oxpReadOneTimePasswordFromFile(char *filename) { |
char *oxpReadOneTimePasswordFromFile(char *filename) { |
} |
} |
|
|
|
int ox_pathfinderEngineLogToStdout(int state) { |
|
EngineLogToStdout = state; |
|
} |