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

Diff for /OpenXM/src/ox_toolkit/ox.c between version 1.6 and 1.7

version 1.6, 1999/12/22 11:26:37 version 1.7, 2000/01/17 19:55:55
Line 1 
Line 1 
 /* -*- mode: C; coding: euc-japan -*- */  /* -*- mode: C; coding: euc-japan -*- */
 /* $OpenXM: OpenXM/src/ox_toolkit/ox.c,v 1.5 1999/12/16 06:58:01 ohara Exp $ */  /* $OpenXM: OpenXM/src/ox_toolkit/ox.c,v 1.6 1999/12/22 11:26:37 ohara Exp $ */
   
 /*  /*
 関数の名前付け規約(その2):  関数の名前付け規約(その2):
Line 134  static cmo *call_hook_after_send_cmo(int fd, cmo *c)
Line 134  static cmo *call_hook_after_send_cmo(int fd, cmo *c)
         return c;          return c;
 }  }
   
 /* エラーハンドリングのため */  /* Handling an error. */
 static int current_received_serial = 0;  static int current_received_serial = 0;
   
 /* エラーを起こしたときにサーバは次を呼び出す.  */  /* If an error object be needed, then a server call the following function. */
 cmo_error2* make_error_object(int err_code, cmo *ob)  cmo_error2* make_error_object(int err_code, cmo *ob)
 {  {
     cmo_list* li = new_cmo_list();      cmo_list* li = new_cmo_list();
Line 152  cmo_error2* make_error_object(int err_code, cmo *ob)
Line 152  cmo_error2* make_error_object(int err_code, cmo *ob)
 #define DEFAULT_SERIAL_NUMBER 0x0000ffff  #define DEFAULT_SERIAL_NUMBER 0x0000ffff
 #define receive_serial_number(x)   (receive_int32(x))  #define receive_serial_number(x)   (receive_int32(x))
   
 /* 新しいシリアル番号を得る */  /* getting a next serial number. */
 int next_serial()  int next_serial()
 {  {
     static int serial_number = DEFAULT_SERIAL_NUMBER;      static int serial_number = DEFAULT_SERIAL_NUMBER;
     return serial_number++;      return serial_number++;
 }  }
   
 /* int32 型のオブジェクトを送信する.  */  /* sending an object of int32 type. (not equal to cmo_int32 type)  */
 int send_int32(int fd, int int32)  int send_int32(int fd, int int32)
 {  {
     int32 = htonl(int32);      int32 = htonl(int32);
     return write(fd, &int32, sizeof(int));      return write(fd, &int32, sizeof(int));
 }  }
   
 /* int32 型のオブジェクトを受信する.  */  /* receiving an object of int32 type. (not equal to cmo_int32 type)  */
 int receive_int32(int fd)  int receive_int32(int fd)
 {  {
     int tag;      int tag;
Line 174  int receive_int32(int fd)
Line 174  int receive_int32(int fd)
     return ntohl(tag);      return ntohl(tag);
 }  }
   
 /* (OX_tag, serial number) を受信する.  */  /* receiving an (OX_tag, serial number)  */
 int receive_ox_tag(int fd)  int receive_ox_tag(int fd)
 {  {
     int serial;      int serial;
Line 183  int receive_ox_tag(int fd)
Line 183  int receive_ox_tag(int fd)
     return tag;      return tag;
 }  }
   
 /* (OX_tag, serial number) を送信する.   */  /* sending an (OX_tag, serial number)  */
 int send_ox_tag(int fd, int tag)  int send_ox_tag(int fd, int tag)
 {  {
     send_int32(fd, tag);      send_int32(fd, tag);
     return send_int32(fd, next_serial());      return send_int32(fd, next_serial());
 }  }
   
 /* CMO_LIST 関係の関数群 */  /* functions for a cmo_list */
 cell* new_cell()  cell* new_cell()
 {  {
     cell* h = malloc(sizeof(cell));      cell* h = malloc(sizeof(cell));
Line 238  int length_cmo_list(cmo_list* this)
Line 238  int length_cmo_list(cmo_list* this)
     return this->length;      return this->length;
 }  }
   
 /** receive_cmo_XXX 関数群 **/  /* functions named receive_cmo_*. */
 static cmo_null* receive_cmo_null(int fd)  static cmo_null* receive_cmo_null(int fd)
 {  {
     return new_cmo_null();      return new_cmo_null();
Line 314  static cmo_dms_generic* receive_cmo_dms_generic(int fd
Line 314  static cmo_dms_generic* receive_cmo_dms_generic(int fd
 static cmo_ring_by_name* receive_cmo_ring_by_name(int fd)  static cmo_ring_by_name* receive_cmo_ring_by_name(int fd)
 {  {
     cmo* ob = receive_cmo(fd);      cmo* ob = receive_cmo(fd);
     /* 意味的チェックが必要 */          /* We need to check semantics but yet ... */
     return new_cmo_ring_by_name(ob);      return new_cmo_ring_by_name(ob);
 }  }
   
Line 412  static void resize_mpz(mpz_ptr mpz, int size)
Line 412  static void resize_mpz(mpz_ptr mpz, int size)
     mpz->_mp_size = size;      mpz->_mp_size = size;
 }  }
   
 /** new_cmo_XXX 関数群 **/  /* functions named new_cmo_*. */
 cmo_null* new_cmo_null()  cmo_null* new_cmo_null()
 {  {
     cmo_null* m = malloc(sizeof(cmo_null));      cmo_null* m = malloc(sizeof(cmo_null));
Line 498  cmo_zz* new_cmo_zz_set_si(int i)
Line 498  cmo_zz* new_cmo_zz_set_si(int i)
     return c;      return c;
 }  }
   
   cmo_zz* new_cmo_zz_set_mpz(mpz_ptr z)
   {
       cmo_zz* c = new_cmo_zz();
       mpz_set(c->mpz, z);
       return c;
   }
   
 cmo_zz *new_cmo_zz_set_string(char *s)  cmo_zz *new_cmo_zz_set_string(char *s)
 {  {
     cmo_zz* c = new_cmo_zz_noinit();      cmo_zz* c = new_cmo_zz_noinit();
Line 635  void ox_close(ox_file_t sv)
Line 642  void ox_close(ox_file_t sv)
 {  {
     send_ox_command(sv->control, SM_control_kill);      send_ox_command(sv->control, SM_control_kill);
 #ifdef DEBUG  #ifdef DEBUG
     sleep(2); /* OpenXM server の終了を待つ. あまり意味はない. */      sleep(2);
           /* We wait thar an OpenXM server terminates. */
     fprintf(stderr, "I have closed the connection to an Open XM server.\n");      fprintf(stderr, "I have closed the connection to an Open XM server.\n");
 #endif  #endif
 }  }
   
 void ox_shutdown(ox_file_t sv)  void ox_shutdown(ox_file_t sv)
 {  {
         /* 後で SM_shutdown を用いるものに書き換える予定. */          /* We need to use SM_shutdown but yet ... */
         ox_close(sv);          ox_close(sv);
 }  }
   
Line 668  void ox_push_cmd(ox_file_t sv, int sm_code)
Line 676  void ox_push_cmd(ox_file_t sv, int sm_code)
     send_ox_command(sv->stream, sm_code);      send_ox_command(sv->stream, sm_code);
 }  }
   
 /* ox_mathcap() をコールする.  */  
 cmo_mathcap* ox_mathcap(ox_file_t sv)  cmo_mathcap* ox_mathcap(ox_file_t sv)
 {  {
     send_ox_command(sv->stream, SM_mathcap);      send_ox_command(sv->stream, SM_mathcap);
Line 705  void ox_push_cmo(ox_file_t sv, cmo *c)
Line 712  void ox_push_cmo(ox_file_t sv, cmo *c)
         send_ox_cmo(sv->stream, c);          send_ox_cmo(sv->stream, c);
 }  }
   
 /* バッファのフラッシュの振りをする. */  /* a dummy function for flushing a connection. */
 int ox_flush(ox_file_t sv)  int ox_flush(ox_file_t sv)
 {  {
         return 1;          return 1;
 }  }
   
 /* 手抜き. (後で改善しよう...) */  /* a dummy password function. */
 static char *create_otp()  static char *create_otp()
 {  {
     static char otp[] = "otpasswd";      static char otp[] = "otpasswd";
     return otp;      return otp;
 }  }
   
 /* OneTimePassword の処理 */  /* proceeding an one time password. */
 static int login_with_otp(int fd, char* passwd)  static int login_with_otp(int fd, char* passwd)
 {  {
     int len   = strlen(passwd)+1;      int len   = strlen(passwd)+1;

Legend:
Removed from v.1.6  
changed lines
  Added in v.1.7

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