=================================================================== RCS file: /home/cvs/OpenXM/src/kxx/oxmain.c,v retrieving revision 1.6 retrieving revision 1.18 diff -u -p -r1.6 -r1.18 --- OpenXM/src/kxx/oxmain.c 2000/12/05 05:58:33 1.6 +++ OpenXM/src/kxx/oxmain.c 2004/09/17 07:27:28 1.18 @@ -1,7 +1,8 @@ -/* $OpenXM: OpenXM/src/kxx/oxmain.c,v 1.5 2000/07/30 09:55:40 takayama Exp $ */ +/* $OpenXM: OpenXM/src/kxx/oxmain.c,v 1.17 2004/03/03 02:31:50 takayama Exp $ */ /* nullserver01 */ #include #include +#include #include #include #include @@ -9,14 +10,17 @@ #include #include #include +#include /* -lnsl -lsocket /usr/ucblib/libucb.a */ #include "ox_kan.h" #include "serversm.h" #define SERVERNAME "ox_sm1" +extern char **environ; int OxCritical = 0; int OxInterruptFlag = 0; +int OxTerminateMode = 0; int SerialCurrentControl; @@ -32,7 +36,11 @@ int Do_not_use_control_stream_to_tell_no_server = 1; static void errorToStartEngine(void); static int findOxServer(char *server); static void couldNotFind(char *s); +/* gcc -v -c hoge.c */ +void *sGC_malloc(int n) { + return (void *)malloc(n); +} main(int argc, char *argv[]) { int fd; @@ -46,15 +54,20 @@ main(int argc, char *argv[]) { int reverse = 0; extern int OpenedSocket; char portfile[1024]; - char *pass; + char *pass = NULL; + char *passControl = NULL; + char *passData = NULL; int result; + int sleepingTime = 0; + extern int OxTerminateMode; + signal(SIGHUP,SIG_IGN); /* ignore x of xterm */ strcpy(sname,"localhost"); strcpy(ServerName,SERVERNAME); i = 1; if (argc == 1) { oxmainUsage(); - exit(); + exit(10); } while (i - for (i=5; i + for (i=5; i= 0) { - fprintf(stderr,"Starting OX server : %s\n",server); - close(fd); - return(0); + /* fd = open(server,O_RDONLY); */ + if (access(server,X_OK&R_OK) == 0) { + fprintf(stderr,"Starting OX server : %s\n",server); + return(0); } if (server[0] == '/') { - couldNotFind(server); - return(-1); + couldNotFind(server); + return(-1); } fprintf(stderr,"The server %s was not found. Trying to find it under OpenXM/bin\n",server); p = getenv("OpenXM_HOME"); @@ -339,16 +419,15 @@ static int findOxServer(char *server) { p2 = (char *) malloc(sizeof(char)*(strlen(p)+strlen("/bin/")+3+strlen(server))); if (p2 == NULL) { fprintf(stderr,"No more memory.\n"); exit(10); } strcpy(p2,p); strcat(p2,"/bin/"); strcat(p2,server); - fd = open(p2,O_RDONLY); - if (fd >= 0) { - fprintf(stderr,"Starting OX server : %s\n",p2); - if (strlen(p2) < SERVERNAME_SIZE) strcpy(server,p2); - else { - couldNotFind("Too long ox server name."); - return(-1); - } - close(fd); - return(0); + /* fd = open(p2,O_RDONLY); */ + if (access(p2,X_OK&R_OK) == 0) { + fprintf(stderr,"Starting OX server : %s\n",p2); + if (strlen(p2) < SERVERNAME_SIZE) strcpy(server,p2); + else { + couldNotFind("Too long ox server name."); + return(-1); + } + return(0); } couldNotFind(p2); return(-1);