[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.4 and 1.7

version 1.4, 2000/10/12 15:53:25 version 1.7, 2000/11/28 22:11:14
Line 1 
Line 1 
 /* -*- mode: C; coding: euc-japan -*- */  /* -*- mode: C; coding: euc-japan -*- */
 /* $OpenXM: OpenXM/src/ox_toolkit/oxf.c,v 1.3 2000/10/11 08:22:58 ohara Exp $ */  /* $OpenXM: OpenXM/src/ox_toolkit/oxf.c,v 1.6 2000/11/28 04:24:12 ohara Exp $ */
   
 /*  /*
    This module includes functions for sending/receiveng CMO's.     This module includes functions for sending/receiveng CMO's.
Line 19 
Line 19 
 #include "mysocket.h"  #include "mysocket.h"
 #include "ox_toolkit.h"  #include "ox_toolkit.h"
   
   static mathcap *oxf_mathcap(OXFILE *oxfp);
   
 static int send_int32_lbo(OXFILE *oxfp, int int32);  static int send_int32_lbo(OXFILE *oxfp, int int32);
 static int send_int32_nbo(OXFILE *oxfp, int int32);  static int send_int32_nbo(OXFILE *oxfp, int int32);
 static int receive_int32_lbo(OXFILE *oxfp);  static int receive_int32_lbo(OXFILE *oxfp);
Line 26  static int receive_int32_nbo(OXFILE *oxfp);
Line 28  static int receive_int32_nbo(OXFILE *oxfp);
   
 int oxf_read(void *buffer, size_t size, size_t num, OXFILE *oxfp)  int oxf_read(void *buffer, size_t size, size_t num, OXFILE *oxfp)
 {  {
         int n = read(oxfp->fd, buffer, size*num);      int n = read(oxfp->fd, buffer, size*num);
         if (n <= 0) {      if (n <= 0) {
                 oxfp->error = 1;          oxfp->error = 1;
         }      }
     return n;      return n;
 }  }
   
Line 82  OXFILE *oxf_open(int fd)
Line 84  OXFILE *oxf_open(int fd)
     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;
         oxfp->control = NULL;      oxfp->serial_number = 0;
         oxfp->error = 0;      oxfp->control = NULL;
       oxfp->error = 0;
       oxfp->mathcap = NULL;
     return oxfp;      return oxfp;
     /* oxfp->fp = fdopen(fd, "a+"); */      /* oxfp->fp = fdopen(fd, "a+"); */
     /* return (oxfp->fp != NULL)? oxfp: NULL; */      /* return (oxfp->fp != NULL)? oxfp: NULL; */
 }  }
   
   int oxf_fileno(OXFILE *oxfp)
   {
       return oxfp->fd;
   }
   
 OXFILE *oxf_control(OXFILE *oxfp)  OXFILE *oxf_control(OXFILE *oxfp)
 {  {
         return oxfp->control;      return oxfp->control;
 }  }
   
 /* The function determines a byte order of integer on the OpenXM  /* The function determines a byte order of integer on the OpenXM
Line 154  int oxf_listen(short *portp)
Line 163  int oxf_listen(short *portp)
 {  {
     char localhost[MAXHOSTNAMELEN];      char localhost[MAXHOSTNAMELEN];
     if (gethostname(localhost, MAXHOSTNAMELEN)==0) {      if (gethostname(localhost, MAXHOSTNAMELEN)==0) {
                 return mysocketListen(localhost, portp);          return mysocketListen(localhost, portp);
         }      }
         return -1;      return -1;
 }  }
   
 OXFILE *oxf_connect_active(char *hostname, short port)  OXFILE *oxf_connect_active(char *hostname, short port)
Line 176  OXFILE *oxf_connect_passive(int listened)
Line 185  OXFILE *oxf_connect_passive(int listened)
 /* a password generator. */  /* a password generator. */
 char *generate_otp()  char *generate_otp()
 {  {
         static char crypto[] = "%.,^_+-=/@0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";      static char crypto[] = "%.,^_+-=/@0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
     static char otp[LENGTH_OF_ONETIME_PASSWORD+1] = {0};      static char otp[LENGTH_OF_ONETIME_PASSWORD+1] = {0};
     int i;      int i;
   
Line 204  int oxf_confirm_server(OXFILE *oxfp, char *passwd)
Line 213  int oxf_confirm_server(OXFILE *oxfp, char *passwd)
     return oxf_write(passwd, 1, strlen(passwd)+1, oxfp);      return oxf_write(passwd, 1, strlen(passwd)+1, oxfp);
 }  }
   
   __inline__
   static mathcap *oxf_mathcap(OXFILE *oxfp)
   {
       if (oxfp->mathcap == NULL) {
           oxfp->mathcap = new_mathcap();
       }
           return oxfp->mathcap;
   }
   
   cmo_mathcap *oxf_cmo_mathcap(OXFILE *oxfp)
   {
           return mathcap_get(oxf_mathcap(oxfp));
   }
   
   void oxf_mathcap_update(OXFILE *oxfp, cmo_mathcap *ob)
   {
       mathcap_update(oxf_mathcap(oxfp), ob);
   }
   
 /* example: which("xterm", getenv("PATH")); */  /* example: which("xterm", getenv("PATH")); */
 char *which(char *exe, const char *env)  char *which(char *exe, const char *env)
 {  {
Line 249  int oxc_start(char *remote_host, short port, char *pas
Line 277  int oxc_start(char *remote_host, short port, char *pas
 /*  Example: oxf_execute_cmd(oxfp, "ox_sm1"); */  /*  Example: oxf_execute_cmd(oxfp, "ox_sm1"); */
 OXFILE *oxf_execute_cmd(OXFILE *oxfp, char *cmd)  OXFILE *oxf_execute_cmd(OXFILE *oxfp, char *cmd)
 {  {
         short port = 0;      short port = 0;
         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));          send_ox_cmo(oxfp, (cmo *)new_cmo_int32(port));
                 send_ox_cmo(oxfp, (cmo *)new_cmo_string(cmd));          send_ox_cmo(oxfp, (cmo *)new_cmo_string(cmd));
                 send_ox_cmo(oxfp, (cmo *)new_cmo_int32(2));  /* number of arguments */          send_ox_cmo(oxfp, (cmo *)new_cmo_int32(2));  /* number of arguments */
                 send_ox_cmo(oxfp, (cmo *)new_cmo_string("oxc_open"));          send_ox_cmo(oxfp, (cmo *)new_cmo_string("oxc_open"));
                 send_ox_command(oxfp, SM_executeFunction);          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.4  
changed lines
  Added in v.1.7

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