=================================================================== RCS file: /home/cvs/OpenXM/src/kxx/oxd.c,v retrieving revision 1.1 retrieving revision 1.2 diff -u -p -r1.1 -r1.2 --- OpenXM/src/kxx/oxd.c 2002/10/20 13:13:35 1.1 +++ OpenXM/src/kxx/oxd.c 2002/10/20 23:38:12 1.2 @@ -1,5 +1,5 @@ /* - $OpenXM$ + $OpenXM: OpenXM/src/kxx/oxd.c,v 1.1 2002/10/20 13:13:35 takayama Exp $ */ #include @@ -20,6 +20,8 @@ char *getTag(char *s); char *getKeyValue(char *s,char *key); char *getBody(char *s); +char *getOpenXMpath(void); +void *xtagMalloc(int n); int MyServerPid; #define SERVERNAME_SIZE 4096 @@ -39,23 +41,17 @@ main(int argc, char *argv[]) { int fdControl = -1; int portControl = 8089; extern int OpenedSocket; extern int Serial; - int sleepingTime = 0; int result; int fd; strcpy(sname,"localhost"); i = 1; while (i SIZE*2) exitServer2(fp,"too big body."); - sprintf(ccc,"/usr/local/bin/openxm %s",body); - fprintf(stderr,"Serial=%d : Executing command=%s\n",ccc); + openxm = getOpenXMpath(); + sprintf(ccc,"%s %s",openxm,body); + fprintf(stderr,"Serial=%d : Executing command=%s\n",Serial,ccc); fprintf(fp,"\n"); fflush(NULL); fclose(fp); /* close the connection */ system(ccc); - fprintf(stderr,"Serial=%d : The following command is finished : %s\n",ccc); + fprintf(stderr,"Serial=%d : The following command is finished : %s\n",Serial,ccc); } +char *getOpenXMpath() { + char *s; + char *sss; + s = getenv("OpenXM_HOME"); + if (s == NULL) { + s = getenv("OPENXM_HOME"); + } + if (s == NULL) sss="/usr/local/bin/openxm"; + else { + sss = (char *) xtagMalloc(strlen(s)+20); + sprintf(sss,"%s/bin/openxm",s); + } + if (access(sss,X_OK&R_OK) == 0) { + }else{ + oxdError("The shell script openxm does not exists. It is usually generated under OpenXM/rc"); + } + return sss; +} /* These are dummy. It is defined in stackmachine.c */ unlockCtrlCForOx() { ; }