[BACK]Return to oxf_old.c CVS log [TXT][DIR] Up to [local] / OpenXM / src / ox_toolkit

Diff for /OpenXM/src/ox_toolkit/oxf_old.c between version 1.1 and 1.8

version 1.1, 2000/10/10 05:23:21 version 1.8, 2009/03/20 18:41:16
Line 1 
Line 1 
 /* -*- mode: C; coding: euc-japan -*- */  /* -*- mode: C; coding: euc-japan -*- */
 /* $OpenXM$ */  /* $OpenXM: OpenXM/src/ox_toolkit/oxf_old.c,v 1.7 2003/09/15 09:31:42 ohara Exp $ */
   
 /* このモジュールは互換性のためのものです。*/  /* このモジュールは互換性のためのものです。*/
   
Line 7 
Line 7 
 #include <stdlib.h>  #include <stdlib.h>
 #include <string.h>  #include <string.h>
 #include <unistd.h>  #include <unistd.h>
 #include <errno.h>  
 #include <fcntl.h>  #include <fcntl.h>
 #include <sys/file.h>  #include <sys/file.h>
 #include <sys/param.h>  #include <sys/param.h>
 #include <time.h>  #include <time.h>
   
   #if defined(__sun__)
   #include <netdb.h>
   #include <sys/types.h>
   #include <netinet/in.h>
   #endif
   
 #include "mysocket.h"  #include "mysocket.h"
 #include "ox_toolkit.h"  #include "ox_toolkit.h"
   
Line 22  OXFILE *oxf_control_set(OXFILE *oxfp, OXFILE *ctl)
Line 27  OXFILE *oxf_control_set(OXFILE *oxfp, OXFILE *ctl)
         return oxfp;          return oxfp;
 }  }
   
   static char *OpenXM_HOME = "/usr/local/OpenXM";
 static char *concat_openxm_home_bin(char *s);  static char *concat_openxm_home_bin(char *s);
   
 OXFILE *         ox_start(char* host, char* prog1, char* prog2);  OXFILE *         ox_start(char* host, char* prog1, char* prog2);
