/*
 *========================================================================
 *
 *   시스템명 : AZN_PLAZA_LANE APP
 *   파 일 명 : get_ini_info.c
 *   작 성 자 : JBY
 *   작 성 일 : 2018.07.13
 *   수 정 일 :
 *   설    명 :
 *
 *========================================================================
*/

#include <stdio.h>
#include <signal.h>
#include <stdlib.h>
#include <sys/stat.h>
#include <sys/file.h>
#include <sys/errno.h>
#include <sys/ioctl.h>
#include <fcntl.h>
#include <sys/types.h>
#include <time.h>
#include <unistd.h>
#include <string.h>
#include "path_def.h"
#include "iis_func.h"
/*
 *========================================================================
 *
 *   함 수 명 : get_ini()
 *   작 성 자 : JBY
 *   작 성 일 : 2018.07.13
 *   수 정 일 :
 *   설    명 :
 *
 *========================================================================
*/

char *get_ini(char *fname, char *sName, char *vname)
{
    unsigned int i;
    int j, len, iflag=0, vflag=0;
    char buf[256], c_name[32], ctmp[32], ini_file[256];
    static char cvalue[32];
    FILE *fp;

    sprintf(ini_file, "%s/ini/%s", getenv("IIS_HOME"), fname);

    if((fp = fopen(ini_file, "r")) == NULL)
    {
        printf("ini file not found [%s]", ini_file);
        return NULL;
    }

    memset(buf, 0x00, sizeof(buf));
    while(fgets(buf, sizeof buf, fp) != NULL)
    {
        len = strlen(buf);
        buf[len-1] = 0x00;

        if((buf[0]&0xFF) == 0x23)
        {
            continue;
        }
        else if(((buf[0]&0xFF) == 0x20
            || (buf[0]&0xFF) == 0x09) && iflag == 1)
        {

            memset(c_name, 0x00, sizeof(c_name));
            memset(cvalue,   0x00, sizeof(cvalue));
            memset(ctmp,     0x00, sizeof(ctmp));

            for(i=1; i < strlen(buf); i++)
            {

                if((buf[i]&0xFF) == 0x23) break;
                else if((buf[i]&0xFF) == 0x20 || (buf[i]&0xFF) == 0x09)
                {
                    if(vflag == 1) continue;

                    ctmp[j] = 0x00;
                    strncpy(c_name, ctmp, strlen(ctmp));

                    if(strncmp(c_name, vname, strlen(vname)) == 0)
                    {
                        j = 0;
                        vflag = 1;
                        memset(ctmp, 0x00, sizeof(ctmp));
                    }
                    else
                        continue;
                }
                else if((buf[i]&0xFF) >= 0x21 && (buf[i]&0xFF) <= 0x7E)
                {
                    if(vflag == 0)
                    {
                        ctmp[j++] = buf[i];
                        ctmp[j]   = 0x00;
                    }
                    else
                    {
                        strncpy(cvalue, (char*)&buf[i], strlen(buf)-i);
                        return cvalue;
                    }
                }
            }
        }
        else
        {
            if(strncmp(sName, buf, strlen(sName)) == 0)
            {
                iflag = 1;
            }
       }
       memset(buf, 0x00, sizeof buf);
       j = 0;
    }

    return NULL;
}
