
#include<stdio.h>
#include<stdlib.h>
#include<sys/types.h>
#include<unistd.h>
#include<sys/socket.h>
#include<sys/wait.h>
#include<string.h>
#include<netinet/in.h>
#include<arpa/inet.h>
#include<pthread.h>

#include"zither.h"
#include<almemsys/almemsys.h>
#include"jpreturn.h"



int com_check(char * chCOM)
{
int buck, count, co;
char ch[25][IP_LEN];
count = 0;
buck = 0;

// COM: で strtol_r()なので C,O,M, は使用出来ません

for(co = 0; co < 25; co++){
   memset(ch[co], 0x00, IP_LEN);
   }

char * non="NON";
char * get="GET";   // 未使用
char * put="PUT";   // 1.1.2未満互換用
char * life="LIFE"; 
char * quit="QUIT";
char * ver="VER";
char * neg="NEG";
char * bat="BAT";   // 1.1.2未満互換用
char * err="ERR";
char * set="SET";
char * stat="STAT";
char * setg="SETG";
char * statg="STATG";
// char * dif="DIF";      // 1.1.3以上
// char * undif="UNDIF";  // 1.1.3以上
char * up="UP";        // 1.1.3以上以後も使用
char * alget="ALGET";  // 1.1.7以上
char * aupl="AUPL";    // 1.1.7以上
char * slget="SLGET";   // 1.1.7以上
char * not="NOT";
// MID STAT 用
char * nig="NIG";
char * nir="NIR";
char * nis="NIS";

memcpy(ch[0], non, strlen(get));
memcpy(ch[1], get, strlen(get));
memcpy(ch[2], put, strlen(put));
memcpy(ch[3], life, strlen(life));
memcpy(ch[4], quit, strlen(quit));
memcpy(ch[5], ver, strlen(ver));
memcpy(ch[6], neg, strlen(neg));
memcpy(ch[7], bat, strlen(bat));
memcpy(ch[8], err, strlen(err));
memcpy(ch[9], set, strlen(set));
memcpy(ch[10], stat, strlen(stat));
memcpy(ch[11], setg, strlen(setg));
memcpy(ch[12], statg, strlen(statg));
// memcpy(ch[13], dif, strlen(dif));
// memcpy(ch[14], undif, strlen(undif));
memcpy(ch[13], up, strlen(up));
memcpy(ch[14], alget, strlen(alget));
memcpy(ch[15], aupl, strlen(aupl));
memcpy(ch[16], slget, strlen(slget));
memcpy(ch[17], nig, strlen(nig));
memcpy(ch[18], nir, strlen(nir));
memcpy(ch[19], nis, strlen(nis));
memcpy(ch[20], not, strlen(not));


buck = 0;
if(IP_LEN > (int)strlen(chCOM)){
   for(count=0; count < 21; count++){
      if(0 == self_memcmp(chCOM, ch[count])){
         buck=count;
         }
      }
   }
else{
   fprintf(stderr,"big size mess err. %s\n", chCOM);
   return 0;
   }

return(buck);
}




