=================================================================== RCS file: /home/cvs/OpenXM/src/oxc/oxc.c,v retrieving revision 1.13 retrieving revision 1.15.2.1 diff -u -p -r1.13 -r1.15.2.1 --- OpenXM/src/oxc/oxc.c 2004/12/01 17:42:46 1.13 +++ OpenXM/src/oxc/oxc.c 2005/10/12 10:43:32 1.15.2.1 @@ -1,5 +1,5 @@ /* -*- mode: C -*- */ -/* $OpenXM: OpenXM/src/oxc/oxc.c,v 1.12 2003/05/07 04:00:30 ohara Exp $ */ +/* $OpenXM: OpenXM/src/oxc/oxc.c,v 1.15 2005/10/12 10:37:24 takayama Exp $ */ #include #include @@ -17,127 +17,116 @@ static char *password = ""; int oxf_connect_dup(char *remote, short port) { - int fd = mysocketOpen(remote, port); - /* Here do we need to confirm? */ - dup2(fd, 3); - dup2(fd, 4); /* is it necessary? maybe fd == 4. */ - return fd; + int fd = mysocketOpen(remote, port); + /* Here do we need to confirm? */ + dup2(fd, 3); + dup2(fd, 4); /* is it necessary? maybe fd == 4. */ + return fd; } int lf_oxc_open_main(char *cmd, short port) { - pid_t pid; - if ((pid = fork()) == 0) { - oxf_connect_dup(remote_host, port); - ox_printf("oxc: oxc_open(%s, %d)\n", cmd, port); - execlp(cmd, cmd, NULL); - } - return pid; /* if error, pid == 0 */ + pid_t pid; + if ((pid = fork()) == 0) { + oxf_connect_dup(remote_host, port); + ox_printf("oxc: oxc_open(%s, %d)\n", cmd, port); + execlp(cmd, cmd, NULL); + } + return pid; /* if error, pid == 0 */ } #define MAX_RETRY 2000 OXFILE *connection() { - OXFILE *oxfp; - int counter = MAX_RETRY; - while((oxfp = oxf_connect_active(remote_host, port)) == NULL) { - if (--counter > 0) { - usleep(100); /* spends 100 micro seconds */ - }else { - ox_printf("oxc: cannot connect.\n"); - return NULL; - } + OXFILE *oxfp; + int counter = MAX_RETRY; + while((oxfp = oxf_connect_active(remote_host, port)) == NULL) { + if (--counter > 0) { + usleep(100); /* spends 100 micro seconds */ + }else { + ox_printf("oxc: cannot connect.\n"); + return NULL; } - oxf_confirm_server(oxfp, password); - oxf_determine_byteorder_server(oxfp); - return oxfp; + } + oxf_confirm_server(oxfp, password); + oxf_determine_byteorder_server(oxfp); + return oxfp; } __inline__ static char *sskip(char *s) { - while (isspace(*s)) { - s++; - } - return s; + while (isspace(*s)) { + s++; + } + return s; } __inline__ static char *wskip(char *s) { - while (!isspace(*s) && *s != '\0') { - s++; - } - return s; + while (!isspace(*s) && *s != '\0') { + s++; + } + return s; } static int wc(char *s) { - int n = 0; + int n = 0; + s = sskip(s); + while(*s != '\0') { + s = wskip(s); s = sskip(s); - while(*s != '\0') { - s = wskip(s); - s = sskip(s); - n++; - } - return n; + n++; + } + return n; } static void word(char *str, int argc, char *argv[]) { - int i; - char *s = strcpy(malloc(strlen(str)+1), str); - for(i=0; ifd); - mathcap_init(20001006, "v2000.10.06", "oxc", basic0, NULL); - sm(oxfp); - } - return 0; + ox_printf("start connection!\n"); + usleep(delay); + if ((oxfp = connection()) != NULL) { + ox_printf("oxc: oxfp = %p, fd = %d\n", oxfp, oxfp->fd); + mathcap_init("v2000.10.06", "oxc"); + sm(oxfp); + } + return 0; }