| version 1.24, 2004/03/04 05:13:39 |
version 1.29, 2006/01/10 11:52:56 |
|
|
| /* $OpenXM: OpenXM/src/util/ox_pathfinder.c,v 1.23 2004/03/03 08:39:24 takayama Exp $ */ |
/* $OpenXM: OpenXM/src/util/ox_pathfinder.c,v 1.28 2004/10/14 10:08:09 takayama Exp $ */ |
| /* Moved from misc-2003/07/cygwin/test.c */ |
/* Moved from misc-2003/07/cygwin/test.c */ |
| |
|
| #include <stdio.h> |
#include <stdio.h> |
| Line 37 static void msgPathFinder(char *s); |
|
| Line 37 static void msgPathFinder(char *s); |
|
| static int Verbose_get_home = 0; |
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; |
| |
|
| |
|
| #define nomemory(a) {fprintf(stderr,"(%d) no more memory.\n",a);exit(10);} |
#define nomemory(a) {fprintf(stderr,"(%d) no more memory.\n",a);exit(10);} |
| #define mymalloc(a) sGC_malloc(a) |
#define mymalloc(a) sGC_malloc(a) |
| |
|
| |
void pathFinderErrorVerbose(int k) { |
| |
static int prev; |
| |
if (k >= 0) { |
| |
prev = ErrorVerbose; |
| |
ErrorVerbose = k; |
| |
}else{ |
| |
ErrorVerbose = prev; |
| |
} |
| |
} |
| static void errorPathFinder(char *s) { |
static void errorPathFinder(char *s) { |
| /* Todo; we need to return the error message to the client if it is used |
/* Todo; we need to return the error message to the client if it is used |
| in ox_shell */ |
in ox_shell */ |
| fprintf(stderr,"Error: %s",s); |
if (ErrorVerbose) fprintf(stderr,"Error: %s",s); |
| } |
} |
| static void msgPathFinder(char *s) { |
static void msgPathFinder(char *s) { |
| /* Todo; we need to return the error message to the client if it is used |
/* Todo; we need to return the error message to the client if it is used |
| Line 635 char **getServerEnv(char *oxServer) { |
|
| Line 644 char **getServerEnv(char *oxServer) { |
|
| argv[i] = oxlog; i++; argv[i] = NULL; |
argv[i] = oxlog; i++; argv[i] = NULL; |
| if (!NoX) { |
if (!NoX) { |
| argv[i] = oxterm ; i++; argv[i] = NULL; |
argv[i] = oxterm ; i++; argv[i] = NULL; |
| argv[i] = oxtermOpt; i++; argv[i] = NULL; |
if (((char *)getenv("OX_XTERM_GEOMETRY")) != NULL) { |
| |
/* ex. OX_XTERM_GEOMETRY=80x20+0+0 */ |
| |
argv[i] = "-geometry"; i++; argv[i] = NULL; |
| |
argv[i] = (char *) getenv("OX_XTERM_GEOMETRY"); i++; argv[i] = NULL; |
| |
}else{ |
| |
argv[i] = oxtermOpt; i++; argv[i] = NULL; |
| |
} |
| |
/* dirty hack for buggy international xterm cf. OpenXM FAQ */ |
| |
argv[i] = "-xrm"; i++; argv[i] = NULL; |
| |
argv[i] = "XTerm*locale:false"; i++; argv[i] = NULL; |
| |
|
| if (((char *)getenv("OX_XTERM_SCROLL")) != NULL) { |
if (((char *)getenv("OX_XTERM_SCROLL")) != NULL) { |
| argv[i] = "-sb"; i++; argv[i] = NULL; |
argv[i] = "-sb"; i++; argv[i] = NULL; |
| argv[i] = "-sl"; i++; argv[i] = NULL; |
argv[i] = "-sl"; i++; argv[i] = NULL; |
| Line 1001 char *getCommandPath(char *cmdname) |
|
| Line 1020 char *getCommandPath(char *cmdname) |
|
| if (getFileSize(cmdname) >= 0) { /* Todo: isExecutableFile() */ |
if (getFileSize(cmdname) >= 0) { /* Todo: isExecutableFile() */ |
| }else{ |
}else{ |
| msg = (char *)mymalloc(strlen(cmdname)+30); |
msg = (char *)mymalloc(strlen(cmdname)+30); |
| sprintf(msg,"getCommandPath: %s is not found."); |
sprintf(msg,"getCommandPath: %s is not found.",cmdname); |
| errorPathFinder(msg); |
errorPathFinder(msg); |
| return NULL; |
return NULL; |
| } |
} |
| Line 1149 char *oxTermWhich_unix(int *typep) { |
|
| Line 1168 char *oxTermWhich_unix(int *typep) { |
|
| if (s != NULL) return s; |
if (s != NULL) return s; |
| |
|
| return NULL; |
return NULL; |
| |
} |
| |
|
| |
int oxpSendStringAsFile(char *user,char *hostname, char *filename, char *str) |
| |
{ |
| |
FILE *fp; |
| |
int i; |
| |
char *comm; |
| |
char *argv[10]; |
| |
mode_t oumask; |
| |
oumask = umask((mode_t) (64-1)); |
| |
/* 077=111 111 */ |
| |
fp = fopen(filename,"w"); |
| |
umask(oumask); |
| |
if (fp == NULL) { |
| |
return -1; |
| |
} |
| |
for (i=0; i <strlen(str); i++) { |
| |
fputc(str[i],fp); |
| |
} |
| |
fclose(fp); |
| |
if (strcmp(hostname,"localhost") == 0) return 0; |
| |
comm = (char *)malloc(strlen(user)+strlen(hostname)+strlen(filename)*2+1024); |
| |
if (comm == NULL) return -2; |
| |
|
| |
argv[0] = getCommandPath("scp"); |
| |
if (argv[0] == NULL) return -3; |
| |
argv[1] = filename; |
| |
comm = (char *)malloc(strlen(user)+strlen(hostname)+strlen(filename)+256); |
| |
sprintf(comm,"%s@%s:%s",user,hostname,filename); |
| |
argv[2] = comm; |
| |
argv[3] = NULL; |
| |
return oxForkExec(argv); |
| |
} |
| |
|
| |
char *oxpReadOneTimePasswordFromFile(char *filename) { |
| } |
} |