Line 77  static OXFILE *mysocketAccept2(int listened, char *pas
Line 83  static OXFILE *mysocketAccept2(int listened, char *pas
 static char *concat_openxm_home_bin(char *s)  static char *concat_openxm_home_bin(char *s)
 {  {
     char *path;      char *path;
     char *base;  
   
     /* if s includes '/' then it is not concaticated. */      /* if s includes '/' then it is not concaticated. */
     if (strchr(s, '/') != NULL) {      if (strchr(s, '/') != NULL) {
         return s;          return s;
     }      }
   
     base = getenv("OpenXM_HOME");      path = MALLOC(strlen(OpenXM_HOME)+6+strlen(s));
     path = malloc(strlen(base)+6+strlen(s));      sprintf(path, "%s/bin/%s", OpenXM_HOME, s);
     sprintf(path, "%s/bin/%s", base, s);  
     return path;      return path;
 }  }
   
 void set_OpenXM_HOME()  void set_OpenXM_HOME()
 {  {
     /* Solaris does not have the setenv(). */          char *e;
     if (getenv("OpenXM_HOME") == NULL) {          if ((e = getenv("OpenXM_HOME")) != NULL
         putenv("OpenXM_HOME=/usr/local/OpenXM");  #if defined(__CYGWIN__)
                   || (e = getenv("OPENXM_HOME")) != NULL
   #endif
                   ) {
                   OpenXM_HOME = e;
     }      }
 }  }
   
 void ox_exec_local(char* host, char* ctl_prog, char* dat_prog, int portControl, int portStream, char *passwd)  void ox_exec_local(char* ctl_prog, char* dat_prog, int portControl, int portStream, char *passwd)
 {  {
     char  ctl[128], dat[128];      char  ctl[128], dat[128];
       char localhost[MAXHOSTNAMELEN];
   
     sprintf(ctl, "%d", portControl);      sprintf(ctl, "%d", portControl);
     sprintf(dat, "%d", portStream);      sprintf(dat, "%d", portStream);
Line 109  void ox_exec_local(char* host, char* ctl_prog, char* d
Line 118  void ox_exec_local(char* host, char* ctl_prog, char* d
     ctl_prog = concat_openxm_home_bin(ctl_prog);      ctl_prog = concat_openxm_home_bin(ctl_prog);
     dat_prog = concat_openxm_home_bin(dat_prog);      dat_prog = concat_openxm_home_bin(dat_prog);
   
     if (fork() == 0) {      if (gethostname(localhost, MAXHOSTNAMELEN)==0) {
         execlp("oxlog", "oxlog", "xterm", "-icon", "-e", ctl_prog,                  if (fork() == 0) {
               "-reverse", "-ox", dat_prog,                          execlp("oxlog", "oxlog", "xterm", "-icon", "-e", ctl_prog,
               "-data", dat, "-control", ctl, "-pass", passwd,                                     "-reverse", "-ox", dat_prog,
               "-host", host, NULL);                                     "-data", dat, "-control", ctl, "-pass", passwd,
         exit(1);                                     "-host", localhost, NULL);
     }                          exit(1);
                   }
           }
 }  }
   
 /*  /*
Line 133  OXFILE *ox_start(char* host, char* ctl_prog, char* dat
Line 143  OXFILE *ox_start(char* host, char* ctl_prog, char* dat
     OXFILE *st, *ct;      OXFILE *st, *ct;
     char *passwd = generate_otp();      char *passwd = generate_otp();
     int   listen[2];      int   listen[2];
     short ports[2] = {0};  /* short! */      int   ports[2] = {0};
   
     listen[0] = mysocketListen(host, &ports[0]);          /* host を無視 */
     listen[1] = mysocketListen(host, &ports[1]);      listen[0] = oxf_listen(&ports[0]);
       listen[1] = oxf_listen(&ports[1]);
   
     ox_exec_local(host, ctl_prog, dat_prog, ports[0], ports[1], passwd);      ox_exec_local(ctl_prog, dat_prog, ports[0], ports[1], passwd);
   
     ct = mysocketAccept2(listen[0], passwd);      ct = mysocketAccept2(listen[0], passwd);
     if (ct != NULL) {      if (ct != NULL) {
         usleep(10);   /* zzz... */          usleep(10);   /* zzz... */
Line 176  OXFILE *ox_start_insecure(char* host, short portContro
Line 186  OXFILE *ox_start_insecure(char* host, short portContro
 /* ssh -f host oxlog xterm -e ox -ox ox_asir ... */  /* ssh -f host oxlog xterm -e ox -ox ox_asir ... */
 void ssh_ox_server(char *remote_host, char *ctl_prog, char *dat_prog, short portControl, short portStream)  void ssh_ox_server(char *remote_host, char *ctl_prog, char *dat_prog, short portControl, short portStream)
 {  {
       char buf[2][10];
   /*
     ctl_prog = concat_openxm_home_bin(ctl_prog);      ctl_prog = concat_openxm_home_bin(ctl_prog);
     dat_prog = concat_openxm_home_bin(dat_prog);      dat_prog = concat_openxm_home_bin(dat_prog);
   */
   
     if (fork() == 0) {      if (fork() == 0) {
   
           sprintf(buf[0], "%hd", portStream);
           sprintf(buf[1], "%hd", portControl);
   
         execlp("ssh", "ssh", "-f", remote_host, "oxlog", "xterm", "-icon",          execlp("ssh", "ssh", "-f", remote_host, "oxlog", "xterm", "-icon",
               "-e", ctl_prog, "-insecure", "-ox", dat_prog,                "-e", ctl_prog, "-insecure", "-ox", dat_prog,
               "-data", portStream, "-control", portControl,                "-data", buf[0], "-control", buf[1],
               "-host", remote_host, NULL);                "-host", remote_host, NULL);
         exit(1);          exit(1);
     }      }
   
       sleep(1); /* wait ssh */
 }  }
   
 OXFILE *ox_start_remote_with_ssh(char *dat_prog, char* remote_host)  OXFILE *ox_start_remote_with_ssh(char *dat_prog, char* remote_host)
Line 193  OXFILE *ox_start_remote_with_ssh(char *dat_prog, char*
Line 212  OXFILE *ox_start_remote_with_ssh(char *dat_prog, char*
     ssh_ox_server(remote_host, "ox", dat_prog, 1200, 1300);      ssh_ox_server(remote_host, "ox", dat_prog, 1200, 1300);
     return ox_start_insecure(remote_host, 1200, 1300);      return ox_start_insecure(remote_host, 1200, 1300);
 }  }
   

Legend:
Removed from v.1.1  
changed lines
  Added in v.1.8

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>