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

Diff for /OpenXM/src/ox_toolkit/oxf.c between version 1.9 and 1.15

version 1.9, 2000/12/03 16:15:03 version 1.15, 2003/03/23 20:17:35
Line 1 
Line 1 
 /* -*- mode: C; coding: euc-japan -*- */  /* -*- mode: C; coding: euc-japan -*- */
 /* $OpenXM: OpenXM/src/ox_toolkit/oxf.c,v 1.8 2000/12/01 07:27:03 ohara Exp $ */  /* $OpenXM: OpenXM/src/ox_toolkit/oxf.c,v 1.14 2003/01/13 12:03:12 ohara Exp $ */
   
 /*  /*
    This module includes functions for sending/receiveng CMO's.     This module includes functions for sending/receiveng CMO's.
Line 16 
Line 16 
 #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 81  static int receive_int32_lbo(OXFILE *oxfp)
Line 87  static int receive_int32_lbo(OXFILE *oxfp)
 OXFILE *oxf_open(int fd)  OXFILE *oxf_open(int fd)
 {  {
     OXFILE *oxfp = (OXFILE *)malloc(sizeof(OXFILE));      OXFILE *oxfp = (OXFILE *)malloc(sizeof(OXFILE));
       oxfp = (OXFILE *)malloc(sizeof(OXFILE));
     oxfp->fd = fd;      oxfp->fd = fd;
     oxfp->send_int32    = send_int32_nbo;      oxfp->send_int32    = send_int32_nbo;
     oxfp->receive_int32 = receive_int32_nbo;      oxfp->receive_int32 = receive_int32_nbo;
Line 170  int oxf_listen(short *portp)
Line 177  int oxf_listen(short *portp)
 OXFILE *oxf_connect_active(char *hostname, short port)  OXFILE *oxf_connect_active(char *hostname, short port)
 {  {
     int fd = mysocketOpen(hostname, port);      int fd = mysocketOpen(hostname, port);
     return oxf_open(fd);      return (fd < 0)? NULL: oxf_open(fd);
 }  }
   
 OXFILE *oxf_connect_passive(int listened)  OXFILE *oxf_connect_passive(int listened)
 {  {
     int fd = mysocketAccept(listened);      int fd = mysocketAccept(listened);
     return oxf_open(fd);      return (fd < 0)? NULL: oxf_open(fd);
 }  }
   
 #define LENGTH_OF_ONETIME_PASSWORD 64  #define LENGTH_OF_ONETIME_PASSWORD 64
Line 263  int oxc_start(char *remote_host, short port, char *pas
Line 270  int oxc_start(char *remote_host, short port, char *pas
     if (gethostname(localhost, MAXHOSTNAMELEN)==0) {      if (gethostname(localhost, MAXHOSTNAMELEN)==0) {
         if ((pid = fork()) == 0) {          if ((pid = fork()) == 0) {
             sprintf(ports, "%d", port);              sprintf(ports, "%d", port);
 #ifdef DEBUG              ox_printf("oxf.c:: oxc_start() does %s(ssh) -f %s -h %s -p %s -c %s\n", remote_host, cmd, localhost, ports, passwd);
             fprintf(stderr, "oxf.c:: oxc_start() does %s(ssh) -f %s -h %s -p %s -c %s\n", remote_host, cmd, localhost, ports, passwd);  
 #endif  
             execlp("ssh", remote_host, "-f", cmd,              execlp("ssh", remote_host, "-f", cmd,
                   "-h", localhost, "-p", ports,"-c", passwd, NULL);                    "-h", localhost, "-p", ports,"-c", passwd, NULL);
         }          }
Line 345  OXFILE *oxf_execute_cmd(OXFILE *oxfp, char *cmd)
Line 350  OXFILE *oxf_execute_cmd(OXFILE *oxfp, char *cmd)
     int listened;      int listened;
   
     if ((listened = oxf_listen(&port)) != -1) {      if ((listened = oxf_listen(&port)) != -1) {
         send_ox_cmo(oxfp, (cmo *)new_cmo_int32(port));                  cmo_list *args =  list_appendl(NULL, list_append(new_cmo_list(), new_cmo_int32(port)), new_cmo_string(cmd), NULL);
         send_ox_cmo(oxfp, (cmo *)new_cmo_string(cmd));                  send_ox_cmo(oxfp, (cmo *)args);
         send_ox_cmo(oxfp, (cmo *)new_cmo_int32(2));  /* number of arguments */          send_ox_command(oxfp, SM_control_spawn_server);
         send_ox_cmo(oxfp, (cmo *)new_cmo_string("oxc_open"));  
         send_ox_command(oxfp, SM_executeFunction);  
         return oxf_connect_passive(listened);          return oxf_connect_passive(listened);
     }      }
     return NULL;      return NULL;

Legend:
Removed from v.1.9  
changed lines
  Added in v.1.15

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