
#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"


extern global_data_t gd;


/*--------------- VERS_LOGIC ------------------- */
int vers_logi(private_data_t * pd)
{
static int ret;
 
int ustat = self_memcmp(pd->rec.user, pd->rec.def_user); 
int astat = self_memcmp(pd->rec.user, "administrator");
int cgstat = self_memcmp(pd->rec.user, "cgiuser");

char * putdata = (char *)calloc(IP_LEN, sizeof(char));

ret = 0;
if(ustat == 0 || astat == 0 || cgstat == 0){ 
   #ifdef LOG_OUT
   safe_pthread_mutex_lock(&con_mutex);
   log_out(gd.fp.con_fd, pd->rec.user, pd->rec.com, pd->rec.data,
     "version checkd.", (unsigned char *)gd.ms.inip_addr[pd->rec.fdno]);
   pthread_mutex_unlock(&con_mutex);
   #endif
   putdata = safe_sprintf(putdata, BUF_MAX, "200 KO\n%s\nhttp://zither.ms-n.com\n", CL_VAR);
   ret = socket_send(gd.ms.sk[pd->rec.fdno], putdata, (pd->life.life_int + pd->life.life_los + 15));
   }
else{
   ret = socket_send(gd.ms.sk[pd->rec.fdno], "500 NG\n", (pd->life.life_int + pd->life.life_los + 15));
   } 

free(putdata);
return(ret);
}






