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) { |
} |
} |