[BACK]Return to oxmisc2.c CVS log [TXT][DIR] Up to [local] / OpenXM / src / kan96xx / plugin

Diff for /OpenXM/src/kan96xx/plugin/oxmisc2.c between version 1.20 and 1.27

version 1.20, 2003/12/06 02:35:54 version 1.27, 2013/11/06 06:23:24
Line 1 
Line 1 
 /* $OpenXM: OpenXM/src/kan96xx/plugin/oxmisc2.c,v 1.19 2003/11/17 08:49:16 takayama Exp $ */  /* $OpenXM: OpenXM/src/kan96xx/plugin/oxmisc2.c,v 1.26 2005/07/03 11:08:54 ohara Exp $ */
 #include <stdio.h>  #include <stdio.h>
   #include <string.h>
 #include "ox_kan.h"  #include "ox_kan.h"
 #include "oxmisc2.h"   /* This file requires sm1 object description. */  #include "oxmisc2.h"   /* This file requires sm1 object description. */
 #include "cmo.h"  #include "cmo.h"
Line 23  int oxGet(oxclientp client, struct object *op,int *isO
Line 24  int oxGet(oxclientp client, struct object *op,int *isO
   int ans;    int ans;
   ox_stream os;    ox_stream os;
   int m;    int m;
   struct object rob;    struct object rob = OINIT;
   int sss;  /* Serial number of the recieved packet. */    int sss;  /* Serial number of the recieved packet. */
   *isObj = 0;    *isObj = 0;
   op->tag = Snull;    op->tag = Snull;
Line 140  int oxReq(oxclientp client,int func,struct object ob)
Line 141  int oxReq(oxclientp client,int func,struct object ob)
        ob3         ob2 */         ob3         ob2 */
     /*     oxtags      [[OX_DATA, [cmo numbers]],[OX_DATA_LOCAL,[opt]],...]*/      /*     oxtags      [[OX_DATA, [cmo numbers]],[OX_DATA_LOCAL,[opt]],...]*/
     {      {
       struct object ob1;        struct object ob1 = OINIT;
       struct object ob2;        struct object ob2 = OINIT;
       struct object ob3;        struct object ob3 = OINIT;
       struct object obm;        struct object obm = OINIT;
       struct object smtags;        struct object smtags = OINIT;
       struct object oxtags;        struct object oxtags = OINIT;
       struct object ox;        struct object ox = OINIT;
       int n,i;        int n,i;
       struct mathCap mathcap;        struct mathCap mathcap;
   
Line 226  int oxReq(oxclientp client,int func,struct object ob)
Line 227  int oxReq(oxclientp client,int func,struct object ob)
     oxReqExecuteFunction(client->datafp2,KopString(ob));      oxReqExecuteFunction(client->datafp2,KopString(ob));
     client->dstate = DSTATE_ANY;      client->dstate = DSTATE_ANY;
     break;      break;
     case SM_executeFunctionWithOptionalArgument:
       if (ob.tag != Sdollar) {
         errorOxmisc2("SM_executeFunctionWithOptionalArgument : the argument must be a string.");
         return(-1);
       }
       oxReqExecuteFunctionWithOptionalArgument(client->datafp2,KopString(ob));
       client->dstate = DSTATE_ANY;
       break;
   case SM_popString:    case SM_popString:
     oxReqPopString(client->datafp2);      oxReqPopString(client->datafp2);
     client->dstate = DSTATE_ANY;      client->dstate = DSTATE_ANY;
Line 254  int oxReq(oxclientp client,int func,struct object ob)
Line 263  int oxReq(oxclientp client,int func,struct object ob)
     oxReqSingleOperand(client->datafp2,SM_dupErrors);      oxReqSingleOperand(client->datafp2,SM_dupErrors);
     client->dstate = DSTATE_ANY;      client->dstate = DSTATE_ANY;
     break;      break;
     case SM_pushCMOtag:
       oxReqSingleOperand(client->datafp2,SM_pushCMOtag);
       client->dstate = DSTATE_ANY;
       break;
   default:    default:
     fprintf(MyErrorOut,"func=%d ",func);      fprintf(MyErrorOut,"func=%d ",func);
     errorOxmisc2("This function is not implemented.");      errorOxmisc2("This function is not implemented.");
Line 265  int oxReq(oxclientp client,int func,struct object ob)
Line 278  int oxReq(oxclientp client,int func,struct object ob)
   
 struct object KoxCreateClient(struct object ip,  struct object KoxCreateClient(struct object ip,
                               struct object portStream,                                struct object portStream,
                               struct object portControl)                                struct object portControl,struct object pass)
 {  {
   struct object rob;    struct object rob = OINIT;
   oxclientp client;    oxclientp client;
     char *passControl; char *passData;
     struct object tob = OINIT;
     passControl = NULL; passData = NULL;
   rob.tag = Snull;    rob.tag = Snull;
   if (ip.tag != Sdollar) {    if (ip.tag != Sdollar) {
     errorOxmisc2("KoxCreateClient(): The first argument must be a hostname given by a string.");      errorOxmisc2("KoxCreateClient(): The first argument must be a hostname given by a string.");
Line 294  struct object KoxCreateClient(struct object ip,
Line 310  struct object KoxCreateClient(struct object ip,
     errorOxmisc2("KoxCreateClient(): The third argument must be a port number given in an integer.");      errorOxmisc2("KoxCreateClient(): The third argument must be a port number given in an integer.");
     return(rob);      return(rob);
   }    }
   client = oxCreateClient(KopString(ip),KopInteger(portStream),KopInteger(portControl));    if (pass.tag == Sarray) {
       if (getoaSize(pass) < 2) {
             errorOxmisc2("KoxCreateClient(): the fourth argument --- pass must be an array of strings.");
             return rob;
           }
       tob = getoa(pass,0);
           if (tob.tag != Sdollar) {
             errorOxmisc2("KoxCreateClient(): the fourth argument --- pass must be an array of strings.");
             return rob;
           }
       passControl = KopString(tob);
       tob = getoa(pass,1);
           if (tob.tag != Sdollar) {
             errorOxmisc2("KoxCreateClient(): the fourth argument --- pass must be an array of strings.");
             return rob;
           }
       passData = KopString(tob);
     }
     client = oxCreateClient(KopString(ip),KopInteger(portStream),KopInteger(portControl),passControl,passData);
   if (client == NULL) {    if (client == NULL) {
     errorOxmisc2("KoxCreateClient(): Open error.");      errorOxmisc2("KoxCreateClient(): Open error.");
     return(rob);      return(rob);
Line 333  static int isItClientObject(struct object ob)
Line 367  static int isItClientObject(struct object ob)
   
 struct object KoxIsThereErrorClient(struct object ob)  struct object KoxIsThereErrorClient(struct object ob)
 {  {
   struct object rob;    struct object rob = OINIT;
   int ans;    int ans;
   int size;    int size;
   oxclient cc;    oxclient cc;
Line 349  struct object KoxIsThereErrorClient(struct object ob)
Line 383  struct object KoxIsThereErrorClient(struct object ob)
   
 int oxClientToObject(oxclientp client,struct object rob)  int oxClientToObject(oxclientp client,struct object rob)
 {  {
   struct object ob;    struct object ob = OINIT;
   if (client == NULL) return;    if (client == NULL) return 0;
   /* rob = newObjectArray(N_OF_CLIENT_FIELDS); */    /* rob = newObjectArray(N_OF_CLIENT_FIELDS); */
   if (rob.tag != Sarray) {    if (rob.tag != Sarray) {
     errorOxmisc2("oxClientToObject(): the second argument must be an array.");      errorOxmisc2("oxClientToObject(): the second argument must be an array.");
Line 388  int oxClientToObject(oxclientp client,struct object ro
Line 422  int oxClientToObject(oxclientp client,struct object ro
   
 int oxObjectToClient(struct object ob,oxclientp cp)  int oxObjectToClient(struct object ob,oxclientp cp)
 {  {
   struct object ob1;    struct object ob1 = OINIT;
   struct object *obp;    struct object *obp;
   if (cp == NULL) {    if (cp == NULL) {
     errorOxmisc2("oxObjectToClient(): the second argument is NULL");      errorOxmisc2("oxObjectToClient(): the second argument is NULL");
Line 453  struct object KoxReq(struct object client,
Line 487  struct object KoxReq(struct object client,
 {  {
   int ans;    int ans;
   static oxclientp cc1 = NULL;    static oxclientp cc1 = NULL;
   struct object rob;    struct object rob = OINIT;
   rob.tag = Snull;    rob.tag = Snull;
   if (cc1 == NULL) {    if (cc1 == NULL) {
     cc1 = (oxclientp) mymalloc(sizeof(oxclient));      cc1 = (oxclientp) mymalloc(sizeof(oxclient));
Line 484  struct object KoxGet(struct object client)
Line 518  struct object KoxGet(struct object client)
 {  {
   int ans,k;    int ans,k;
   static oxclientp cc1 = NULL;    static oxclientp cc1 = NULL;
   struct object rob;    struct object rob = OINIT;
   rob.tag = Snull;    rob.tag = Snull;
   if (cc1 == NULL) {    if (cc1 == NULL) {
     cc1 = (oxclientp) mymalloc(sizeof(oxclient));      cc1 = (oxclientp) mymalloc(sizeof(oxclient));
Line 515  struct object KoxGetFromControl(struct object client)
Line 549  struct object KoxGetFromControl(struct object client)
 {  {
   int ans;    int ans;
   static oxclientp cc1 = NULL;    static oxclientp cc1 = NULL;
   struct object rob;    struct object rob = OINIT;
   rob.tag = Snull;    rob.tag = Snull;
   if (cc1 == NULL) {    if (cc1 == NULL) {
     cc1 = (oxclientp) mymalloc(sizeof(oxclient));      cc1 = (oxclientp) mymalloc(sizeof(oxclient));
Line 545  struct object KoxMultiSelect(struct object oclients,st
Line 579  struct object KoxMultiSelect(struct object oclients,st
   static int csize = 0;    static int csize = 0;
   static oxclientp *clients = NULL;    static oxclientp *clients = NULL;
   oxclientp cc1;    oxclientp cc1;
   struct object rob;    struct object rob = OINIT;
   int i;    int i;
   int tt;    int tt;
   struct object ob1;    struct object ob1 = OINIT;
   struct object ob2;    struct object ob2 = OINIT;
   struct object ob0;    struct object ob0 = OINIT;
   int size;    int size;
   int ans;    int ans;
   int dataready[1024];    int dataready[1024];
Line 615  struct object KoxWatch(struct object client,struct obj
Line 649  struct object KoxWatch(struct object client,struct obj
 {  {
   int ans,k;    int ans,k;
   static oxclientp cc1 = NULL;    static oxclientp cc1 = NULL;
   struct object rob;    struct object rob = OINIT;
   extern int WatchStream;    extern int WatchStream;
   rob.tag = Snull;    rob.tag = Snull;
   if (client.tag == Sinteger) {    if (client.tag == Sinteger) {
Line 624  struct object KoxWatch(struct object client,struct obj
Line 658  struct object KoxWatch(struct object client,struct obj
     }else{      }else{
       WatchStream = 0;        WatchStream = 0;
     }      }
     return;      return rob;
   }    }
   if (cc1 == NULL) {    if (cc1 == NULL) {
     cc1 = (oxclientp) mymalloc(sizeof(oxclient));      cc1 = (oxclientp) mymalloc(sizeof(oxclient));
Line 652  struct object KoxLog(struct object client,struct objec
Line 686  struct object KoxLog(struct object client,struct objec
 {  {
   int ans,k;    int ans,k;
   static oxclientp cc1 = NULL;    static oxclientp cc1 = NULL;
   struct object rob;    struct object rob = OINIT;
   rob.tag = Snull;    rob.tag = Snull;
   if (cc1 == NULL) {    if (cc1 == NULL) {
     cc1 = (oxclientp) mymalloc(sizeof(oxclient));      cc1 = (oxclientp) mymalloc(sizeof(oxclient));
Line 687  struct object KoxLog(struct object client,struct objec
Line 721  struct object KoxLog(struct object client,struct objec
   
 struct object KoxLogStop(struct object client) {  struct object KoxLogStop(struct object client) {
   static oxclientp cc1 = NULL;    static oxclientp cc1 = NULL;
   struct object rob;    struct object rob = OINIT;
   rob.tag = Snull;    rob.tag = Snull;
   if (cc1 == NULL) {    if (cc1 == NULL) {
     cc1 = (oxclientp) mymalloc(sizeof(oxclient));      cc1 = (oxclientp) mymalloc(sizeof(oxclient));
Line 709  struct object KoxLogStop(struct object client) {
Line 743  struct object KoxLogStop(struct object client) {
 struct object KoxCloseClient(struct object client) {  struct object KoxCloseClient(struct object client) {
   oxclientp cc1 = NULL;    oxclientp cc1 = NULL;
   oxclient cc;    oxclient cc;
   struct object rob;    struct object rob = OINIT;
   rob.tag = Snull;    rob.tag = Snull;
   cc1  = &cc;    cc1  = &cc;
   if (oxObjectToClient(client,cc1) == -1) return(rob);    if (oxObjectToClient(client,cc1) == -1) return(rob);
Line 818  static int cmoCheck00(struct object obj,int cmo[], int
Line 852  static int cmoCheck00(struct object obj,int cmo[], int
   
 int cmoCheckMathCap(struct object obj, struct object *obp)  int cmoCheckMathCap(struct object obj, struct object *obp)
 {  {
   struct object mathcap;    struct object mathcap = OINIT;
   struct object cmolist;    struct object cmolist = OINIT;
   struct object mathcapMain;    struct object mathcapMain = OINIT;
   struct object mathcapThird;    struct object mathcapThird = OINIT;
   struct object ox;    struct object ox = OINIT;
   struct object oxtag;    struct object oxtag = OINIT;
   struct object ob0;    struct object ob0 = OINIT;
   int oxsize;    int oxsize;
   int n;    int n;
   int i;    int i;
Line 936  int cmoCheckMathCap(struct object obj, struct object *
Line 970  int cmoCheckMathCap(struct object obj, struct object *
   
   
 struct object KoxGenPortFile(void) {  struct object KoxGenPortFile(void) {
   struct object ob;    struct object ob = OINIT;
   ob = KpoString(oxGenPortFile());    ob = KpoString(oxGenPortFile());
   return(ob);    return(ob);
 }  }
Line 946  void KoxRemovePortFile(void) {
Line 980  void KoxRemovePortFile(void) {
   
 void oxPushMathCap(struct mathCap *mathcap)  void oxPushMathCap(struct mathCap *mathcap)
 {  {
   struct object rob;    struct object rob = OINIT;
   rob = newMathCap(mathcap);    rob = newMathCap(mathcap);
   Kpush(rob);    Kpush(rob);
 }  }
   
 struct object KoxGenPass(void) {  struct object KoxGenPass(void) {
   struct object rob;    struct object rob = OINIT;
   rob = KpoString(oxGenPass());    rob = KpoString(oxGenPass());
   return(rob);    return(rob);
 }  }
   
 struct object KoxGetPort(struct object host)  struct object KoxGetPort(struct object host)
 {  {
   struct object rob;    struct object rob = OINIT;
   int fdStream, fdControl;    int fdStream, fdControl;
   int portStream, portControl;    int portStream, portControl;
   extern int OpenedSocket;    extern int OpenedSocket;
Line 983  struct object KoxGetPort(struct object host)
Line 1017  struct object KoxGetPort(struct object host)
 }  }
 struct object KoxGetPort1(struct object host)  struct object KoxGetPort1(struct object host)
 {  {
   struct object rob;    struct object rob = OINIT;
   int fdStream;    int fdStream;
   int portStream;    int portStream;
   extern int OpenedSocket;    extern int OpenedSocket;
Line 1006  struct object KoxCreateClient2(struct object peer,
Line 1040  struct object KoxCreateClient2(struct object peer,
                                struct object ipmask,                                 struct object ipmask,
                                struct object pass)                                 struct object pass)
 {  {
   struct object rob;    struct object rob = OINIT;
   oxclientp client;    oxclientp client;
   int fdStream, portStream, fdControl, portControl;    int fdStream, portStream, fdControl, portControl;
   int i;    int i;
   struct object ob1;    struct object ob1 = OINIT;
     struct object opassControl = OINIT;
     struct object opassData = OINIT;
   rob.tag = Snull;    rob.tag = Snull;
   if (peer.tag != Sarray) {    if (peer.tag != Sarray) {
     errorOxmisc2("KoxCreateClient2(): The first argument must be an array [fdStream, portStream, fdControl, portControl]");      errorOxmisc2("KoxCreateClient2(): The first argument must be an array [fdStream, portStream, fdControl, portControl]");
Line 1034  struct object KoxCreateClient2(struct object peer,
Line 1070  struct object KoxCreateClient2(struct object peer,
   if (ipmask.tag != Sinteger) {    if (ipmask.tag != Sinteger) {
     errorOxmisc2("KoxCreateClient2(): ipmask must be an integer.");      errorOxmisc2("KoxCreateClient2(): ipmask must be an integer.");
   }    }
   if (pass.tag != Sdollar) {    if (pass.tag == Sdollar) {
     errorOxmisc2("KoxCreateClient2(): pass must be a string.");      opassControl = pass; opassData = pass;
     }else if (pass.tag == Sarray) {
       if (getoaSize(pass) < 2) errorOxmisc2("KoxCreateClient2: #passArray < 2.");
       opassControl = getoa(pass,0);
       opassData = getoa(pass,1);
     }else{
       errorOxmisc2("KoxCreateClient2(): pass must be a string or an array.");
   }    }
     if ((opassControl.tag != Sdollar) || (opassData.tag != Sdollar)) {
       errorOxmisc2("KoxCreateClient2(): opassControl or opassData must be a string.");
     }
   
   client = oxCreateClient2(fdStream, portStream, fdControl, portControl,    client = oxCreateClient2(fdStream, portStream, fdControl, portControl,
                            KopInteger(ipmask), KopString(pass));                             KopInteger(ipmask),
                              KopString(opassControl),KopString(opassData));
   if (client == NULL) {    if (client == NULL) {
     errorOxmisc2("KoxCreateClient2(): Open error.");      errorOxmisc2("KoxCreateClient2(): Open error.");
     return(rob);      return(rob);
Line 1065  errorOxmisc2(char *s) {
Line 1111  errorOxmisc2(char *s) {
 struct object KoxPushCMD(struct object client,struct object cmd) {  struct object KoxPushCMD(struct object client,struct object cmd) {
   int ans;    int ans;
   static oxclientp cc1 = NULL;    static oxclientp cc1 = NULL;
   struct object rob;    struct object rob = OINIT;
   rob.tag = Snull;    rob.tag = Snull;
   if (cc1 == NULL) {    if (cc1 == NULL) {
     cc1 = (oxclientp) mymalloc(sizeof(oxclient));      cc1 = (oxclientp) mymalloc(sizeof(oxclient));
Line 1096  struct object KoxPushCMD(struct object client,struct o
Line 1142  struct object KoxPushCMD(struct object client,struct o
 struct object KoxPushCMO(struct object client,struct object ob) {  struct object KoxPushCMO(struct object client,struct object ob) {
   int ans;    int ans;
   static oxclientp cc1 = NULL;    static oxclientp cc1 = NULL;
   struct object rob;    struct object rob = OINIT;
   rob.tag = Snull;    rob.tag = Snull;
   if (cc1 == NULL) {    if (cc1 == NULL) {
     cc1 = (oxclientp) mymalloc(sizeof(oxclient));      cc1 = (oxclientp) mymalloc(sizeof(oxclient));
Line 1134  oxclientp oxCreateControl_RFC_101(int fdstream,int por
Line 1180  oxclientp oxCreateControl_RFC_101(int fdstream,int por
                                   int ipmask,char *pass);                                    int ipmask,char *pass);
 struct object KoxCreateControl_RFC_101(struct object peer,struct object ipmask,struct object pass)  struct object KoxCreateControl_RFC_101(struct object peer,struct object ipmask,struct object pass)
 {  {
   struct object rob;    struct object rob = OINIT;
   oxclientp client;    oxclientp client;
   int fdStream, portStream;    int fdStream, portStream;
   int i;    int i;
   struct object ob1;    struct object ob1 = OINIT;
   rob.tag = Snull;    rob.tag = Snull;
   if (peer.tag != Sarray) {    if (peer.tag != Sarray) {
     errorOxmisc2("KoxCreateControl_RFC_101(): The first argument must be an array [fdStream, portStream]");      errorOxmisc2("KoxCreateControl_RFC_101(): The first argument must be an array [fdStream, portStream]");
Line 1249  oxclientp oxCreateEngine_RFC_101(int fdstream,int port
Line 1295  oxclientp oxCreateEngine_RFC_101(int fdstream,int port
                                  int ipmask,char *pass, int engineID);                                   int ipmask,char *pass, int engineID);
 struct object KoxCreateEngine_RFC_101(struct object peer,struct object ipmask,struct object pass, struct object engineID)  struct object KoxCreateEngine_RFC_101(struct object peer,struct object ipmask,struct object pass, struct object engineID)
 {  {
   struct object rob;    struct object rob = OINIT;
   oxclientp client;    oxclientp client;
   int fdStream, portStream;    int fdStream, portStream;
   int i;    int i;
   struct object ob1;    struct object ob1 = OINIT;
   rob.tag = Snull;    rob.tag = Snull;
   if (peer.tag != Sarray) {    if (peer.tag != Sarray) {
     errorOxmisc2("KoxCreateEngine_RFC_101(): The first argument must be an array [fdStream, portStream]");      errorOxmisc2("KoxCreateEngine_RFC_101(): The first argument must be an array [fdStream, portStream]");
Line 1391  static void KoxCleanClientList() {
Line 1437  static void KoxCleanClientList() {
   extern int OxClientListn;    extern int OxClientListn;
   extern struct object OxClientList[];    extern struct object OxClientList[];
   int i,j,n;    int i,j,n;
   struct object ob;    struct object ob = OINIT;
   n = 0;    n = 0;
   for (i=0; i<OxClientListn; i++) {    for (i=0; i<OxClientListn; i++) {
         if ((OxClientList[i]).tag != Snull) {          if ((OxClientList[i]).tag != Snull) {
Line 1405  struct object KoxGetClientList() {
Line 1451  struct object KoxGetClientList() {
   extern int OxClientListn;    extern int OxClientListn;
   extern struct object OxClientList[];    extern struct object OxClientList[];
   int i,j,n;    int i,j,n;
   struct object rob;    struct object rob = OINIT;
   KoxCleanClientList();    KoxCleanClientList();
   n = 0;    n = 0;
   for (i=0; i<OxClientListn; i++) {    for (i=0; i<OxClientListn; i++) {

Legend:
Removed from v.1.20  
changed lines
  Added in v.1.27

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