// 新規の場合に限り、ローカルDBにある数を、Zitherがわに登録する。
// 通常このケースは無い


#include<stdio.h>
#include<unistd.h>
#include<sys/wait.h>
#include<netinet/in.h>
#include<string.h>
#include<stdlib.h>

#include"sitar.h"
#include"sitar_com.h"
#include<almemsys/almemsys.h>
#include"jpreturn.h"
#include<file_comp/file_comp.h>

extern global_data_t gd;
extern pthread_mutex_t fd_mutex;


char mid_setserver(char * midname, int count, int interval)
{
int ret, stat;
char * buf;
char * back;

ret = -3;
stat = 0;
buf = (char *)calloc(BUF_LEN, sizeof(char));
back = (char *)calloc(BUF_LEN, sizeof(char));

if(count < 0){
   count = 0;
   }
else if(count > 6){
   count = 6;
   }
else{
   }

// 送信データ作成
//buf = safe_sprintf(buf ,BUF_MAX, "%s :: COM: MIS DATA: %s %d\n", gd.bf.c_name, midname, count);
buf = safe_sprintf(buf ,BUF_MAX, "%s :: COM: NIS DATA: %s %d\n", gd.bf.c_name, midname, count);

// 送信してステータスを得る 歯痛処理初め
safe_pthread_mutex_lock(&fd_mutex);

if((stat = socket_send(gd.ip.sk, buf, interval)) > 0){
   back = select_fdcat(gd.ip.sk, back, &stat, BUF_MAX, interval);
   if(stat <= 0){
      fprintf(stderr,"mid_setserver(1): exit!! stat=<%d> not recv data\n", stat);
      safe_exit("mid_setserver(1):  socket err exit send data\n");
      }
   }
else{
   fprintf(stderr,"mid_setserver(1): exit!! stat=<%d> send data = <%s>\n", stat, buf);
   safe_exit("mid_setserver(1):  socket err exit send data\n");
   }

pthread_mutex_unlock(&fd_mutex);
// 歯痛処理おわり


if(0 == memcmp(back, "500", 3)){
   ret = -1;
   }
else if(0 == memcmp(back, "200", 3)){
   ret = 0;
   }
else{
   ret = -1;
   }

#ifdef $MID_BUG
printf("mid_setserver(): サーバ側IDをローカルとあわせました ret<%d> send<%s> back<%s>\n", ret, buf, back);
#endif

free(buf);
free(back);

return ret;
}







