no message

main
이범준 2 weeks ago
parent dcbe914a30
commit 5737c14ca6

@ -0,0 +1,17 @@
합계 393540
-rw-r--r-- 1 tcs users 8792 6월 24 13:47 EXEMPT_CARS_INFO.CSV.conv
-rw-r--r-- 1 tcs users 16038 6월 24 13:58 EXEMP_CARS_INFO_.CSV
-rwxr-xr-x 1 tcs users 248 6월 24 14:39 sqltest.sh*
-rw-r--r-- 1 tcs users 292 6월 24 14:40 exemp_dump.sql
-rw-r--r-- 1 tcs users 90862490 6월 24 14:42 EXEMPT_CARS_INFO.CSV
-rw-r--r-- 1 tcs users 90862317 6월 24 14:42 EXEMPT_CARS_INFO_.CSV
-rw-r--r-- 1 tcs users 99705866 6월 24 14:42 EXEMPT_CARS_INFO_8.CSV
-rw-r--r-- 1 tcs users 26922144 6월 24 14:47 ExemptPL.bin
drwxr-xr-x 6 tcs users 4096 6월 26 19:21 ../
-rwxr-xr-x 1 tcs users 244 6월 27 09:41 sqltest_rf.sh*
-rw-r--r-- 1 tcs users 242 6월 27 09:41 rfid_dump.sql
-rw-r--r-- 1 tcs users 31347938 6월 27 09:42 RFID_CARS_INFO.CSV
-rw-r--r-- 1 tcs users 31347831 6월 27 09:42 RFID_CARS_INFO_.CSV
-rw-r--r-- 1 tcs users 31865537 6월 27 09:42 RFID_CARS_INFO_8.CSV
-rw-r--r-- 1 tcs users 0 6월 27 12:07 aaa.txt
drwxr-xr-x 2 tcs users 4096 6월 27 12:07 ./

@ -0,0 +1,78 @@
#---------------------------------------------------------------------------
# 라이브러리 옵션
#---------------------------------------------------------------------------
#---------------------------------------------------------------------------
# 컴파일 옵션
#---------------------------------------------------------------------------
#---------------------------------------------------------------------------
# 서브폴더 옵션
#---------------------------------------------------------------------------
CURRENT_DIR = /app/tcs/GREEN_LANE/src
SUB_DIRS = $(CURRENT_DIR)/lib $(CURRENT_DIR)/lib/Common $(CURRENT_DIR)/app/lane \
$(CURRENT_DIR)/app/oltp $(CURRENT_DIR)/app/passraw $(CURRENT_DIR)/app/schedule \
$(CURRENT_DIR)/app/back01 $(CURRENT_DIR)/app/back02 $(CURRENT_DIR)/app/back03\
$(CURRENT_DIR)/app/back04 $(CURRENT_DIR)/app/back05 $(CURRENT_DIR)/app/back06 \
$(CURRENT_DIR)/app/back07 $(CURRENT_DIR)/app/back08 $(CURRENT_DIR)/app/back09 \
$(CURRENT_DIR)/app/back10 $(CURRENT_DIR)/app/RestfulConverter $(CURRENT_DIR)/app/SndHQ \
$(CURRENT_DIR)/app/RcvHQ $(CURRENT_DIR)/app/plmake $(CURRENT_DIR)/app/sendImage
MAKE = make
BACK_DIR = $(CURRENT_DIR)/lib $(CURRENT_DIR)/lib/Common $(CURRENT_DIR)/app/back01 \
$(CURRENT_DIR)/app/back02 $(CURRENT_DIR)/app/back03 $(CURRENT_DIR)/app/back04 \
$(CURRENT_DIR)/app/back05 $(CURRENT_DIR)/app/back06 $(CURRENT_DIR)/app/back07 \
$(CURRENT_DIR)/app/back08 $(CURRENT_DIR)/app/back09 $(CURRENT_DIR)/app/back10
IIS_DIR = $(CURRENT_DIR)/lib $(CURRENT_DIR)/lib/Common $(CURRENT_DIR)/app/iis
OLTP_DIR = $(CURRENT_DIR)/lib $(CURRENT_DIR)/lib/Common $(CURRENT_DIR)/app/oltp
THWS_DIR = $(CURRENT_DIR)/lib $(CURRENT_DIR)/lib/Common $(CURRENT_DIR)/app/passraw
LANE_DIR = $(CURRENT_DIR)/lib $(CURRENT_DIR)/lib/Common $(CURRENT_DIR)/app/lane
#LNK_DIR = $(CURRENT_DIR)/lib $(CURRENT_DIR)/app/lnk_eps
#---------------------------------------------------------------------------
# 타켓
#---------------------------------------------------------------------------
all:
@for dir in $(SUB_DIRS); do \
$(MAKE) -C $$dir all; \
if [ $$? != 0 ]; then \
exit 1; \
fi; \
done
install:
@for dir in $(SUB_DIRS); do \
$(MAKE) -C $$dir install; \
if [ $$? != 0 ]; then \
exit 1; \
fi; \
done
clean:
@for dir in $(SUB_DIRS); do \
$(MAKE) -C $$dir clean; \
if [ $$? != 0 ]; then \
exit 1; \
fi; \
done
back:
@for i in $(BACK_DIR);do (cd $$i && echo $$i:&& $(MAKE) all && $(MAKE) install) done || exit 1
iis:
@for i in $(IIS_DIR);do (cd $$i && echo $$i:&& $(MAKE) all && $(MAKE) install) done || exit 1
oltp:
@for i in $(OLTP_DIR);do (cd $$i && echo $$i:&& $(MAKE) all && $(MAKE) install) done || exit 1
thws:
@for i in $(THWS_DIR);do (cd $$i && echo $$i:&& $(MAKE) all && $(MAKE) install) done || exit 1
lane:
@for i in $(LANE_DIR);do (cd $$i && echo $$i:&& $(MAKE) all && $(MAKE) install) done || exit 1
#lnk:
# @for i in $(LNK_DIR);do (cd $$i && echo $$i:&& $(MAKE) all && $(MAKE) install) done || exit 1

@ -0,0 +1,187 @@
COMMON_DIR = ../../lib/Common
#---------------------------------------------------------------------------
# 라이브러리 옵션
#---------------------------------------------------------------------------
ifeq ($(OS),Windows_NT)
SYS_LIBS = -L"C:\mingw-w64\x86_64-8.1.0-posix-seh-rt_v6-rev0\mingw64\lib" -L"C:\Program Files (x86)\rabbitmq-c\lib" -L"C:\mingw-w64\x86_64-8.1.0-posix-seh-rt_v6-rev0\mingw64\x86_64-w64-mingw32\lib" -luuid
#LINK_LIB = $(SYS_LIBS) "C:\Program Files (x86)\rabbitmq-c\lib\librabbitmq.4.dll.a" -lrpcrt4 -lws2_32 -lrabbitmq4
LINK_LIB = $(SYS_LIBS) -lrpcrt4 -lws2_32 "C:\Program Files (x86)\rabbitmq-c\lib\librabbitmq.4.dll.a"
else
#ORACLE_HOME=/oracle/app/oracle/product/11.2.0/dbhome_1
SYS_LIBS = -L/usr/lib64
#OPEN_LIBS = -lsafec-3.3 -lrabbitmq -luuid
OPEN_LIBS = -lrabbitmq -luuid -lm -lcurl
RACLE_LIB_PATH = $(ORACLE_HOME)/lib
ORACLE_LIBS = -L$(ORAPATH) -lclntsh
#ORACLE_LIBS = `cat $(ORACLE_HOME)/lib/sysliblist` -lclntsh
#$(info ORACLE_LIBS=$(ORACLE_LIBS))
#LINK_LIB = $(SYS_LIBS) $(ORACLE_LIBS) $(OPEN_LIBS)
LINK_LIB = $(ORACLE_LIBS) $(SYS_LIBS) $(OPEN_LIBS)
LDFLAGS = -Xlinker -L$(COMMON_DIR) -lFireAntCommon
#LDFLAGS = -Xlinker -L/usr/lib64 -L/usr/loca/lib -L/usr/local/lib64 -L$(ORACLE_LIB_PATH) -L/app/tcs/librab/build/librabbitmq -pthread
endif
#---------------------------------------------------------------------------
# 컴파일 옵션
#---------------------------------------------------------------------------
DEPDIR := .d
ifeq ($(OS),Windows_NT)
$(shell IF NOT EXIST $(DEPDIR) mkdir $(DEPDIR))
OBJEXT = obj
OUTPUTEXT = .exe
else
$(shell mkdir -p $(DEPDIR) >/dev/null)
OBJEXT = o
OUTPUTEXT =
endif
#CFLAGS = -std=gnu99 -I$(COMMON_DIR) -I/usr/include -I/usr/local/include/safec-3.3 -I/usr/local/lib/safec-3.3/include -DDEBUG -D_DEBUG -pthread
CFLAGS = -std=gnu99 -I$(COMMON_DIR)
DEBUG_CFLAGS = -g -Wall
PROCFLAGS =
CC = gcc
ifeq ($(OS),Windows_NT)
DEBUG_CFLAGS += -DDEBUG -D_DEBUG
CFLAGS += -I"C:\mingw-w64\x86_64-8.1.0-posix-seh-rt_v6-rev0\mingw64\include" -I"C:\Program Files (x86)\rabbitmq-c\include" -pthread
LDFLAGS += -L"C:\mingw-w64\x86_64-8.1.0-posix-seh-rt_v6-rev0\mingw64\lib" -L"C:\Program Files (x86)\rabbitmq-c\lib" -pthread
POSTCOMPILE = (IF EXIST $(DEPDIR)\$*.d del $(DEPDIR)\$*.d) && rename $(DEPDIR)\$*.Td $*.d
else
DEBUG_CFLAGS += -rdynamic
CFLAGS += -I/usr/include -I/usr/local/include/safec-3.3 -I/usr/local/lib/safec-3.3/include -DDEBUG -D_DEBUG -pthread
LDFLAGS += -L/usr/lib64 -L/usr/loca/lib -L/usr/local/lib64 -L/app/tcs/librab/build/librabbitmq -pthread
POSTCOMPILE = @mv -f $(DEPDIR)/$*.Td $(DEPDIR)/$*.d && touch $@
RELEASE_ID=$(shell cat /etc/*-release | grep -w ID | awk -F= '{print $$2}' | sed 's/"//g')
ifeq ($(RELEASE_ID),alpine)
#CFLAGS += -I/usr/lib/bcc/include/asm -I/usr/lib/bcc/include
LDFLAGS += -lexecinfo
endif
endif
$(shell echo $(OS))
DEPFLAGS = -MT $@ -MMD -MP -MF $(DEPDIR)/$*.Td
COMPILE.c = $(CC) $(DEPFLAGS) $(DEBUG_CFLAGS) $(CFLAGS) $(CPPFLAGS) $(TARGET_ARCH) -c
COMPILE.cc = $(CXX) $(DEPFLAGS) $(DEBUG_CFLAGS) $(CXXFLAGS) $(CPPFLAGS) $(TARGET_ARCH) -c
#POSTCOMPILE = @mv -f $(DEPDIR)/$*.Td $(DEPDIR)/$*.d && touch $@
#DEP_FILES = $(wildcard $(patsubst %,$(DEPDIR)/%.d,$(basename $(SRCS))))
#$(info DEP_FILES:$(DEP_FILES))
#---------------------------------------------------------------------------
# 파일 설정
#---------------------------------------------------------------------------
# 참고사항 : 변수 정의시 =을 사용하면 즉시 값이 결정되는 것이 아니고 사용될 시 값이 결정된다.
# 즉 OBJ FILES의 경우 =을 이용하면 pc파일에 대한 오브젝트 파일과 c파일에 대한 오브젝트
# 파일이 호출시 결정되어 2개가 변수에 포함된다.
PC_SRC_FILES = $(wildcard *.pc)
PC2C_FILES = $(PC_SRC_FILES:.pc=.c)
#$(info PC2C_FILES:$(PC2C_FILES))
$(shell rm -rf $(PC2C_FILES))
C_SRC_FILES = $(wildcard *.c)
OBJ_FILES := $(C_SRC_FILES:.c=.$(OBJEXT)) $(PC_SRC_FILES:.pc=.$(OBJEXT))
# $(patsubst %.c,%.$(OBJEXT),$(C_SRC_FILES))
# @echo 명령은 실행 블럭에서만 실행되므로 변수 영역에서는 info를 이용한다.
#$(info C_SRC_FILES:$(C_SRC_FILES))
#$(info OBJ_FILES:$(OBJ_FILES))
#---------------------------------------------------------------------------
# 확장자 처리
#---------------------------------------------------------------------------
#기존처리방식
#.SUFFIXES : .pc .c .o
#
#.c.o :
# $(CC) $(CFLAGS) -c $(DFLAGS) $<
#
#.pc.o :
# $(PROC) iname=$*.pc $(PROCFLAGS) $(PROCINC)
# $(CC) $(CFLAGS) -c $*.c
# mv $*.c $(CTEMPD)
#.SUFFIXES : .pc .c .o
#Auto Dependency 생성을 위한 신규 규칙
%.$(OBJEXT):%.pc
%.$(OBJEXT):%.pc $(DEPDIR)/%.d
$(PROC) iname=$*.pc $(PROCFLAGS) $(PROCINC)
$(COMPILE.c) $(OUTPUT_OPTION) $<
$(POSTCOMPILE)
%.$(OBJEXT):%.c
%.$(OBJEXT):%.c $(DEPDIR)/%.d
$(COMPILE.c) $(OUTPUT_OPTION) $<
$(POSTCOMPILE)
%.$(OBJEXT):%.cc
%.$(OBJEXT):%.cc $(DEPDIR)/%.d
$(COMPILE.cc) $(OUTPUT_OPTION) $<
$(POSTCOMPILE)
%.$(OBJEXT):%.cxx
%.$(OBJEXT):%.cxx $(DEPDIR)/%.d
$(COMPILE.cc) $(OUTPUT_OPTION) $<
$(POSTCOMPILE)
$(DEPDIR)/%.d: ;
.PRECIOUS: $(DEPDIR)/%.d
#---------------------------------------------------------------------------
# 컴파일과 make 아웃풋 설정
#---------------------------------------------------------------------------
define del-pc2cfile
del $(1)
endef
COMMON_OBJS = $(wildcard ../../../Common/*.$(OBJEXT))
RcvHQ_OBJ_FILES = RcvHQ.$(OBJEXT)
#RcvHQ_OBJ_FILES = RcvHQ.o \
# $(COMMON_DIR)/Config.o \
# $(COMMON_DIR)/Log.o \
# $(COMMON_DIR)/MessageQueue.o \
# $(COMMON_DIR)/Socket.o \
# $(COMMON_DIR)/StringUtil.o \
# $(COMMON_DIR)/SystemUtil.o \
# $(COMMON_DIR)/DataStructure.o
all: compile install
compile: $(RcvHQ_OBJ_FILES) $(COMMON_DIR)/libFireAntCommon.so
gcc -o RcvHQ$(OUTPUTEXT) $(RcvHQ_OBJ_FILES) $(LDFLAGS) $(LINK_LIB) $(DEBUG_CFLAGS)
#ifeq ($(OS),Windows_NT)
# copy RcvHQ$(OUTPUTEXT) ..\..\..\..\bin\GW
#else
# cp RcvHQ$(OUTPUTEXT) ../../../../bin/GW
#endif
install:
ifeq ($(OS),Windows_NT)
copy RcvHQ$(OUTPUTEXT) ..\..\..\..\bin\GW\RcvHQ$(OUTPUTEXT)
else
cp RcvHQ$(OUTPUTEXT) ../../../bin/RcvHQ$(OUTPUTEXT)
endif
dep:;
clean:
ifeq ($(OS),Windows_NT)
del *.$(OBJEXT)
rd /s /q .d
# del $(PC2C_FILES)
$(foreach PC2C_FILENAME,$(PC2C_FILES),$(call del-pc2cfile,$(PC2C_FILENAME)))
IF EXIST *.bak del *.bak
else
rm -rf *.$(OBJEXT)
rm -rf .d
rm -rf $(PC2C_FILES)
rm -rf *.bak
endif
include $(wildcard $(patsubst %,$(DEPDIR)/%.d,$(basename $(C_SRC_FILES))))

Binary file not shown.

File diff suppressed because it is too large Load Diff

@ -0,0 +1,386 @@
#ifndef __TOLLGW_H__
#define __TOLLGW_H__
/*
#include <stddef.h>
#include <libsafec/safe_str_lib.h>
#include <libsafec/safe_mem_lib.h>
#include <linux/limits.h>
#include <limits.h>
#include <stdlib.h>
#include <unistd.h>
#include <string.h>
*/
#ifdef __cplusplus
#ifndef BEGIN_DECLS
#define BEGIN_DECLS extern "C" {
#endif
#ifndef END_DECLS
#define END_DECLS }
#endif
#else
#ifndef BEGIN_DECLS
#define BEGIN_DECLS
#endif
#ifndef END_DECLS
#define END_DECLS
#endif
#endif
BEGIN_DECLS
#ifdef _WIN32
#include <wchar.h>
#endif
//#include <crtdefs.h>
#include <stddef.h>
#include <limits.h>
#include <stdint.h>
#include "Common.h"
#include "Log.h"
#include "Socket.h"
#include "SystemUtil.h"
#include "MessageQueue.h"
#include "DataStructure.h"
#include "ThreadUtil.h"
#include "StringUtil.h"
#include "FileUtil.h"
#include "SecureCodingUtil.h"
#define GW_ERR_SUCCESS 0
#define GW_ERR_CONFIG -1
#define GW_ERR_INIT -2
#define GW_ERR_PACKET_SIZE -3
#define GW_ERR_PACKET_FORMAT -4
#define GW_ERR_MQ_ERROR -5
#define GW_ERR_DIRECTORY_ACCESS -6
#define GW_ERR_FILE_ACCESS -7
#define GW_ERR_FILE_SIZE_NOTEQUAL -8
#define GW_ERR_TARGET_DIRECTORY_ACCESS -9
#define GW_ERR_NOT_EXIST_NULL -10
#define GW_ERR_UNKNOWN_WORK_TYPE -11
#define GW_ERR_UNKNOWN_MSG_TYPE -12
#define GW_ERR_UNKNOWN_RESP_CODE -13
// 설정 파일 키값 정의
#define GW_CONFIG_CONNECT_TYPE "CONNECT_TYPE"
#define GW_CONFIG_IP "IP"
#define GW_CONFIG_PORT "PORT"
#define GW_CONFIG_CHANNEL_NUM "CHANNELS"
#define GW_CONFIG_CHANNEL1_MODE "CHANNEL1_MODE"
#define GW_CONFIG_CHANNEL2_MODE "CHANNEL2_MODE"
#define GW_CONFIG_CHANNEL3_MODE "CHANNEL3_MODE"
#define GW_CONFIG_CHANNEL4_MODE "CHANNEL4_MODE"
#define GW_CONFIG_CHANNEL5_MODE "CHANNEL5_MODE"
#define GW_CONFIG_CONNECT_TYPE_SERVER "SERVER"
#define GW_CONFIG_CONNECT_TYPE_CLIENT "CLIENT"
#define GW_CONFIG_MESSAGE_SEND_EXCHANGER_NAME "MESSAGE_SEND_EXCHANGER_NAME"
#define GW_CONFIG_MESSAGE_RECV_EXCHANGER_NAME "MESSAGE_RECV_EXCHANGER_NAME"
#define GW_CONFIG_FILE_SEND_EXCHANGER_NAME "FILE_SEND_EXCHANGER_NAME"
#define GW_CONFIG_FILE_RECV_EXCHANGER_NAME "FILE_RECV_EXCHANGER_NAME"
#define GW_CONFIG_CHANNEL_STR_HEALTH "HEALTH"
#define GW_CONFIG_CHANNEL_STR_MESSAGE_SEND "MESSAGE_SEND"
#define GW_CONFIG_CHANNEL_STR_MESSAGE_RECV "MESSAGE_RECV"
#define GW_CONFIG_CHANNEL_STR_FILE_SEND "FILE_SEND"
#define GW_CONFIG_CHANNEL_STR_FILE_RECV "FILE_RECV"
#define GW_CONFIG_FILE_DATA_SIZE_KEY "FILE_DATA_SIZE"
#define GW_CONFIG_MAX_SEQ_COUNT_KEY "MAX_SEQ_COUNT"
#define MSG_SEP ':'
#define MSG_LEN_MSG_LEN 4
#define MSG_LEN_ORGANIZATIONCODE 6
#define MSG_LEN_OCCUR_TYPE 1
#define MSG_LEN_WORK_TYPE 4
#define MSG_LEN_MSG_TYPE 4
#define MSG_LEN_FILENAME 16
#define MSG_LEN_REQUEST_DTIME 14
#define MSG_LEN_END_DTIME 14
#define MSG_LEN_RESP_CODE 4
#define MSG_DATA_BLOCKNO_LEN 4
#define MSG_DATA_SEQNO_LEN 3
#define MSG_DATA_DATA_LEN 4
#define MSG_DATA_MISSED_DATA_NO_LEN 3
#define MSG_DATA_FILE_DATA_INFO (MSG_DATA_BLOCKNO_LEN + MSG_DATA_SEQNO_LEN + MSG_DATA_DATA_LEN)
// 파일 정보(WorkType 630, 640에서 사용하는 정보)의 각 데이터 길이
//#define MSG_LEN_FILENAME 16
#define MSG_LEN_FILESIZE 12
#define MSG_LEN_MSGSIZE 4
#define MSG_LEN_SERIAL_NO 8
#define MSG_LEN_CRC 4
#define MSG_LEN_MAX_DIRECTORY_SIZE 512
//#define MSG_LEN_FILESIZE 12
#define MSG_LEN_MAX_SEQUENCE 100
//#define MSG_FILE_WORK_TYPE_WORK_START_REQ "0600"
//#define MSG_FILE_WORK_TYPE_WORK_START_RESP "0610"
//#define MSG_FILE_WORK_TYPE_FILE_INFO_SEND "0630"
//#define MSG_FILE_WORK_TYPE_FILE_INFO_RESP "0640"
//#define MSG_FILE_WORK_TYPE_DATA_SEND "0320"
//#define MSG_FILE_WORK_TYPE_RECEIVE_CONFIRM_REQ "0620"
//#define MSG_FILE_WORK_TYPE_RECEIVE_CONFIRM_RESP "0300"
//#define MSG_FILE_WORK_TYPE_MISSED_DATA_SEND "0310"
//
//#define MSG_FILE_MSG_TYPE_WORK_NORMAL "0000"
//#define MSG_FILE_MSG_TYPE_WORK_START "0001"
//#define MSG_FILE_MSG_TYPE_FILE_TRANSFER_NEXT "0002"
//#define MSG_FILE_MSG_TYPE_FILE_TRANSFER_END "0003"
//#define MSG_FILE_MSG_TYPE_WORK_END "0004"
#define MSG_REQ_RESP_CODE "0000"
#define MSG_SUCCESS_RESP_CODE "0000"
#define MSG_MQERROR_RESP_CODE "0003"
//#define GW_FILETRANS_RESP_NORMAL "0000"
//#define GW_FILETRANS_REQ_MESSAGE_FORMAT "0001"
//#define GW_FILETRANS_FILE_ACCESS "0002"
//#define GW_FILETRANS_PROTOCOL "0003"
enum MSG_FILE_WORK_TYPE
{
MSG_FILE_WORK_TYPE_WORK_START_REQ = 600,
MSG_FILE_WORK_TYPE_WORK_START_RESP = 610,
MSG_FILE_WORK_TYPE_FILE_INFO_SEND = 630,
MSG_FILE_WORK_TYPE_FILE_INFO_RESP = 640,
MSG_FILE_WORK_TYPE_DATA_SEND = 320,
MSG_FILE_WORK_TYPE_RECEIVE_CONFIRM_REQ = 620,
MSG_FILE_WORK_TYPE_RECEIVE_CONFIRM_RESP = 300,
MSG_FILE_WORK_TYPE_MISSED_DATA_SEND = 310,
};
enum MSG_FILE_MSG_TYPE
{
MSG_FILE_MSG_TYPE_NONE = 0,
MSG_FILE_MSG_TYPE_WORK_START = 1,
MSG_FILE_MSG_TYPE_FILE_TRANSFER_NEXT = 2,
MSG_FILE_MSG_TYPE_FILE_TRANSFER_END = 3,
MSG_FILE_MSG_TYPE_WORK_END = 4,
};
enum CONNECT_TYPES
{
CONNECT_TYPE_SERVER = 1,
CONNECT_TYPE_CLIENT,
};
enum CHANNEL_MODE_FLAGS
{
GW_CONFIG_CHANNEL_HEALTH_FLAG = 0x01,
GW_CONFIG_CHANNEL_MESSAGE_SEND_FLAG = 0x02,
GW_CONFIG_CHANNEL_MESSAGE_RECV_FLAG = 0x04,
GW_CONFIG_CHANNEL_FILE_SEND_FLAG = 0x08,
GW_CONFIG_CHANNEL_FILE_RECV_FLAG = 0x10,
};
enum CHANNEL_MODES
{
GW_CONFIG_CHANNEL_HEALTH = 0,
GW_CONFIG_CHANNEL_MESSAGE_SEND,
GW_CONFIG_CHANNEL_MESSAGE_RECV,
GW_CONFIG_CHANNEL_FILE_SEND,
GW_CONFIG_CHANNEL_FILE_RECV,
GW_CONFIG_CHANNEL_COUNT
};
enum FILE_SEND_RESULT
{
GW_FILE_SEND_ERR_SUCCESS = 0,
GW_FILE_SEND_ERR_REQUEST_MSG_FORMAT,
GW_FILE_SEND_ERR_FILE_ACCESS,
GW_FILE_SEND_ERR_PROTOCOL,
};
#define GW_FILE_RECV_PATH_KEY "FILE_RECV_PATH"
#define GW_FILE_RECV_PATH_TEMP_KEY "FILE_RECV_PATH_TEMP"
#define GW_FILE_MOVE_YN_KEY "FILE_MOVE_YN"
struct CHANNEL_MODE
{
int nChannelModeFlags;
};
/*
#define MSG_LEN_ORGANIZATIONCODE 6
#define MSG_LEN_OCCUR_TYPE 1
#define MSG_LEN_WORK_TYPE 4
#define MSG_LEN_MSG_TYPE 4
#define MSG_LEN_FILENAME 16
#define MSG_LEN_REQUEST_DTIME 14
#define MSG_LEN_REPLY_CODE 4
*/
struct MESSAGE_HEADER
{
char szOrganizationCode[MSG_LEN_ORGANIZATIONCODE + 1];
char cOccurType;
char szWorkType[MSG_LEN_WORK_TYPE + 1];
char szMsgType[MSG_LEN_MSG_TYPE + 1];
char szSerialNo[MSG_LEN_SERIAL_NO + 1];
char szRequestDTime[MSG_LEN_REQUEST_DTIME + 1];
char szRespCode[MSG_LEN_RESP_CODE + 1];
};
struct MESSAGE_PACKET
{
char cChannelNo;
char szMsgLen[MSG_LEN_MSG_LEN + 1];
struct MESSAGE_HEADER sHeader;
char szData[MAX_STRING_SIZE + 1];
char szCRC[MSG_LEN_CRC + 1];
};
struct FILE_HEADER
{
char szOrganizationCode[MSG_LEN_ORGANIZATIONCODE + 1];
char cOccurType;
char szWorkType[MSG_LEN_WORK_TYPE + 1];
int nWorkType;
char szMsgType[MSG_LEN_MSG_TYPE + 1];
int nMsgType;
char szFilename[MSG_LEN_FILENAME + 1];
char szRequestDTime[MSG_LEN_REQUEST_DTIME + 1];
char szRespCode[MSG_LEN_RESP_CODE + 1];
int nRespCode;
};
struct FILE_PACKET
{
char cChannelNo;
char szMsgLen[MSG_LEN_MSG_LEN + 1];
int nMsgLen;
struct FILE_HEADER sHeader;
char szData[MAX_FILE_SEND_SIZE + 1];
char szCRC[MSG_LEN_CRC + 1];
};
struct FILE_SEND_REQUEST
{
uint16_t nMessageSize;
char szOrganizationCode[MSG_LEN_ORGANIZATIONCODE + 1];
char szFilename[MSG_LEN_FILENAME + 1];
char szDirectory[SOCK_MAX_DIRECTORY_SIZE + 1];
int nFileSize;
char szRequestDTime[MSG_LEN_REQUEST_DTIME + 1];
int bChangeDirectory;
char szTargetDirectory[SOCK_MAX_DIRECTORY_SIZE + 1];
};
struct FILE_TRANSFER_STATE
{
int bFileTransferStarted;
char cTransferDirection;
int nCurrentWorkType;
int nCurrentMsgType;
struct tm sLastRecvTime;
struct tm sLastSendTime;
int nLastRecvMilliSec;
int nLastSendMilliSec;
struct FILE_SEND_REQUEST sRequest;
int nCurrentBlockNo;
int nCurrentSeqNo;
int nMaxBlockNo;
int nMaxSeqNo;
char *pSeqReceived;
char szResponseQueuename[MAX_STRING_SIZE + 1];
uuid_t aUUID;
int nFileSize;
int nSeqSize;
FILE *pFile;
};
struct FILE_PROC_RESPONSE
{
char szOrganizationCode[MSG_LEN_ORGANIZATIONCODE + 1];
char szFilename[MSG_LEN_FILENAME + 1];
char szDirectory[SOCK_MAX_DIRECTORY_SIZE + 1];
long nFileSize;
char szRequestDTime[MSG_LEN_REQUEST_DTIME + 1];
char szEndDTime[MSG_LEN_REQUEST_DTIME + 1];
char cTransferDirection;
int bProcComplete;
};
//#define MSG_LEN_FILENAME 16
//#define MSG_LEN_FILESIZE 12
//#define MSG_LEN_MSGSIZE 4
struct FILE_INFO
{
char szFilename[MSG_LEN_FILENAME + 1];
int nFileSize;
int nMsgSize;
};
extern char g_szProcessname[MAX_STRING_SIZE + 1];
extern char g_szProcessPath[PATH_MAX + 1];
extern struct FILE_TRANSFER_STATE (*g_pFileTransferState)[SOCK_CONF_MAX_CHANNEL_LIMIT];
extern char g_szFileRecvPath[MAX_STRING_SIZE + 1];
extern char g_szFileRecvPathTemp[MAX_STRING_SIZE + 1];
extern int g_bFileMoveYN;
//extern int g_nChannels;
//extern struct CHANNEL_MODE g_sChannelModeFlags[GW_CONFIG_CHANNEL_COUNT];
//extern int g_nConnectType;
//extern char g_szMESSAGE_SEND_EXCHANGER_NAME[MAX_STRING_SIZE + 1];
//extern char g_szMESSAGE_RECV_EXCHANGER_NAME[MAX_STRING_SIZE + 1];
//extern char g_szFILE_SEND_EXCHANGER_NAME[MAX_STRING_SIZE + 1];
//extern char g_szFILE_RECV_EXCHANGER_NAME[MAX_STRING_SIZE + 1];
int InitGWConfig();
void InitFileTransferState(int nSocketIndex);
int ProcessMessageSocketData(struct SOCKET_THREAD_INFO *pThreadInfo, int nChannelNo);
int ParseMessageHeader(struct MESSAGE_PACKET *pPacket, struct MESSAGE_INFO *pData);
int ProcessFileSocketData(struct SOCKET_THREAD_INFO *pThreadInfo, int nChannelNo);
int ParseFileHeader(struct FILE_PACKET *pPacket, struct MESSAGE_INFO *pData);
int ParseFileSendRequest(char *pMessageBuffer, int nMessageBufferSize, struct FILE_SEND_REQUEST *pFileSendRequest);
int ProcessMessageMQSendData(struct SOCKET_THREAD_INFO *pThreadInfo, int nChannelNo, char *pData, int nDataLength, char *szCorrelationID, int nCorrelationIDLength, char *szResponseQueuename, int nReplyQueuenameLength, int *bMQConnection, int *bChannelOpen, uint64_t nDeliveryTag);
int ProcessMessageMQRespData(struct SOCKET_THREAD_INFO *pThreadInfo, int nChannelNo, char *pData, int nDataLength, char *szCorrelationID, int nCorrelationIDLength, char *szResponseQueuename, int nReplyQueuenameLength, int *bMQConnection, int *bChannelOpen, uint64_t nDeliveryTag);
int ProcessFileMQData(struct SOCKET_THREAD_INFO *pThreadInfo, int nChannelNo, char *pData, int nDataLength, char *szCorrelationID, int nCorrelationIDLength, char *szResponseQueuename, int nReplyQueuenameLength, int *bMQConnection, int *bChannelOpen, uint64_t nDeliveryTag);
int FileSendStart(struct SOCKET_THREAD_INFO *pThreadinfo, int nChannelNo, struct FILE_SEND_REQUEST *pFileSendRequest);
int MakeFileTransferResult(struct SOCKET_THREAD_INFO *pThreadInfo, int nChannel, int bComplete, char *szProcCode, char *pszFrameMessage, int nFrameSize);
int SendFileResponse(struct SOCKET_THREAD_INFO *pThreadInfo, int nChannelNo, struct FILE_PACKET *pRecvFilePacket, int nRespCodeID);
int SendFilePacket(struct SOCKET_THREAD_INFO *pThreadInfo, int nChannelNo, char *pszOrganizationID, int nOrganizationIDLen, char cOccurType, int nWorkTypeCode, int nMsgTypeCode, char *pszFilename, int nFilenameLen, char *pszRequestDTime, int nRequestDTimeLen, int nRespCode, char *pData, uint16_t nDataLen);
void CalculateBlockSeqCount(int nSocketIndex, int nChannelNo, int nFileSize, int *pnBlockCount, int *pnSeqCount);
int WriteEmptyFileBlock(int nSocketIndex, int nChannelNo);
int GetMissedSeqNo(int nSocketIndex, int nChannelNo);
int GetFileData(int nSocketIndex, int nChannelNo, int nCurrentBlockNo, int nCurrentSeqNo, char *pszDataBuffer, int nDataBufferSize);
int PutFileData(int nSocketIndex, int nChannelNo, int nCurrentBlockNo, int nCurrentSeqNo, const char *pszDataBuffer, int nDataBufferSize);
int GetMissedDataCount(int nSocketIndex, int nChannelNo);
void StateClear(int nSocketIndex, int nChannelNo);
END_DECLS
#endif

@ -0,0 +1,78 @@
ProcessMessage.o: ProcessMessage.c MessageInfo.h \
../../lib/Common/Common.h ../../lib/Common/CURLUtil.h \
../../lib/Common/Common.h ../../lib/Common/Config.h \
../../lib/Common/SecureCodingUtil.h ../../lib/Common/StringUtil.h \
../../lib/Common/Log.h ../../lib/Common/Socket.h \
../../lib/Common/DataStructure.h ../../lib/Common/SystemUtil.h \
../../lib/Common/MessageQueue.h ../../lib/Common/Socket.h \
../../lib/Common/ThreadUtil.h RestfulConverter.h \
../../lib/Common/StringUtil.h ../../lib/Common/Log.h \
../../lib/Common/MessageQueue.h ../../lib/Common/SystemUtil.h \
../../lib/Common/SecureCodingUtil.h ../../include/dir_path.h \
../../include/def_set.h ../../include/type_def.h \
../../include/snd_rcv_knd.h ../../include/taglnk_frame.h \
../../include/file_ctrl.h ../../include/ctrl_job.h \
../../include/file_no.h ../../include/tag_chrg.h \
../../include/tag_rfnd.h ../../include/hi_packet_format.h
MessageInfo.h:
../../lib/Common/Common.h:
../../lib/Common/CURLUtil.h:
../../lib/Common/Common.h:
../../lib/Common/Config.h:
../../lib/Common/SecureCodingUtil.h:
../../lib/Common/StringUtil.h:
../../lib/Common/Log.h:
../../lib/Common/Socket.h:
../../lib/Common/DataStructure.h:
../../lib/Common/SystemUtil.h:
../../lib/Common/MessageQueue.h:
../../lib/Common/Socket.h:
../../lib/Common/ThreadUtil.h:
RestfulConverter.h:
../../lib/Common/StringUtil.h:
../../lib/Common/Log.h:
../../lib/Common/MessageQueue.h:
../../lib/Common/SystemUtil.h:
../../lib/Common/SecureCodingUtil.h:
../../include/dir_path.h:
../../include/def_set.h:
../../include/type_def.h:
../../include/snd_rcv_knd.h:
../../include/taglnk_frame.h:
../../include/file_ctrl.h:
../../include/ctrl_job.h:
../../include/file_no.h:
../../include/tag_chrg.h:
../../include/tag_rfnd.h:
../../include/hi_packet_format.h:

@ -0,0 +1,50 @@
RestfulConverter.o: RestfulConverter.c RestfulConverter.h \
../../lib/Common/Common.h ../../lib/Common/StringUtil.h \
../../lib/Common/Common.h ../../lib/Common/SecureCodingUtil.h \
../../lib/Common/StringUtil.h ../../lib/Common/Log.h \
../../lib/Common/Config.h ../../lib/Common/Log.h \
../../lib/Common/MessageQueue.h ../../lib/Common/Socket.h \
../../lib/Common/DataStructure.h ../../lib/Common/SystemUtil.h \
../../lib/Common/MessageQueue.h ../../lib/Common/ThreadUtil.h \
../../lib/Common/SystemUtil.h ../../lib/Common/SecureCodingUtil.h \
MessageInfo.h ../../lib/Common/CURLUtil.h ../../lib/Common/Socket.h
RestfulConverter.h:
../../lib/Common/Common.h:
../../lib/Common/StringUtil.h:
../../lib/Common/Common.h:
../../lib/Common/SecureCodingUtil.h:
../../lib/Common/StringUtil.h:
../../lib/Common/Log.h:
../../lib/Common/Config.h:
../../lib/Common/Log.h:
../../lib/Common/MessageQueue.h:
../../lib/Common/Socket.h:
../../lib/Common/DataStructure.h:
../../lib/Common/SystemUtil.h:
../../lib/Common/MessageQueue.h:
../../lib/Common/ThreadUtil.h:
../../lib/Common/SystemUtil.h:
../../lib/Common/SecureCodingUtil.h:
MessageInfo.h:
../../lib/Common/CURLUtil.h:
../../lib/Common/Socket.h:

@ -0,0 +1,102 @@
make_basic.o: make_basic.c ../../include/bas_tbl.h \
../../include/file_ctrl.h ../../include/def_set.h \
../../include/type_def.h ../../include/ctrl_job.h \
../../include/file_no.h ../../include/dir_path.h ../../include/file_no.h \
../../include/file_lb.h ../../include/ipc_def.h \
../../include/lane_stat_info.h ../../include/file_ctrl.h \
../../include/debug_def.h ../../include/bas_tbl.h \
../../include/lb_func_list.h ../../include/chg_struc.h \
../../lib/Common/Common.h ../../lib/Common/StringUtil.h \
../../lib/Common/Common.h ../../lib/Common/SecureCodingUtil.h \
../../lib/Common/StringUtil.h ../../lib/Common/Log.h \
../../lib/Common/Config.h ../../lib/Common/Log.h \
../../lib/Common/MessageQueue.h ../../lib/Common/Socket.h \
../../lib/Common/DataStructure.h ../../lib/Common/SystemUtil.h \
../../lib/Common/MessageQueue.h ../../lib/Common/ThreadUtil.h \
../../lib/Common/SystemUtil.h ../../lib/Common/SecureCodingUtil.h \
../../include/func_list.h ../../include/hi_ctrl.h \
../../include/wrk_stat.h ../../include/hi_packet_format.h \
../../include/tagbl_struc.h ../../include/taglnk_frame.h \
../../include/tag_chrg.h ../../include/tag_rfnd.h util.h
../../include/bas_tbl.h:
../../include/file_ctrl.h:
../../include/def_set.h:
../../include/type_def.h:
../../include/ctrl_job.h:
../../include/file_no.h:
../../include/dir_path.h:
../../include/file_no.h:
../../include/file_lb.h:
../../include/ipc_def.h:
../../include/lane_stat_info.h:
../../include/file_ctrl.h:
../../include/debug_def.h:
../../include/bas_tbl.h:
../../include/lb_func_list.h:
../../include/chg_struc.h:
../../lib/Common/Common.h:
../../lib/Common/StringUtil.h:
../../lib/Common/Common.h:
../../lib/Common/SecureCodingUtil.h:
../../lib/Common/StringUtil.h:
../../lib/Common/Log.h:
../../lib/Common/Config.h:
../../lib/Common/Log.h:
../../lib/Common/MessageQueue.h:
../../lib/Common/Socket.h:
../../lib/Common/DataStructure.h:
../../lib/Common/SystemUtil.h:
../../lib/Common/MessageQueue.h:
../../lib/Common/ThreadUtil.h:
../../lib/Common/SystemUtil.h:
../../lib/Common/SecureCodingUtil.h:
../../include/func_list.h:
../../include/hi_ctrl.h:
../../include/wrk_stat.h:
../../include/hi_packet_format.h:
../../include/tagbl_struc.h:
../../include/taglnk_frame.h:
../../include/tag_chrg.h:
../../include/tag_rfnd.h:
util.h:

@ -0,0 +1,102 @@
make_befchg.o: make_befchg.c ../../include/bef_chg.h \
../../include/file_ctrl.h ../../include/def_set.h \
../../include/type_def.h ../../include/ctrl_job.h \
../../include/file_no.h ../../include/dir_path.h ../../include/file_no.h \
../../include/file_lb.h ../../include/ipc_def.h \
../../include/lane_stat_info.h ../../include/debug_def.h \
../../include/bas_tbl.h ../../include/file_ctrl.h \
../../include/lb_func_list.h ../../include/chg_struc.h \
../../lib/Common/Common.h ../../lib/Common/StringUtil.h \
../../lib/Common/Common.h ../../lib/Common/SecureCodingUtil.h \
../../lib/Common/StringUtil.h ../../lib/Common/Log.h \
../../lib/Common/Config.h ../../lib/Common/Log.h \
../../lib/Common/MessageQueue.h ../../lib/Common/Socket.h \
../../lib/Common/DataStructure.h ../../lib/Common/SystemUtil.h \
../../lib/Common/MessageQueue.h ../../lib/Common/ThreadUtil.h \
../../lib/Common/SystemUtil.h ../../lib/Common/SecureCodingUtil.h \
../../include/func_list.h ../../include/hi_ctrl.h \
../../include/wrk_stat.h ../../include/hi_packet_format.h \
../../include/tagbl_struc.h ../../include/taglnk_frame.h \
../../include/tag_chrg.h ../../include/tag_rfnd.h util.h
../../include/bef_chg.h:
../../include/file_ctrl.h:
../../include/def_set.h:
../../include/type_def.h:
../../include/ctrl_job.h:
../../include/file_no.h:
../../include/dir_path.h:
../../include/file_no.h:
../../include/file_lb.h:
../../include/ipc_def.h:
../../include/lane_stat_info.h:
../../include/debug_def.h:
../../include/bas_tbl.h:
../../include/file_ctrl.h:
../../include/lb_func_list.h:
../../include/chg_struc.h:
../../lib/Common/Common.h:
../../lib/Common/StringUtil.h:
../../lib/Common/Common.h:
../../lib/Common/SecureCodingUtil.h:
../../lib/Common/StringUtil.h:
../../lib/Common/Log.h:
../../lib/Common/Config.h:
../../lib/Common/Log.h:
../../lib/Common/MessageQueue.h:
../../lib/Common/Socket.h:
../../lib/Common/DataStructure.h:
../../lib/Common/SystemUtil.h:
../../lib/Common/MessageQueue.h:
../../lib/Common/ThreadUtil.h:
../../lib/Common/SystemUtil.h:
../../lib/Common/SecureCodingUtil.h:
../../include/func_list.h:
../../include/hi_ctrl.h:
../../include/wrk_stat.h:
../../include/hi_packet_format.h:
../../include/tagbl_struc.h:
../../include/taglnk_frame.h:
../../include/tag_chrg.h:
../../include/tag_rfnd.h:
util.h:

@ -0,0 +1,102 @@
make_befchg2.o: make_befchg2.c ../../include/bef_chg.h \
../../include/file_ctrl.h ../../include/def_set.h \
../../include/type_def.h ../../include/ctrl_job.h \
../../include/file_no.h ../../include/dir_path.h ../../include/file_no.h \
../../include/file_lb.h ../../include/ipc_def.h \
../../include/lane_stat_info.h ../../include/debug_def.h \
../../include/bas_tbl.h ../../include/file_ctrl.h \
../../include/lb_func_list.h ../../include/chg_struc.h \
../../lib/Common/Common.h ../../lib/Common/StringUtil.h \
../../lib/Common/Common.h ../../lib/Common/SecureCodingUtil.h \
../../lib/Common/StringUtil.h ../../lib/Common/Log.h \
../../lib/Common/Config.h ../../lib/Common/Log.h \
../../lib/Common/MessageQueue.h ../../lib/Common/Socket.h \
../../lib/Common/DataStructure.h ../../lib/Common/SystemUtil.h \
../../lib/Common/MessageQueue.h ../../lib/Common/ThreadUtil.h \
../../lib/Common/SystemUtil.h ../../lib/Common/SecureCodingUtil.h \
../../include/func_list.h ../../include/hi_ctrl.h \
../../include/wrk_stat.h ../../include/hi_packet_format.h \
../../include/tagbl_struc.h ../../include/taglnk_frame.h \
../../include/tag_chrg.h ../../include/tag_rfnd.h util.h
../../include/bef_chg.h:
../../include/file_ctrl.h:
../../include/def_set.h:
../../include/type_def.h:
../../include/ctrl_job.h:
../../include/file_no.h:
../../include/dir_path.h:
../../include/file_no.h:
../../include/file_lb.h:
../../include/ipc_def.h:
../../include/lane_stat_info.h:
../../include/debug_def.h:
../../include/bas_tbl.h:
../../include/file_ctrl.h:
../../include/lb_func_list.h:
../../include/chg_struc.h:
../../lib/Common/Common.h:
../../lib/Common/StringUtil.h:
../../lib/Common/Common.h:
../../lib/Common/SecureCodingUtil.h:
../../lib/Common/StringUtil.h:
../../lib/Common/Log.h:
../../lib/Common/Config.h:
../../lib/Common/Log.h:
../../lib/Common/MessageQueue.h:
../../lib/Common/Socket.h:
../../lib/Common/DataStructure.h:
../../lib/Common/SystemUtil.h:
../../lib/Common/MessageQueue.h:
../../lib/Common/ThreadUtil.h:
../../lib/Common/SystemUtil.h:
../../lib/Common/SecureCodingUtil.h:
../../include/func_list.h:
../../include/hi_ctrl.h:
../../include/wrk_stat.h:
../../include/hi_packet_format.h:
../../include/tagbl_struc.h:
../../include/taglnk_frame.h:
../../include/tag_chrg.h:
../../include/tag_rfnd.h:
util.h:

@ -0,0 +1,102 @@
make_befmst.o: make_befmst.c ../../include/bef_mst.h \
../../include/file_ctrl.h ../../include/def_set.h \
../../include/type_def.h ../../include/ctrl_job.h \
../../include/file_no.h ../../include/dir_path.h ../../include/file_no.h \
../../include/file_lb.h ../../include/ipc_def.h \
../../include/lane_stat_info.h ../../include/debug_def.h \
../../include/bas_tbl.h ../../include/file_ctrl.h \
../../include/lb_func_list.h ../../include/chg_struc.h \
../../lib/Common/Common.h ../../lib/Common/StringUtil.h \
../../lib/Common/Common.h ../../lib/Common/SecureCodingUtil.h \
../../lib/Common/StringUtil.h ../../lib/Common/Log.h \
../../lib/Common/Config.h ../../lib/Common/Log.h \
../../lib/Common/MessageQueue.h ../../lib/Common/Socket.h \
../../lib/Common/DataStructure.h ../../lib/Common/SystemUtil.h \
../../lib/Common/MessageQueue.h ../../lib/Common/ThreadUtil.h \
../../lib/Common/SystemUtil.h ../../lib/Common/SecureCodingUtil.h \
../../include/func_list.h ../../include/hi_ctrl.h \
../../include/wrk_stat.h ../../include/hi_packet_format.h \
../../include/tagbl_struc.h ../../include/taglnk_frame.h \
../../include/tag_chrg.h ../../include/tag_rfnd.h util.h
../../include/bef_mst.h:
../../include/file_ctrl.h:
../../include/def_set.h:
../../include/type_def.h:
../../include/ctrl_job.h:
../../include/file_no.h:
../../include/dir_path.h:
../../include/file_no.h:
../../include/file_lb.h:
../../include/ipc_def.h:
../../include/lane_stat_info.h:
../../include/debug_def.h:
../../include/bas_tbl.h:
../../include/file_ctrl.h:
../../include/lb_func_list.h:
../../include/chg_struc.h:
../../lib/Common/Common.h:
../../lib/Common/StringUtil.h:
../../lib/Common/Common.h:
../../lib/Common/SecureCodingUtil.h:
../../lib/Common/StringUtil.h:
../../lib/Common/Log.h:
../../lib/Common/Config.h:
../../lib/Common/Log.h:
../../lib/Common/MessageQueue.h:
../../lib/Common/Socket.h:
../../lib/Common/DataStructure.h:
../../lib/Common/SystemUtil.h:
../../lib/Common/MessageQueue.h:
../../lib/Common/ThreadUtil.h:
../../lib/Common/SystemUtil.h:
../../lib/Common/SecureCodingUtil.h:
../../include/func_list.h:
../../include/hi_ctrl.h:
../../include/wrk_stat.h:
../../include/hi_packet_format.h:
../../include/tagbl_struc.h:
../../include/taglnk_frame.h:
../../include/tag_chrg.h:
../../include/tag_rfnd.h:
util.h:

@ -0,0 +1,102 @@
make_exemptchg.o: make_exemptchg.c ../../include/bef_chg.h \
../../include/file_ctrl.h ../../include/def_set.h \
../../include/type_def.h ../../include/ctrl_job.h \
../../include/file_no.h ../../include/dir_path.h ../../include/file_no.h \
../../include/file_lb.h ../../include/ipc_def.h \
../../include/lane_stat_info.h ../../include/debug_def.h \
../../include/bas_tbl.h ../../include/file_ctrl.h \
../../include/lb_func_list.h ../../include/chg_struc.h \
../../lib/Common/Common.h ../../lib/Common/StringUtil.h \
../../lib/Common/Common.h ../../lib/Common/SecureCodingUtil.h \
../../lib/Common/StringUtil.h ../../lib/Common/Log.h \
../../lib/Common/Config.h ../../lib/Common/Log.h \
../../lib/Common/MessageQueue.h ../../lib/Common/Socket.h \
../../lib/Common/DataStructure.h ../../lib/Common/SystemUtil.h \
../../lib/Common/MessageQueue.h ../../lib/Common/ThreadUtil.h \
../../lib/Common/SystemUtil.h ../../lib/Common/SecureCodingUtil.h \
../../include/func_list.h ../../include/hi_ctrl.h \
../../include/wrk_stat.h ../../include/hi_packet_format.h \
../../include/tagbl_struc.h ../../include/taglnk_frame.h \
../../include/tag_chrg.h ../../include/tag_rfnd.h util.h
../../include/bef_chg.h:
../../include/file_ctrl.h:
../../include/def_set.h:
../../include/type_def.h:
../../include/ctrl_job.h:
../../include/file_no.h:
../../include/dir_path.h:
../../include/file_no.h:
../../include/file_lb.h:
../../include/ipc_def.h:
../../include/lane_stat_info.h:
../../include/debug_def.h:
../../include/bas_tbl.h:
../../include/file_ctrl.h:
../../include/lb_func_list.h:
../../include/chg_struc.h:
../../lib/Common/Common.h:
../../lib/Common/StringUtil.h:
../../lib/Common/Common.h:
../../lib/Common/SecureCodingUtil.h:
../../lib/Common/StringUtil.h:
../../lib/Common/Log.h:
../../lib/Common/Config.h:
../../lib/Common/Log.h:
../../lib/Common/MessageQueue.h:
../../lib/Common/Socket.h:
../../lib/Common/DataStructure.h:
../../lib/Common/SystemUtil.h:
../../lib/Common/MessageQueue.h:
../../lib/Common/ThreadUtil.h:
../../lib/Common/SystemUtil.h:
../../lib/Common/SecureCodingUtil.h:
../../include/func_list.h:
../../include/hi_ctrl.h:
../../include/wrk_stat.h:
../../include/hi_packet_format.h:
../../include/tagbl_struc.h:
../../include/taglnk_frame.h:
../../include/tag_chrg.h:
../../include/tag_rfnd.h:
util.h:

@ -0,0 +1,102 @@
make_exemptmst.o: make_exemptmst.c ../../include/bef_mst.h \
../../include/file_ctrl.h ../../include/def_set.h \
../../include/type_def.h ../../include/ctrl_job.h \
../../include/file_no.h ../../include/dir_path.h ../../include/file_no.h \
../../include/file_lb.h ../../include/ipc_def.h \
../../include/lane_stat_info.h ../../include/debug_def.h \
../../include/bas_tbl.h ../../include/file_ctrl.h \
../../include/lb_func_list.h ../../include/chg_struc.h \
../../lib/Common/Common.h ../../lib/Common/StringUtil.h \
../../lib/Common/Common.h ../../lib/Common/SecureCodingUtil.h \
../../lib/Common/StringUtil.h ../../lib/Common/Log.h \
../../lib/Common/Config.h ../../lib/Common/Log.h \
../../lib/Common/MessageQueue.h ../../lib/Common/Socket.h \
../../lib/Common/DataStructure.h ../../lib/Common/SystemUtil.h \
../../lib/Common/MessageQueue.h ../../lib/Common/ThreadUtil.h \
../../lib/Common/SystemUtil.h ../../lib/Common/SecureCodingUtil.h \
../../include/func_list.h ../../include/hi_ctrl.h \
../../include/wrk_stat.h ../../include/hi_packet_format.h \
../../include/tagbl_struc.h ../../include/taglnk_frame.h \
../../include/tag_chrg.h ../../include/tag_rfnd.h util.h
../../include/bef_mst.h:
../../include/file_ctrl.h:
../../include/def_set.h:
../../include/type_def.h:
../../include/ctrl_job.h:
../../include/file_no.h:
../../include/dir_path.h:
../../include/file_no.h:
../../include/file_lb.h:
../../include/ipc_def.h:
../../include/lane_stat_info.h:
../../include/debug_def.h:
../../include/bas_tbl.h:
../../include/file_ctrl.h:
../../include/lb_func_list.h:
../../include/chg_struc.h:
../../lib/Common/Common.h:
../../lib/Common/StringUtil.h:
../../lib/Common/Common.h:
../../lib/Common/SecureCodingUtil.h:
../../lib/Common/StringUtil.h:
../../lib/Common/Log.h:
../../lib/Common/Config.h:
../../lib/Common/Log.h:
../../lib/Common/MessageQueue.h:
../../lib/Common/Socket.h:
../../lib/Common/DataStructure.h:
../../lib/Common/SystemUtil.h:
../../lib/Common/MessageQueue.h:
../../lib/Common/ThreadUtil.h:
../../lib/Common/SystemUtil.h:
../../lib/Common/SecureCodingUtil.h:
../../include/func_list.h:
../../include/hi_ctrl.h:
../../include/wrk_stat.h:
../../include/hi_packet_format.h:
../../include/tagbl_struc.h:
../../include/taglnk_frame.h:
../../include/tag_chrg.h:
../../include/tag_rfnd.h:
util.h:

@ -0,0 +1,102 @@
make_redchg.o: make_redchg.c ../../include/bef_chg.h \
../../include/file_ctrl.h ../../include/def_set.h \
../../include/type_def.h ../../include/ctrl_job.h \
../../include/file_no.h ../../include/dir_path.h ../../include/file_no.h \
../../include/file_lb.h ../../include/ipc_def.h \
../../include/lane_stat_info.h ../../include/debug_def.h \
../../include/bas_tbl.h ../../include/file_ctrl.h \
../../include/lb_func_list.h ../../include/chg_struc.h \
../../lib/Common/Common.h ../../lib/Common/StringUtil.h \
../../lib/Common/Common.h ../../lib/Common/SecureCodingUtil.h \
../../lib/Common/StringUtil.h ../../lib/Common/Log.h \
../../lib/Common/Config.h ../../lib/Common/Log.h \
../../lib/Common/MessageQueue.h ../../lib/Common/Socket.h \
../../lib/Common/DataStructure.h ../../lib/Common/SystemUtil.h \
../../lib/Common/MessageQueue.h ../../lib/Common/ThreadUtil.h \
../../lib/Common/SystemUtil.h ../../lib/Common/SecureCodingUtil.h \
../../include/func_list.h ../../include/hi_ctrl.h \
../../include/wrk_stat.h ../../include/hi_packet_format.h \
../../include/tagbl_struc.h ../../include/taglnk_frame.h \
../../include/tag_chrg.h ../../include/tag_rfnd.h util.h
../../include/bef_chg.h:
../../include/file_ctrl.h:
../../include/def_set.h:
../../include/type_def.h:
../../include/ctrl_job.h:
../../include/file_no.h:
../../include/dir_path.h:
../../include/file_no.h:
../../include/file_lb.h:
../../include/ipc_def.h:
../../include/lane_stat_info.h:
../../include/debug_def.h:
../../include/bas_tbl.h:
../../include/file_ctrl.h:
../../include/lb_func_list.h:
../../include/chg_struc.h:
../../lib/Common/Common.h:
../../lib/Common/StringUtil.h:
../../lib/Common/Common.h:
../../lib/Common/SecureCodingUtil.h:
../../lib/Common/StringUtil.h:
../../lib/Common/Log.h:
../../lib/Common/Config.h:
../../lib/Common/Log.h:
../../lib/Common/MessageQueue.h:
../../lib/Common/Socket.h:
../../lib/Common/DataStructure.h:
../../lib/Common/SystemUtil.h:
../../lib/Common/MessageQueue.h:
../../lib/Common/ThreadUtil.h:
../../lib/Common/SystemUtil.h:
../../lib/Common/SecureCodingUtil.h:
../../include/func_list.h:
../../include/hi_ctrl.h:
../../include/wrk_stat.h:
../../include/hi_packet_format.h:
../../include/tagbl_struc.h:
../../include/taglnk_frame.h:
../../include/tag_chrg.h:
../../include/tag_rfnd.h:
util.h:

@ -0,0 +1,102 @@
make_redmst.o: make_redmst.c ../../include/bef_mst.h \
../../include/file_ctrl.h ../../include/def_set.h \
../../include/type_def.h ../../include/ctrl_job.h \
../../include/file_no.h ../../include/dir_path.h ../../include/file_no.h \
../../include/file_lb.h ../../include/ipc_def.h \
../../include/lane_stat_info.h ../../include/debug_def.h \
../../include/bas_tbl.h ../../include/file_ctrl.h \
../../include/lb_func_list.h ../../include/chg_struc.h \
../../lib/Common/Common.h ../../lib/Common/StringUtil.h \
../../lib/Common/Common.h ../../lib/Common/SecureCodingUtil.h \
../../lib/Common/StringUtil.h ../../lib/Common/Log.h \
../../lib/Common/Config.h ../../lib/Common/Log.h \
../../lib/Common/MessageQueue.h ../../lib/Common/Socket.h \
../../lib/Common/DataStructure.h ../../lib/Common/SystemUtil.h \
../../lib/Common/MessageQueue.h ../../lib/Common/ThreadUtil.h \
../../lib/Common/SystemUtil.h ../../lib/Common/SecureCodingUtil.h \
../../include/func_list.h ../../include/hi_ctrl.h \
../../include/wrk_stat.h ../../include/hi_packet_format.h \
../../include/tagbl_struc.h ../../include/taglnk_frame.h \
../../include/tag_chrg.h ../../include/tag_rfnd.h util.h
../../include/bef_mst.h:
../../include/file_ctrl.h:
../../include/def_set.h:
../../include/type_def.h:
../../include/ctrl_job.h:
../../include/file_no.h:
../../include/dir_path.h:
../../include/file_no.h:
../../include/file_lb.h:
../../include/ipc_def.h:
../../include/lane_stat_info.h:
../../include/debug_def.h:
../../include/bas_tbl.h:
../../include/file_ctrl.h:
../../include/lb_func_list.h:
../../include/chg_struc.h:
../../lib/Common/Common.h:
../../lib/Common/StringUtil.h:
../../lib/Common/Common.h:
../../lib/Common/SecureCodingUtil.h:
../../lib/Common/StringUtil.h:
../../lib/Common/Log.h:
../../lib/Common/Config.h:
../../lib/Common/Log.h:
../../lib/Common/MessageQueue.h:
../../lib/Common/Socket.h:
../../lib/Common/DataStructure.h:
../../lib/Common/SystemUtil.h:
../../lib/Common/MessageQueue.h:
../../lib/Common/ThreadUtil.h:
../../lib/Common/SystemUtil.h:
../../lib/Common/SecureCodingUtil.h:
../../include/func_list.h:
../../include/hi_ctrl.h:
../../include/wrk_stat.h:
../../include/hi_packet_format.h:
../../include/tagbl_struc.h:
../../include/taglnk_frame.h:
../../include/tag_chrg.h:
../../include/tag_rfnd.h:
util.h:

@ -0,0 +1,102 @@
make_rfidchg.o: make_rfidchg.c ../../include/bef_chg.h \
../../include/file_ctrl.h ../../include/def_set.h \
../../include/type_def.h ../../include/ctrl_job.h \
../../include/file_no.h ../../include/dir_path.h ../../include/file_no.h \
../../include/file_lb.h ../../include/ipc_def.h \
../../include/lane_stat_info.h ../../include/debug_def.h \
../../include/bas_tbl.h ../../include/file_ctrl.h \
../../include/lb_func_list.h ../../include/chg_struc.h \
../../lib/Common/Common.h ../../lib/Common/StringUtil.h \
../../lib/Common/Common.h ../../lib/Common/SecureCodingUtil.h \
../../lib/Common/StringUtil.h ../../lib/Common/Log.h \
../../lib/Common/Config.h ../../lib/Common/Log.h \
../../lib/Common/MessageQueue.h ../../lib/Common/Socket.h \
../../lib/Common/DataStructure.h ../../lib/Common/SystemUtil.h \
../../lib/Common/MessageQueue.h ../../lib/Common/ThreadUtil.h \
../../lib/Common/SystemUtil.h ../../lib/Common/SecureCodingUtil.h \
../../include/func_list.h ../../include/hi_ctrl.h \
../../include/wrk_stat.h ../../include/hi_packet_format.h \
../../include/tagbl_struc.h ../../include/taglnk_frame.h \
../../include/tag_chrg.h ../../include/tag_rfnd.h util.h
../../include/bef_chg.h:
../../include/file_ctrl.h:
../../include/def_set.h:
../../include/type_def.h:
../../include/ctrl_job.h:
../../include/file_no.h:
../../include/dir_path.h:
../../include/file_no.h:
../../include/file_lb.h:
../../include/ipc_def.h:
../../include/lane_stat_info.h:
../../include/debug_def.h:
../../include/bas_tbl.h:
../../include/file_ctrl.h:
../../include/lb_func_list.h:
../../include/chg_struc.h:
../../lib/Common/Common.h:
../../lib/Common/StringUtil.h:
../../lib/Common/Common.h:
../../lib/Common/SecureCodingUtil.h:
../../lib/Common/StringUtil.h:
../../lib/Common/Log.h:
../../lib/Common/Config.h:
../../lib/Common/Log.h:
../../lib/Common/MessageQueue.h:
../../lib/Common/Socket.h:
../../lib/Common/DataStructure.h:
../../lib/Common/SystemUtil.h:
../../lib/Common/MessageQueue.h:
../../lib/Common/ThreadUtil.h:
../../lib/Common/SystemUtil.h:
../../lib/Common/SecureCodingUtil.h:
../../include/func_list.h:
../../include/hi_ctrl.h:
../../include/wrk_stat.h:
../../include/hi_packet_format.h:
../../include/tagbl_struc.h:
../../include/taglnk_frame.h:
../../include/tag_chrg.h:
../../include/tag_rfnd.h:
util.h:

@ -0,0 +1,102 @@
make_rfidmst.o: make_rfidmst.c ../../include/bef_mst.h \
../../include/file_ctrl.h ../../include/def_set.h \
../../include/type_def.h ../../include/ctrl_job.h \
../../include/file_no.h ../../include/dir_path.h ../../include/file_no.h \
../../include/file_lb.h ../../include/ipc_def.h \
../../include/lane_stat_info.h ../../include/debug_def.h \
../../include/bas_tbl.h ../../include/file_ctrl.h \
../../include/lb_func_list.h ../../include/chg_struc.h \
../../lib/Common/Common.h ../../lib/Common/StringUtil.h \
../../lib/Common/Common.h ../../lib/Common/SecureCodingUtil.h \
../../lib/Common/StringUtil.h ../../lib/Common/Log.h \
../../lib/Common/Config.h ../../lib/Common/Log.h \
../../lib/Common/MessageQueue.h ../../lib/Common/Socket.h \
../../lib/Common/DataStructure.h ../../lib/Common/SystemUtil.h \
../../lib/Common/MessageQueue.h ../../lib/Common/ThreadUtil.h \
../../lib/Common/SystemUtil.h ../../lib/Common/SecureCodingUtil.h \
../../include/func_list.h ../../include/hi_ctrl.h \
../../include/wrk_stat.h ../../include/hi_packet_format.h \
../../include/tagbl_struc.h ../../include/taglnk_frame.h \
../../include/tag_chrg.h ../../include/tag_rfnd.h util.h
../../include/bef_mst.h:
../../include/file_ctrl.h:
../../include/def_set.h:
../../include/type_def.h:
../../include/ctrl_job.h:
../../include/file_no.h:
../../include/dir_path.h:
../../include/file_no.h:
../../include/file_lb.h:
../../include/ipc_def.h:
../../include/lane_stat_info.h:
../../include/debug_def.h:
../../include/bas_tbl.h:
../../include/file_ctrl.h:
../../include/lb_func_list.h:
../../include/chg_struc.h:
../../lib/Common/Common.h:
../../lib/Common/StringUtil.h:
../../lib/Common/Common.h:
../../lib/Common/SecureCodingUtil.h:
../../lib/Common/StringUtil.h:
../../lib/Common/Log.h:
../../lib/Common/Config.h:
../../lib/Common/Log.h:
../../lib/Common/MessageQueue.h:
../../lib/Common/Socket.h:
../../lib/Common/DataStructure.h:
../../lib/Common/SystemUtil.h:
../../lib/Common/MessageQueue.h:
../../lib/Common/ThreadUtil.h:
../../lib/Common/SystemUtil.h:
../../lib/Common/SecureCodingUtil.h:
../../include/func_list.h:
../../include/hi_ctrl.h:
../../include/wrk_stat.h:
../../include/hi_packet_format.h:
../../include/tagbl_struc.h:
../../include/taglnk_frame.h:
../../include/tag_chrg.h:
../../include/tag_rfnd.h:
util.h:

@ -0,0 +1,102 @@
make_worker.o: make_worker.c ../../include/wrkr_info.h \
../../include/file_ctrl.h ../../include/def_set.h \
../../include/type_def.h ../../include/ctrl_job.h \
../../include/file_no.h ../../include/dir_path.h ../../include/file_no.h \
../../include/file_lb.h ../../include/ipc_def.h \
../../include/lane_stat_info.h ../../include/file_ctrl.h \
../../include/debug_def.h ../../include/bas_tbl.h \
../../include/lb_func_list.h ../../include/chg_struc.h \
../../lib/Common/Common.h ../../lib/Common/StringUtil.h \
../../lib/Common/Common.h ../../lib/Common/SecureCodingUtil.h \
../../lib/Common/StringUtil.h ../../lib/Common/Log.h \
../../lib/Common/Config.h ../../lib/Common/Log.h \
../../lib/Common/MessageQueue.h ../../lib/Common/Socket.h \
../../lib/Common/DataStructure.h ../../lib/Common/SystemUtil.h \
../../lib/Common/MessageQueue.h ../../lib/Common/ThreadUtil.h \
../../lib/Common/SystemUtil.h ../../lib/Common/SecureCodingUtil.h \
../../include/func_list.h ../../include/hi_ctrl.h \
../../include/wrk_stat.h ../../include/hi_packet_format.h \
../../include/tagbl_struc.h ../../include/taglnk_frame.h \
../../include/tag_chrg.h ../../include/tag_rfnd.h util.h
../../include/wrkr_info.h:
../../include/file_ctrl.h:
../../include/def_set.h:
../../include/type_def.h:
../../include/ctrl_job.h:
../../include/file_no.h:
../../include/dir_path.h:
../../include/file_no.h:
../../include/file_lb.h:
../../include/ipc_def.h:
../../include/lane_stat_info.h:
../../include/file_ctrl.h:
../../include/debug_def.h:
../../include/bas_tbl.h:
../../include/lb_func_list.h:
../../include/chg_struc.h:
../../lib/Common/Common.h:
../../lib/Common/StringUtil.h:
../../lib/Common/Common.h:
../../lib/Common/SecureCodingUtil.h:
../../lib/Common/StringUtil.h:
../../lib/Common/Log.h:
../../lib/Common/Config.h:
../../lib/Common/Log.h:
../../lib/Common/MessageQueue.h:
../../lib/Common/Socket.h:
../../lib/Common/DataStructure.h:
../../lib/Common/SystemUtil.h:
../../lib/Common/MessageQueue.h:
../../lib/Common/ThreadUtil.h:
../../lib/Common/SystemUtil.h:
../../lib/Common/SecureCodingUtil.h:
../../include/func_list.h:
../../include/hi_ctrl.h:
../../include/wrk_stat.h:
../../include/hi_packet_format.h:
../../include/tagbl_struc.h:
../../include/taglnk_frame.h:
../../include/tag_chrg.h:
../../include/tag_rfnd.h:
util.h:

@ -0,0 +1,52 @@
util.o: util.c util.h MessageInfo.h ../../lib/Common/Common.h \
../../lib/Common/CURLUtil.h ../../lib/Common/Common.h \
../../lib/Common/Config.h ../../lib/Common/SecureCodingUtil.h \
../../lib/Common/StringUtil.h ../../lib/Common/Log.h \
../../lib/Common/Socket.h ../../lib/Common/DataStructure.h \
../../lib/Common/SystemUtil.h ../../lib/Common/MessageQueue.h \
../../lib/Common/Socket.h ../../lib/Common/ThreadUtil.h \
RestfulConverter.h ../../lib/Common/StringUtil.h ../../lib/Common/Log.h \
../../lib/Common/MessageQueue.h ../../lib/Common/SystemUtil.h \
../../lib/Common/SecureCodingUtil.h
util.h:
MessageInfo.h:
../../lib/Common/Common.h:
../../lib/Common/CURLUtil.h:
../../lib/Common/Common.h:
../../lib/Common/Config.h:
../../lib/Common/SecureCodingUtil.h:
../../lib/Common/StringUtil.h:
../../lib/Common/Log.h:
../../lib/Common/Socket.h:
../../lib/Common/DataStructure.h:
../../lib/Common/SystemUtil.h:
../../lib/Common/MessageQueue.h:
../../lib/Common/Socket.h:
../../lib/Common/ThreadUtil.h:
RestfulConverter.h:
../../lib/Common/StringUtil.h:
../../lib/Common/Log.h:
../../lib/Common/MessageQueue.h:
../../lib/Common/SystemUtil.h:
../../lib/Common/SecureCodingUtil.h:

@ -0,0 +1,196 @@
COMMON_DIR = ../../lib/Common
USERINC = ../../include
#---------------------------------------------------------------------------
# 라이브러리 옵션
#---------------------------------------------------------------------------
ifeq ($(OS),Windows_NT)
SYS_LIBS = -L"C:\mingw-w64\x86_64-8.1.0-posix-seh-rt_v6-rev0\mingw64\lib" -L"C:\Program Files (x86)\rabbitmq-c\lib" -L"C:\mingw-w64\x86_64-8.1.0-posix-seh-rt_v6-rev0\mingw64\x86_64-w64-mingw32\lib"
#LINK_LIB = $(SYS_LIBS) "C:\Program Files (x86)\rabbitmq-c\lib\librabbitmq.4.dll.a" -lrpcrt4 -lws2_32 -lrabbitmq4
LINK_LIB = $(SYS_LIBS) -lrpcrt4 -lws2_32 "C:\Program Files (x86)\rabbitmq-c\lib\librabbitmq.4.dll.a"
else
#ORACLE_HOME=/oracle/app/oracle/product/11.2.0/dbhome_1
SYS_LIBS = -L/usr/lib64
#OPEN_LIBS = -lsafec-3.3 -lrabbitmq -luuid
OPEN_LIBS = -lrabbitmq -luuid -lm -lcurl
#ORACLE_LIB_PATH = $(ORACLE_HOME)/lib
#ORACLE_LIBS = `cat $(ORACLE_HOME)/lib/sysliblist` -lclntsh
#$(info ORACLE_LIBS=$(ORACLE_LIBS))
#LINK_LIB = $(SYS_LIBS) $(ORACLE_LIBS) $(OPEN_LIBS)
QUESLIB = $(HOME)/GREEN_LANE/src/modules/libmsq.a
USERLIB = $(HOME)/GREEN_LANE/src/modules/libtcs.a
LINK_LIB = $(SYS_LIBS) $(OPEN_LIBS) $(QUESLIB) $(USERLIB)
#LDFLAGS = -Xlinker -L$(COMMON_DIR) -lFireAntCommon
LDFLAGS = -Xlinker -L$(COMMON_DIR) -L/app/tcs/librab/build/librabbitmq
endif
#---------------------------------------------------------------------------
# 컴파일 옵션
#---------------------------------------------------------------------------
DEPDIR := .d
ifeq ($(OS),Windows_NT)
$(shell IF NOT EXIST $(DEPDIR) mkdir $(DEPDIR))
OBJEXT = obj
OUTPUTEXT = .exe
else
$(shell mkdir -p $(DEPDIR) >/dev/null)
OBJEXT = o
OUTPUTEXT =
endif
#CFLAGS = -std=gnu99 -I$(COMMON_DIR) -I/usr/include -I/usr/local/include/safec-3.3 -I/usr/local/lib/safec-3.3/include -DDEBUG -D_DEBUG -pthread
CFLAGS = -std=gnu99 -I$(COMMON_DIR) -I$(USERINC)
DEBUG_CFLAGS = -g -Wall
PROCFLAGS =
CC = gcc
ifeq ($(OS),Windows_NT)
DEBUG_CFLAGS +=
CFLAGS += -I"C:\mingw-w64\x86_64-8.1.0-posix-seh-rt_v6-rev0\mingw64\include" -I"C:\Program Files (x86)\rabbitmq-c\include" -pthread
LDFLAGS += -L"C:\mingw-w64\x86_64-8.1.0-posix-seh-rt_v6-rev0\mingw64\lib" -L"C:\Program Files (x86)\rabbitmq-c\lib" -pthread
POSTCOMPILE = (IF EXIST $(DEPDIR)\$*.d del $(DEPDIR)\$*.d) && rename $(DEPDIR)\$*.Td $*.d
else
DEBUG_CFLAGS += -rdynamic
CFLAGS += -I/usr/include -I/usr/local/include/safec-3.3 -I/usr/local/lib/safec-3.3/include -DDEBUG -D_DEBUG -pthread
LDFLAGS += -L/usr/lib64 -L/usr/loca/lib -L/usr/local/lib64 -pthread
POSTCOMPILE = @mv -f $(DEPDIR)/$*.Td $(DEPDIR)/$*.d && touch $@
RELEASE_ID=$(shell cat /etc/*-release | grep -w ID | awk -F= '{print $$2}' | sed 's/"//g')
ifeq ($(RELEASE_ID),alpine)
#CFLAGS += -I/usr/lib/bcc/include/asm -I/usr/lib/bcc/include
LDFLAGS += -lexecinfo
endif
endif
DEPFLAGS = -MT $@ -MMD -MP -MF $(DEPDIR)/$*.Td
COMPILE.c = $(CC) $(DEPFLAGS) $(DEBUG_CFLAGS) $(CFLAGS) $(CPPFLAGS) $(TARGET_ARCH) -c
COMPILE.cc = $(CXX) $(DEPFLAGS) $(DEBUG_CFLAGS) $(CXXFLAGS) $(CPPFLAGS) $(TARGET_ARCH) -c
#POSTCOMPILE = @mv -f $(DEPDIR)/$*.Td $(DEPDIR)/$*.d && touch $@
#DEP_FILES = $(wildcard $(patsubst %,$(DEPDIR)/%.d,$(basename $(SRCS))))
#$(info DEP_FILES:$(DEP_FILES))
#---------------------------------------------------------------------------
# 파일 설정
#---------------------------------------------------------------------------
# 참고사항 : 변수 정의시 =을 사용하면 즉시 값이 결정되는 것이 아니고 사용될 시 값이 결정된다.
# 즉 OBJ FILES의 경우 =을 이용하면 pc파일에 대한 오브젝트 파일과 c파일에 대한 오브젝트
# 파일이 호출시 결정되어 2개가 변수에 포함된다.
PC_SRC_FILES = $(wildcard *.pc)
PC2C_FILES = $(PC_SRC_FILES:.pc=.c)
#$(info PC2C_FILES:$(PC2C_FILES))
$(shell rm -rf $(PC2C_FILES))
C_SRC_FILES = $(wildcard *.c)
OBJ_FILES := $(C_SRC_FILES:.c=.$(OBJEXT)) $(PC_SRC_FILES:.pc=.$(OBJEXT))
# $(patsubst %.c,%.$(OBJEXT),$(C_SRC_FILES))
# @echo 명령은 실행 블럭에서만 실행되므로 변수 영역에서는 info를 이용한다.
#$(info C_SRC_FILES:$(C_SRC_FILES))
#$(info OBJ_FILES:$(OBJ_FILES))
#---------------------------------------------------------------------------
# 확장자 처리
#---------------------------------------------------------------------------
#기존처리방식
#.SUFFIXES : .pc .c .o
#
#.c.o :
# $(CC) $(CFLAGS) -c $(DFLAGS) $<
#
#.pc.o :
# $(PROC) iname=$*.pc $(PROCFLAGS) $(PROCINC)
# $(CC) $(CFLAGS) -c $*.c
# mv $*.c $(CTEMPD)
#.SUFFIXES : .pc .c .o
#Auto Dependency 생성을 위한 신규 규칙
%.$(OBJEXT):%.pc
%.$(OBJEXT):%.pc $(DEPDIR)/%.d
$(PROC) iname=$*.pc $(PROCFLAGS) $(PROCINC)
$(COMPILE.c) $(OUTPUT_OPTION) $<
$(POSTCOMPILE)
%.$(OBJEXT):%.c
%.$(OBJEXT):%.c $(DEPDIR)/%.d
$(COMPILE.c) $(OUTPUT_OPTION) $<
$(POSTCOMPILE)
%.$(OBJEXT):%.cc
%.$(OBJEXT):%.cc $(DEPDIR)/%.d
$(COMPILE.cc) $(OUTPUT_OPTION) $<
$(POSTCOMPILE)
%.$(OBJEXT):%.cxx
%.$(OBJEXT):%.cxx $(DEPDIR)/%.d
$(COMPILE.cc) $(OUTPUT_OPTION) $<
$(POSTCOMPILE)
$(DEPDIR)/%.d: ;
.PRECIOUS: $(DEPDIR)/%.d
#---------------------------------------------------------------------------
# 컴파일과 make 아웃풋 설정
#---------------------------------------------------------------------------
define del-pc2cfile
del $(1)
endef
COMMON_OBJS = $(wildcard ../../Common/*.$(OBJEXT))
RESTFULCONVERTER_OBJ_FILES = RestfulConverter.$(OBJEXT) ProcessMessage.$(OBJEXT) util.$(OBJEXT) make_befchg.$(OBJEXT) make_befmst.$(OBJEXT) make_exemptchg.$(OBJEXT) make_exemptmst.$(OBJEXT) \
make_redchg.$(OBJEXT) make_redmst.$(OBJEXT) make_rfidchg.$(OBJEXT) make_rfidmst.$(OBJEXT) make_basic.$(OBJEXT) make_worker.$(OBJEXT) make_befchg2.$(OBJEXT)
#CLEARINGGW_OBJ_FILES = ClearingGW.o \
# $(COMMON_DIR)/Config.o \
# $(COMMON_DIR)/Log.o \
# $(COMMON_DIR)/MessageQueue.o \
# $(COMMON_DIR)/Socket.o \
# $(COMMON_DIR)/StringUtil.o \
# $(COMMON_DIR)/SystemUtil.o \
# $(COMMON_DIR)/DataStructure.o
re: clean compile install
all: compile
#compile: $(RESTFULCONVERTER_OBJ_FILES) $(COMMON_DIR)/libFireAntCommon.so
# gcc -o RestfulConverter$(OUTPUTEXT) $(RESTFULCONVERTER_OBJ_FILES) $(LDFLAGS) $(LINK_LIB) $(DEBUG_CFLAGS)
compile: $(RESTFULCONVERTER_OBJ_FILES)
gcc -o RestfulConverter$(OUTPUTEXT) $(RESTFULCONVERTER_OBJ_FILES) $(LDFLAGS) $(LINK_LIB) $(DEBUG_CFLAGS)
#cp MessageProcessor ../../../bin/Processors
#ifeq ($(OS),Windows_NT)
# copy RestfulConverter$(OUTPUTEXT) ..\..\..\bin\Processors
#else
# cp RestfulConverter$(OUTPUTEXT) ../../../bin/Processors
#endif
install:
#cp MessageProcessor ../../../bin/Processors
ifeq ($(OS),Windows_NT)
copy RestfulConverter$(OUTPUTEXT) ..\..\..\bin\Processors\RestfulConverter$(OUTPUTEXT)
else
cp RestfulConverter$(OUTPUTEXT) $(HOME)/GREEN_LANE/bin/RestfulConverter$(OUTPUTEXT)
endif
dep:;
clean:
ifeq ($(OS),Windows_NT)
del *.$(OBJEXT)
rd /s /q .d
# del $(PC2C_FILES)
$(foreach PC2C_FILENAME,$(PC2C_FILES),$(call del-pc2cfile,$(PC2C_FILENAME)))
IF EXIST *.bak del *.bak
else
rm -rf *.$(OBJEXT)
rm -rf .d
rm -rf $(PC2C_FILES)
rm -rf *.bak
endif
include $(wildcard $(patsubst %,$(DEPDIR)/%.d,$(basename $(C_SRC_FILES))))

@ -0,0 +1,86 @@
#ifndef __MESSAGEINFO_H__
#define __MESSAGEINFO_H__
#ifdef __cplusplus
#ifndef BEGIN_DECLS
#define BEGIN_DECLS extern "C" {
#endif
#ifndef END_DECLS
#define END_DECLS }
#endif
#else
#ifndef BEGIN_DECLS
#define BEGIN_DECLS
#endif
#ifndef END_DECLS
#define END_DECLS
#endif
#endif
BEGIN_DECLS
#include <curl/curl.h>
#include "Common.h"
#include "CURLUtil.h"
#include "Socket.h"
#include "RestfulConverter.h"
#define MAX_MESSAGE_ID 10
#define RC_ERR_SUCCESS 0
#define RC_ERR_FORMAT -1
struct MESSAGE_FUNC_INFO
{
char szMessageID[MAX_MESSAGE_ID +1];
char szMessageComment[MAX_STRING_SIZE + 1];
int (*MessageProcessFunc)(int nThreadIndex, CURL *pCurlContext, char *pRecvMessage, int nRecvMessageLength, char *pRespMessage, int nRespMessageLength, char *pRespCode);
};
extern struct MESSAGE_FUNC_INFO g_sMessageFuncInfo[];
int (*FindProcessFunction(char *pMessageID))(int nThreadIndex, CURL *pCurlContext, char *pRecvMessage, int nRecvMessageLength, char *pRespMessage, int nRespMessageLength, char *pRespCode);
int MessageProc_00010010(int nThreadIndex, CURL *pCurlContext, char *pRecvMessage, int nRecvMessageLength, char *pRespMessage, int nRespMessageLength, char *pRespCode);
int MessageProc_00020010(int nThreadIndex, CURL *pCurlContext, char *pRecvMessage, int nRecvMessageLength, char *pRespMessage, int nRespMessageLength, char *pRespCode);
int MessageProc_00030010(int nThreadIndex, CURL *pCurlContext, char *pRecvMessage, int nRecvMessageLength, char *pRespMessage, int nRespMessageLength, char *pRespCode);
int MessageProc_00040010(int nThreadIndex, CURL *pCurlContext, char *pRecvMessage, int nRecvMessageLength, char *pRespMessage, int nRespMessageLength, char *pRespCode);
int MessageProc_00050010(int nThreadIndex, CURL *pCurlContext, char *pRecvMessage, int nRecvMessageLength, char *pRespMessage, int nRespMessageLength, char *pRespCode);
int MessageProc_00110010(int nThreadIndex, CURL *pCurlContext, char *pRecvMessage, int nRecvMessageLength, char *pRespMessage, int nRespMessageLength, char *pRespCode);
int MessageProc_00210010(int nThreadIndex, CURL *pCurlContext, char *pRecvMessage, int nRecvMessageLength, char *pRespMessage, int nRespMessageLength, char *pRespCode);
int MessageProc_00210011(int nThreadIndex, CURL *pCurlContext, char *pRecvMessage, int nRecvMessageLength, char *pRespMessage, int nRespMessageLength, char *pRespCode);
int MessageProc_00210020(int nThreadIndex, CURL *pCurlContext, char *pRecvMessage, int nRecvMessageLength, char *pRespMessage, int nRespMessageLength, char *pRespCode);
int MessageProc_00210030(int nThreadIndex, CURL *pCurlContext, char *pRecvMessage, int nRecvMessageLength, char *pRespMessage, int nRespMessageLength, char *pRespCode);
int MessageProc_00220010(int nThreadIndex, CURL *pCurlContext, char *pRecvMessage, int nRecvMessageLength, char *pRespMessage, int nRespMessageLength, char *pRespCode);
int MessageProc_00220011(int nThreadIndex, CURL *pCurlContext, char *pRecvMessage, int nRecvMessageLength, char *pRespMessage, int nRespMessageLength, char *pRespCode);
int MessageProc_00220030(int nThreadIndex, CURL *pCurlContext, char *pRecvMessage, int nRecvMessageLength, char *pRespMessage, int nRespMessageLength, char *pRespCode);
int MessageProc_00230010(int nThreadIndex, CURL *pCurlContext, char *pRecvMessage, int nRecvMessageLength, char *pRespMessage, int nRespMessageLength, char *pRespCode);
int MessageProc_00230011(int nThreadIndex, CURL *pCurlContext, char *pRecvMessage, int nRecvMessageLength, char *pRespMessage, int nRespMessageLength, char *pRespCode);
int MessageProc_00230030(int nThreadIndex, CURL *pCurlContext, char *pRecvMessage, int nRecvMessageLength, char *pRespMessage, int nRespMessageLength, char *pRespCode);
int MessageProc_00240010(int nThreadIndex, CURL *pCurlContext, char *pRecvMessage, int nRecvMessageLength, char *pRespMessage, int nRespMessageLength, char *pRespCode);
int MessageProc_00240011(int nThreadIndex, CURL *pCurlContext, char *pRecvMessage, int nRecvMessageLength, char *pRespMessage, int nRespMessageLength, char *pRespCode);
int MessageProc_00240030(int nThreadIndex, CURL *pCurlContext, char *pRecvMessage, int nRecvMessageLength, char *pRespMessage, int nRespMessageLength, char *pRespCode);
//2019.08.28 New Work
int MessageProc_00310010(int nThreadIndex, CURL *pCurlContext, char *pRecvMessage, int nRecvMessageLength, char *pRespMessage, int nRespMessageLength, char *pRespCode);
int MessageProc_00320010(int nThreadIndex, CURL *pCurlContext, char *pRecvMessage, int nRecvMessageLength, char *pRespMessage, int nRespMessageLength, char *pRespCode);
int MessageProc_90010010(int nThreadIndex, CURL *pCurlContext, char *pRecvMessage, int nRecvMessageLength, char *pRespMessage, int nRespMessageLength, char *pRespCode);
int MessageProc_90020010(int nThreadIndex, CURL *pCurlContext, char *pRecvMessage, int nRecvMessageLength, char *pRespMessage, int nRespMessageLength, char *pRespCode);
int MessageProc_99990010(int nThreadIndex, CURL *pCurlContext, char *pRecvMessage, int nRecvMessageLength, char *pRespMessage, int nRespMessageLength, char *pRespCode);
//2019.12.24 eGRENN Return
int MessageProc_00330010(int nThreadIndex, CURL *pCurlContext, char *pRecvMessage, int nRecvMessageLength, char *pRespMessage, int nRespMessageLength, char *pRespCode);
//2020.02.20 Master/Change Check
int MessageProc_90100010(int nThreadIndex, CURL *pCurlContext, char *pRecvMessage, int nRecvMessageLength, char *pRespMessage, int nRespMessageLength, char *pRespCode);
int MessageProc_90100020(int nThreadIndex, CURL *pCurlContext, char *pRecvMessage, int nRecvMessageLength, char *pRespMessage, int nRespMessageLength, char *pRespCode);
//2020.03.03 Web File Check
int MessageProc_90110010(int nThreadIndex, CURL *pCurlContext, char *pRecvMessage, int nRecvMessageLength, char *pRespMessage, int nRespMessageLength, char *pRespCode);
//2020.05.13 RVS Update
int MessageProc_90200010(int nThreadIndex, CURL *pCurlContext, char *pRecvMessage, int nRecvMessageLength, char *pRespMessage, int nRespMessageLength, char *pRespCode);
//2020.05.21 KT Mobile
int MessageProc_90300010(int nThreadIndex, CURL *pCurlContext, char *pRecvMessage, int nRecvMessageLength, char *pRespMessage, int nRespMessageLength, char *pRespCode);
END_DECLS
#endif

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

@ -0,0 +1,359 @@
#include "RestfulConverter.h"
char g_szProcessname[MAX_STRING_SIZE + 1];
char g_szProcessPath[PATH_MAX + 1];
char g_szBaseRestfulURL[MAX_STRING_SIZE + 1];
int g_nResponseTimeout;
int main(int argc, char *argv[])
{
char szProcessname[PATH_MAX + 1];
char *pFindPointer;
//int nPathIndicatorPos;
int nResult;
DaemonStart();
nResult = SafeStrCopy(szProcessname, sizeof(szProcessname), argv[0]);
if (nResult != SEC_ERR_SUCCESS)
{
printf_s("strcpy_s Error![%d]\n", nResult);
}
// printf_s("Input argument : [%s]\n", argv[0]);
pFindPointer = szProcessname;
nResult = SafeStrrChr(szProcessname, strnlen_s(szProcessname, sizeof(szProcessname)), PATH_SEPERATOR, &pFindPointer);
// printf_s("문자열길이 : %d\n", strnlen_s(szProcessname, sizeof(szProcessname)));
// printf_s("szProcessname Address : %x\n", szProcessname);
// printf_s("pFindPointer Address : %x\n", pFindPointer);
// printf_s("szProcess Name : %s\n", szProcessname);
// printf_s("g_szProcess Name : %s\n", g_szProcessname);
// if (nResult != EOK)
// {
// printf_s("strrchr_s Error![%d]\n", nResult);
// }
if (pFindPointer == NULL)
{
nResult = SafeStrCopy(g_szProcessname, sizeof(g_szProcessname), szProcessname);
}
else
{
nResult = SafeStrCopy(g_szProcessname, sizeof(g_szProcessname), pFindPointer + 1);
}
// printf_s("szProcess Name : %s\n", szProcessname);
// printf_s("g_szProcess Name : %s\n", g_szProcessname);
GetExecPath(g_szProcessPath, sizeof(g_szProcessPath) - 1, argv[0]);
if (g_szProcessPath == NULL)
{
printf_s("Can't get process path[Cann't load config file]!\nExit Program!");
return -1;
}
nResult = InitMessageProcessConfig();
if (nResult != MQ_ERR_SUCCESS)
{
printf_s("Program terminated!!!\n");
return -1;
}
WriteLog(LogType_SystemOut, LogLevel_Info, "Process Started![%s]", g_szProcessname);
curl_global_init(CURL_GLOBAL_ALL);
/* Socket 처리 루프 : 종료시 프로그램 종료됨 */
nResult = InitThread(WorkThread);
while(true)
{
sleep(5);
}
WriteLog(LogType_SystemOut, LogLevel_Info, "Process Stopped![%s]", g_szProcessname);
return 0;
}
int InitMessageProcessConfig()
{
char szConfigfilename[PATH_MAX + 1];
char szConfigfilenameTemp[PATH_MAX + 1];
char szValueTemp[MAX_STRING_SIZE + 1];
int nResult;
// snprintf(szConfigfilenameTemp, sizeof(szConfigfilenameTemp), "%s/%s/", g_szProcessPath, CONF_FILE_PATH);
//
// realpath(szConfigfilenameTemp, szConfigfilename);
//
// SafeStrCat(szConfigfilename, sizeof(szConfigfilename), "/", 1);
// SafeStrCat(szConfigfilename, sizeof(szConfigfilename), g_szProcessname, strnlen_s(g_szProcessname, sizeof(g_szProcessname)));
// SafeStrCat(szConfigfilename, sizeof(szConfigfilename), CONF_FILE_EXT, strnlen_s(CONF_FILE_EXT, sizeof(CONF_FILE_EXT)));
snprintf(szConfigfilenameTemp, sizeof(szConfigfilenameTemp), "%s%c%s%c", g_szProcessPath, PATH_SEPERATOR, CONF_FILE_PATH, PATH_SEPERATOR);
realpath(szConfigfilenameTemp, szConfigfilename);
snprintf(szValueTemp, sizeof(szValueTemp), "%c", PATH_SEPERATOR);
nResult = SafeStrCat(szConfigfilename, sizeof(szConfigfilename), szValueTemp, 1);
nResult = SafeStrCat(szConfigfilename, sizeof(szConfigfilename), g_szProcessname, strnlen_s(g_szProcessname, sizeof(g_szProcessname)));
nResult = SafeStrCat(szConfigfilename, sizeof(szConfigfilename), CONF_FILE_EXT, strnlen_s(CONF_FILE_EXT, sizeof(CONF_FILE_EXT)));
printf_s("Process Name : %s\n", g_szProcessname);
printf_s("Process Path : %s\n", g_szProcessPath);
printf_s("Config Filename : %s\n", szConfigfilename);
ReadConfigFile(true, szConfigfilename);
if (InitLogConfig() != LOG_ERR_SUCCESS)
{
return MP_ERR_CONFIG;
}
if (GetConfigValue(RC_RESTFULAPI_BASE_URL_KEY, g_szBaseRestfulURL, sizeof(g_szBaseRestfulURL)) != CONF_ERR_SUCCESS)
{
WriteLog(LogType_ErrorOut, LogLevel_Error, "Socket RESTFULAPI_BASE_URL_KEY configuration not found!");
return MP_ERR_CONFIG;
}
// Read RC_RESPONSE_TIMEOUT_KEY
if (GetConfigValue(RC_RESPONSE_TIMEOUT_KEY, szValueTemp, sizeof(szValueTemp)) != CONF_ERR_SUCCESS)
{
WriteLog(LogType_ErrorOut, LogLevel_Error, "Socket MS_RESPONSE_TIMEOUT_KEY configuration not found!");
return SOCK_ERR_CONFIG;
}
if (SafeStringToInt(szValueTemp, sizeof(szValueTemp), &g_nResponseTimeout) != CONF_ERR_SUCCESS)
{
WriteLog(LogType_ErrorOut, LogLevel_Error, "Socket MS_RESPONSE_TIMEOUT_KEY configuration error[ConfigFile:%s]!", szValueTemp);
return SOCK_ERR_CONFIG;
}
if (InitProcessorMQConfig() != MQ_ERR_SUCCESS)
{
return MP_ERR_CONFIG;
}
if (InitThreadConfig() != THREAD_ERR_SUCCESS)
{
return MP_ERR_CONFIG;
}
return MP_ERR_SUCCESS;
}
void *WorkThread(void *pData)
{
struct THREAD_INFO *pThreadInfo;
amqp_rpc_reply_t sRPCReply;
char szMessageBuffer[MAX_STRING_SIZE*10 + 1];
int nResult;
int *pnThreadExitCode;
char szCorrelationID[MAX_STRING_SIZE + 1];
char szReplyQueuename[MAX_STRING_SIZE + 1];
char szExchangername[MAX_STRING_SIZE + 1];
char szMessageID[MAX_STRING_SIZE + 1];
char szSendMessageBuffer[MAX_STRING_SIZE + 1];
char szRespDataBuffer[MAX_STRING_SIZE + 1];
char szRespCode[sizeof(((struct MESSAGE_FRAME *)0)->szRespCode) + 1];
int nMessageLength;
int nCmpResult1;
int nCmpResult2;
uint64_t nDeliveryTag;
struct timeval sGetMessageTimeout;
struct MESSAGE_FRAME sReceiveMessageFrame;
int nParsingOffset;
CURL *pCurlContext;
int (*MessageProcessFunction)(int nThreadIndex, CURL *pCurlContext, char *pRecvMessage, int nRecvMessageLength, char *pRespMessage, int nRespMessageLength, char *pRespCode);
pThreadInfo = (struct THREAD_INFO *)pData;
pnThreadExitCode = NULL;
nResult = SafeMemoryAlloc((void **)&pnThreadExitCode, sizeof(int));
//pnThreadExitCode = SafeAlloc(pnThreadExitCode, sizeof(int));
*pnThreadExitCode = 0;
sGetMessageTimeout.tv_sec = 0;
sGetMessageTimeout.tv_usec = 1000;
while (pThreadInfo->bThreadLoop)
{
if (pThreadInfo->sPublishMQ.bMQConnection == false || pThreadInfo->sPublishMQ.bMQChannelOpen == false
|| pThreadInfo->sConsumeMQ.bMQConnection == false || pThreadInfo->sConsumeMQ.bMQChannelOpen == false)
{
if (ConnectProcessorMQ(pThreadInfo, true) != MQ_ERR_SUCCESS)
{
WriteLog(LogType_StandardOut, LogLevel_Debug, "[Thread:%02d]ConnectProcessMQ is failed!", pThreadInfo->nThreadIndex);
continue;
}
WriteLog(LogType_StandardOut, LogLevel_Debug, "[Thread:%02d]ConnectProcessMQ is succeeded!!", pThreadInfo->nThreadIndex);
}
//amqp_maybe_release_buffers(pThreadInfo->sMQConnectionState);
//nResult = GetMessageFromQueue(pThreadInfo->sConsumeMQ.sMQConnectionState, szExchangername, sizeof(szExchangername), szMessageBuffer, sizeof(szMessageBuffer), szCorrelationID, sizeof(szCorrelationID), szReplyQueuename, sizeof(szReplyQueuename), &pThreadInfo->sConsumeMQ.bMQConnection, &pThreadInfo->sConsumeMQ.bMQChannelOpen, &nDeliveryTag, &sGetMessageTimeout);
nResult = GetMessageFromQueue(pThreadInfo->sConsumeMQ.sMQConnectionState, szExchangername, sizeof(szExchangername), szMessageBuffer, sizeof(szMessageBuffer), szCorrelationID, sizeof(szCorrelationID), szReplyQueuename, sizeof(szReplyQueuename), &pThreadInfo->sConsumeMQ.bMQConnection, &pThreadInfo->sConsumeMQ.bMQChannelOpen, &nDeliveryTag, NULL);
nMessageLength = strnlen_s(szMessageBuffer, sizeof(szMessageBuffer));
if (nResult == MQ_ERR_SUCCESS)
{
//printf_s("Message Received : %s\n", szMessageBuffer);
//WriteRawCommLog(LogType_CommOut, LogLevel_Info, pThreadInfo->nThreadIndex, 'C', "%s", szMessageBuffer);
WriteQueueLog(LogType_MQOut, LogLevel_Info, pThreadInfo->nThreadIndex, 'C', g_szMQMessageRecvQueuename, "", szCorrelationID, nMessageLength, "%s", szMessageBuffer);
WriteLog(LogType_StandardOut, LogLevel_Info, "[Thread:%02d]MQ Data Consume[Data:%s]!", pThreadInfo->nThreadIndex, szMessageBuffer);
//nResult = PutAckMessageToQueue(pThreadInfo->sMQConnectionState, szCorrelationID, szReplyQueuename, szMessageBuffer, strnlen_s(szMessageBuffer, sizeof(szMessageBuffer)), &pThreadInfo->bMQConnection, &pThreadInfo->bChannelOpen);
// 수신된 전문의 파싱
nResult = SafeMemSet(&sReceiveMessageFrame, sizeof(sReceiveMessageFrame), 0, sizeof(sReceiveMessageFrame));
nParsingOffset = 0;
nResult = GetCheckedValue(TYPE_ALPHA_NUMERIC, &sReceiveMessageFrame.szMessageLength, sizeof(sReceiveMessageFrame.szMessageLength) - 1, szMessageBuffer + nParsingOffset);
if (nResult != STR_ERR_SUCCESS)
{
WriteLog(LogType_StandardOut, LogLevel_Info, "[Thread:%02d]Receive Data Parsing Error-[MessageLengthError:%-*.*s,Data:%s]!", pThreadInfo->nThreadIndex, sizeof(sizeof(sReceiveMessageFrame.szMessageLength) - 1), sizeof(sizeof(sReceiveMessageFrame.szMessageLength) - 1), szMessageBuffer + nParsingOffset, szMessageBuffer);
snprintf(szSendMessageBuffer, sizeof(szSendMessageBuffer), "%s%c%s%s%-8.8s%-14.14s%s%s", sReceiveMessageFrame.szOrganizationCode, sReceiveMessageFrame.cOccurType, sReceiveMessageFrame.szWorkType, sReceiveMessageFrame.szMsgType, sReceiveMessageFrame.szSerialNo, sReceiveMessageFrame.szRequestDateTime, GetSocketRespCode(RESP_FORMAT_ERROR), szMessageBuffer + MESSAGE_FRAME_SIZE);
nResult = PutReplyMessageToQueue(pThreadInfo->sPublishMQ.sMQConnectionState, szCorrelationID, szReplyQueuename, szSendMessageBuffer, strnlen_s(szSendMessageBuffer, sizeof(szSendMessageBuffer)), &pThreadInfo->sPublishMQ.bMQConnection, &pThreadInfo->sPublishMQ.bMQChannelOpen);
WriteQueueLog(LogType_MQOut, LogLevel_Info, pThreadInfo->nThreadIndex, 'P', "", szReplyQueuename, szCorrelationID, nMessageLength, "%s", szMessageBuffer);
WriteLog(LogType_StandardOut, LogLevel_Info, "[Thread:%02d]Send Response Publish[Queue:%s,UUID:%s,Data:%s]!", pThreadInfo->nThreadIndex, szReplyQueuename, szCorrelationID, szMessageBuffer);
continue;
}
nParsingOffset += sizeof(sReceiveMessageFrame.szMessageLength) - 1;
nResult = GetCheckedValue(TYPE_ALPHA_NUMERIC, &sReceiveMessageFrame.szOrganizationCode, sizeof(sReceiveMessageFrame.szOrganizationCode) - 1, szMessageBuffer + nParsingOffset);
if (nResult != STR_ERR_SUCCESS)
{
WriteLog(LogType_StandardOut, LogLevel_Info, "[Thread:%02d]Receive Data Parsing Error-[OraganizationCodeError:%-*.*s,Data:%s]!", pThreadInfo->nThreadIndex, sizeof(sizeof(sReceiveMessageFrame.szOrganizationCode) - 1), sizeof(sizeof(sReceiveMessageFrame.szOrganizationCode) - 1), szMessageBuffer + nParsingOffset, szMessageBuffer);
snprintf(szSendMessageBuffer, sizeof(szSendMessageBuffer), "%s%c%s%s%-8.8s%-14.14s%s%s", sReceiveMessageFrame.szOrganizationCode, sReceiveMessageFrame.cOccurType, sReceiveMessageFrame.szWorkType, sReceiveMessageFrame.szMsgType, sReceiveMessageFrame.szSerialNo, sReceiveMessageFrame.szRequestDateTime, GetSocketRespCode(RESP_FORMAT_ERROR), szMessageBuffer + MESSAGE_FRAME_SIZE);
nResult = PutReplyMessageToQueue(pThreadInfo->sPublishMQ.sMQConnectionState, szCorrelationID, szReplyQueuename, szSendMessageBuffer, strnlen_s(szSendMessageBuffer, sizeof(szSendMessageBuffer)), &pThreadInfo->sPublishMQ.bMQConnection, &pThreadInfo->sPublishMQ.bMQChannelOpen);
WriteQueueLog(LogType_MQOut, LogLevel_Info, pThreadInfo->nThreadIndex, 'P', "", szReplyQueuename, szCorrelationID, nMessageLength, "%s", szMessageBuffer);
WriteLog(LogType_StandardOut, LogLevel_Info, "[Thread:%02d]Send Response Publish[Queue:%s,UUID:%s,Data:%s]!", pThreadInfo->nThreadIndex, szReplyQueuename, szCorrelationID, szMessageBuffer);
continue;
}
nParsingOffset += sizeof(sReceiveMessageFrame.szOrganizationCode) - 1;
sReceiveMessageFrame.cOccurType = szMessageBuffer[nParsingOffset];
if (sReceiveMessageFrame.cOccurType != 'C' && sReceiveMessageFrame.cOccurType != 'S')
{
WriteLog(LogType_StandardOut, LogLevel_Info, "[Thread:%02d]Receive Data Parsing Error-[OccurTypeError:%c,Data:%s]!", pThreadInfo->nThreadIndex, sReceiveMessageFrame.cOccurType, szMessageBuffer);
snprintf(szSendMessageBuffer, sizeof(szSendMessageBuffer), "%s%c%s%s%-8.8s%-14.14s%s%s", sReceiveMessageFrame.szOrganizationCode, sReceiveMessageFrame.cOccurType, sReceiveMessageFrame.szWorkType, sReceiveMessageFrame.szMsgType, sReceiveMessageFrame.szSerialNo, sReceiveMessageFrame.szRequestDateTime, GetSocketRespCode(RESP_FORMAT_ERROR), szMessageBuffer + MESSAGE_FRAME_SIZE);
nResult = PutReplyMessageToQueue(pThreadInfo->sPublishMQ.sMQConnectionState, szCorrelationID, szReplyQueuename, szSendMessageBuffer, strnlen_s(szSendMessageBuffer, sizeof(szSendMessageBuffer)), &pThreadInfo->sPublishMQ.bMQConnection, &pThreadInfo->sPublishMQ.bMQChannelOpen);
WriteQueueLog(LogType_MQOut, LogLevel_Info, pThreadInfo->nThreadIndex, 'P', "", szReplyQueuename, szCorrelationID, nMessageLength, "%s", szMessageBuffer);
WriteLog(LogType_StandardOut, LogLevel_Info, "[Thread:%02d]Send Response Publish[Queue:%s,UUID:%s,Data:%s]!", pThreadInfo->nThreadIndex, szReplyQueuename, szCorrelationID, szMessageBuffer);
continue;
}
nParsingOffset++;
nResult = GetCheckedValue(TYPE_ALPHA_NUMERIC, &sReceiveMessageFrame.szWorkType, sizeof(sReceiveMessageFrame.szWorkType) - 1, szMessageBuffer + nParsingOffset);
if (nResult != STR_ERR_SUCCESS)
{
WriteLog(LogType_StandardOut, LogLevel_Info, "[Thread:%02d]Receive Data Parsing Error-[WorkTypeError:%-*.*s,Data:%s]!", pThreadInfo->nThreadIndex, sizeof(sizeof(sReceiveMessageFrame.szWorkType) - 1), sizeof(sizeof(sReceiveMessageFrame.szWorkType) - 1), szMessageBuffer + nParsingOffset, szMessageBuffer);
snprintf(szSendMessageBuffer, sizeof(szSendMessageBuffer), "%s%c%s%s%-8.8s%-14.14s%s%s", sReceiveMessageFrame.szOrganizationCode, sReceiveMessageFrame.cOccurType, sReceiveMessageFrame.szWorkType, sReceiveMessageFrame.szMsgType, sReceiveMessageFrame.szSerialNo, sReceiveMessageFrame.szRequestDateTime, GetSocketRespCode(RESP_FORMAT_ERROR), szMessageBuffer + MESSAGE_FRAME_SIZE);
nResult = PutReplyMessageToQueue(pThreadInfo->sPublishMQ.sMQConnectionState, szCorrelationID, szReplyQueuename, szSendMessageBuffer, strnlen_s(szSendMessageBuffer, sizeof(szSendMessageBuffer)), &pThreadInfo->sPublishMQ.bMQConnection, &pThreadInfo->sPublishMQ.bMQChannelOpen);
WriteQueueLog(LogType_MQOut, LogLevel_Info, pThreadInfo->nThreadIndex, 'P', "", szReplyQueuename, szCorrelationID, nMessageLength, "%s", szMessageBuffer);
WriteLog(LogType_StandardOut, LogLevel_Info, "[Thread:%02d]Send Response Publish[Queue:%s,UUID:%s,Data:%s]!", pThreadInfo->nThreadIndex, szReplyQueuename, szCorrelationID, szMessageBuffer);
continue;
}
nParsingOffset += sizeof(sReceiveMessageFrame.szWorkType) - 1;
nResult = GetCheckedValue(TYPE_ALPHA_NUMERIC, &sReceiveMessageFrame.szMsgType, sizeof(sReceiveMessageFrame.szMsgType) - 1, szMessageBuffer + nParsingOffset);
if (nResult != STR_ERR_SUCCESS)
{
WriteLog(LogType_StandardOut, LogLevel_Info, "[Thread:%02d]Receive Data Parsing Error-[MsgTypeError:%-*.*s,Data:%s]!", pThreadInfo->nThreadIndex, sizeof(sizeof(sReceiveMessageFrame.szMsgType) - 1), sizeof(sizeof(sReceiveMessageFrame.szMsgType) - 1), szMessageBuffer + nParsingOffset, szMessageBuffer);
snprintf(szSendMessageBuffer, sizeof(szSendMessageBuffer), "%s%c%s%s%-8.8s%-14.14s%s%s", sReceiveMessageFrame.szOrganizationCode, sReceiveMessageFrame.cOccurType, sReceiveMessageFrame.szWorkType, sReceiveMessageFrame.szMsgType, sReceiveMessageFrame.szSerialNo, sReceiveMessageFrame.szRequestDateTime, GetSocketRespCode(RESP_FORMAT_ERROR), szMessageBuffer + MESSAGE_FRAME_SIZE);
nResult = PutReplyMessageToQueue(pThreadInfo->sPublishMQ.sMQConnectionState, szCorrelationID, szReplyQueuename, szSendMessageBuffer, strnlen_s(szSendMessageBuffer, sizeof(szSendMessageBuffer)), &pThreadInfo->sPublishMQ.bMQConnection, &pThreadInfo->sPublishMQ.bMQChannelOpen);
WriteQueueLog(LogType_MQOut, LogLevel_Info, pThreadInfo->nThreadIndex, 'P', "", szReplyQueuename, szCorrelationID, nMessageLength, "%s", szMessageBuffer);
WriteLog(LogType_StandardOut, LogLevel_Info, "[Thread:%02d]Send Response Publish[Queue:%s,UUID:%s,Data:%s]!", pThreadInfo->nThreadIndex, szReplyQueuename, szCorrelationID, szMessageBuffer);
continue;
}
nParsingOffset += sizeof(sReceiveMessageFrame.szMsgType) - 1;
nResult = GetCheckedValue(TYPE_ALPHA_NUMERIC, &sReceiveMessageFrame.szSerialNo, sizeof(sReceiveMessageFrame.szSerialNo) - 1, szMessageBuffer + nParsingOffset);
if (nResult != STR_ERR_SUCCESS)
{
WriteLog(LogType_StandardOut, LogLevel_Info, "[Thread:%02d]Receive Data Parsing Error-[SerialNoTypeError:%-*.*s,Data:%s]!", pThreadInfo->nThreadIndex, sizeof(sizeof(sReceiveMessageFrame.szSerialNo) - 1), sizeof(sizeof(sReceiveMessageFrame.szSerialNo) - 1), szMessageBuffer + nParsingOffset, szMessageBuffer);
snprintf(szSendMessageBuffer, sizeof(szSendMessageBuffer), "%s%c%s%s%-8.8s%-14.14s%s%s", sReceiveMessageFrame.szOrganizationCode, sReceiveMessageFrame.cOccurType, sReceiveMessageFrame.szWorkType, sReceiveMessageFrame.szMsgType, sReceiveMessageFrame.szSerialNo, sReceiveMessageFrame.szRequestDateTime, GetSocketRespCode(RESP_FORMAT_ERROR), szMessageBuffer + MESSAGE_FRAME_SIZE);
nResult = PutReplyMessageToQueue(pThreadInfo->sPublishMQ.sMQConnectionState, szCorrelationID, szReplyQueuename, szSendMessageBuffer, strnlen_s(szSendMessageBuffer, sizeof(szSendMessageBuffer)), &pThreadInfo->sPublishMQ.bMQConnection, &pThreadInfo->sPublishMQ.bMQChannelOpen);
WriteQueueLog(LogType_MQOut, LogLevel_Info, pThreadInfo->nThreadIndex, 'P', "", szReplyQueuename, szCorrelationID, nMessageLength, "%s", szMessageBuffer);
WriteLog(LogType_StandardOut, LogLevel_Info, "[Thread:%02d]Send Response Publish[Queue:%s,UUID:%s,Data:%s]!", pThreadInfo->nThreadIndex, szReplyQueuename, szCorrelationID, szMessageBuffer);
continue;
}
nParsingOffset += sizeof(sReceiveMessageFrame.szSerialNo) - 1;
nResult = GetCheckedValue(TYPE_ALPHA_NUMERIC, &sReceiveMessageFrame.szRequestDateTime, sizeof(sReceiveMessageFrame.szRequestDateTime) - 1, szMessageBuffer + nParsingOffset);
if (nResult != STR_ERR_SUCCESS)
{
WriteLog(LogType_StandardOut, LogLevel_Info, "[Thread:%02d]Receive Data Parsing Error-[RequestTimeError:%-*.*s,Data:%s]!", pThreadInfo->nThreadIndex, sizeof(sizeof(sReceiveMessageFrame.szRequestDateTime) - 1), sizeof(sizeof(sReceiveMessageFrame.szRequestDateTime) - 1), szMessageBuffer + nParsingOffset, szMessageBuffer);
snprintf(szSendMessageBuffer, sizeof(szSendMessageBuffer), "%s%c%s%s%-8.8s%-14.14s%s%s", sReceiveMessageFrame.szOrganizationCode, sReceiveMessageFrame.cOccurType, sReceiveMessageFrame.szWorkType, sReceiveMessageFrame.szMsgType, sReceiveMessageFrame.szSerialNo, sReceiveMessageFrame.szRequestDateTime, GetSocketRespCode(RESP_FORMAT_ERROR), szMessageBuffer + MESSAGE_FRAME_SIZE);
nResult = PutReplyMessageToQueue(pThreadInfo->sPublishMQ.sMQConnectionState, szCorrelationID, szReplyQueuename, szSendMessageBuffer, strnlen_s(szSendMessageBuffer, sizeof(szSendMessageBuffer)), &pThreadInfo->sPublishMQ.bMQConnection, &pThreadInfo->sPublishMQ.bMQChannelOpen);
WriteQueueLog(LogType_MQOut, LogLevel_Info, pThreadInfo->nThreadIndex, 'P', "", szReplyQueuename, szCorrelationID, nMessageLength, "%s", szMessageBuffer);
WriteLog(LogType_StandardOut, LogLevel_Info, "[Thread:%02d]Send Response Publish[Queue:%s,UUID:%s,Data:%s]!", pThreadInfo->nThreadIndex, szReplyQueuename, szCorrelationID, szMessageBuffer);
continue;
}
nParsingOffset += sizeof(sReceiveMessageFrame.szRequestDateTime) - 1;
nResult = GetCheckedValue(TYPE_ALPHA_NUMERIC, &sReceiveMessageFrame.szRespCode, sizeof(sReceiveMessageFrame.szRespCode) - 1, szMessageBuffer + nParsingOffset);
if (nResult != STR_ERR_SUCCESS)
{
WriteLog(LogType_StandardOut, LogLevel_Info, "[Thread:%02d]Receive Data Parsing Error-[RespCodeError:%-*.*s,Data:%s]!", pThreadInfo->nThreadIndex, sizeof(sizeof(sReceiveMessageFrame.szRespCode) - 1), sizeof(sizeof(sReceiveMessageFrame.szRespCode) - 1), szMessageBuffer + nParsingOffset, szMessageBuffer);
snprintf(szSendMessageBuffer, sizeof(szSendMessageBuffer), "%s%c%s%s%-8.8s%-14.14s%s%s", sReceiveMessageFrame.szOrganizationCode, sReceiveMessageFrame.cOccurType, sReceiveMessageFrame.szWorkType, sReceiveMessageFrame.szMsgType, sReceiveMessageFrame.szSerialNo, sReceiveMessageFrame.szRequestDateTime, GetSocketRespCode(RESP_FORMAT_ERROR), szMessageBuffer + MESSAGE_FRAME_SIZE);
nResult = PutReplyMessageToQueue(pThreadInfo->sPublishMQ.sMQConnectionState, szCorrelationID, szReplyQueuename, szSendMessageBuffer, strnlen_s(szSendMessageBuffer, sizeof(szSendMessageBuffer)), &pThreadInfo->sPublishMQ.bMQConnection, &pThreadInfo->sPublishMQ.bMQChannelOpen);
WriteQueueLog(LogType_MQOut, LogLevel_Info, pThreadInfo->nThreadIndex, 'P', "", szReplyQueuename, szCorrelationID, nMessageLength, "%s", szMessageBuffer);
WriteLog(LogType_StandardOut, LogLevel_Info, "[Thread:%02d]Send Response Publish[Queue:%s,UUID:%s,Data:%s]!", pThreadInfo->nThreadIndex, szReplyQueuename, szCorrelationID, szMessageBuffer);
continue;
}
nParsingOffset += sizeof(sReceiveMessageFrame.szRespCode) - 1;
SafeStrCopy(sReceiveMessageFrame.szData, sizeof(sReceiveMessageFrame.szData), szMessageBuffer + nParsingOffset);
pCurlContext = curl_easy_init();
if (g_bBypassMode)
{
amqp_basic_ack(pThreadInfo->sConsumeMQ.sMQConnectionState, 1, nDeliveryTag, 0);
}
snprintf(szMessageID, sizeof(szMessageID), "%s%s", sReceiveMessageFrame.szWorkType, sReceiveMessageFrame.szMsgType);
MessageProcessFunction = FindProcessFunction(szMessageID);
nResult = MessageProcessFunction(pThreadInfo->nThreadIndex, pCurlContext, sReceiveMessageFrame.szData, strnlen(sReceiveMessageFrame.szData, sizeof(sReceiveMessageFrame.szData)), szRespDataBuffer, sizeof(szRespDataBuffer), szRespCode);
printf("Http Result : %s\n", szRespDataBuffer);
curl_easy_cleanup(pCurlContext);
if (g_bBypassMode)
{
snprintf(szSendMessageBuffer, sizeof(szSendMessageBuffer), "%s%c%s%s%-8.8s%-14.14s%s%s", sReceiveMessageFrame.szOrganizationCode, sReceiveMessageFrame.cOccurType, sReceiveMessageFrame.szWorkType, sReceiveMessageFrame.szMsgType, sReceiveMessageFrame.szSerialNo, sReceiveMessageFrame.szRequestDateTime, GetSocketRespCode(RESP_FORMAT_ERROR), szRespDataBuffer);
nResult = PutReplyMessageToQueue(pThreadInfo->sPublishMQ.sMQConnectionState, szCorrelationID, szReplyQueuename, szSendMessageBuffer, strnlen_s(szSendMessageBuffer, sizeof(szSendMessageBuffer)), &pThreadInfo->sPublishMQ.bMQConnection, &pThreadInfo->sPublishMQ.bMQChannelOpen);
WriteQueueLog(LogType_MQOut, LogLevel_Info, pThreadInfo->nThreadIndex, 'P', "", szReplyQueuename, szCorrelationID, nMessageLength, "%s", szSendMessageBuffer);
WriteLog(LogType_StandardOut, LogLevel_Info, "[Thread:%02d]Response Publish[Queue:%s,UUID:%s,Data:%s]!", pThreadInfo->nThreadIndex, szReplyQueuename, szCorrelationID, szSendMessageBuffer);
}
else
{
// 오류 판단 로직은 DB 처리 등의 결과에 의존하여 결정 되며 처리되기 전에는 메시지큐에 ack하지 않아야 데이터가 유지된다.
// if (/* 오류 판단*/)
// {
// amqp_basic_ack(pThreadInfo->sConsumeMQ.sMQConnectionState, 1, nDeliveryTag, 0);
// }
// else
// {
// amqp_basic_nack(pThreadInfo->sConsumeMQ.sMQConnectionState, 1, nDeliveryTag, 0, 1);
// }
#if 1
nResult = SafeStrCmp(szRespCode, sizeof(szRespCode), GetSocketRespCode(RESP_NORMAL), &nCmpResult1);
nResult = SafeStrCmp(szRespCode, sizeof(szRespCode), GetSocketRespCode(RESP_ALREADY_RECV), &nCmpResult2);
if (nCmpResult1 != 0 && nCmpResult2 != 0)
{
amqp_basic_nack(pThreadInfo->sConsumeMQ.sMQConnectionState, 1, nDeliveryTag, 0, 1);
}
else
{
amqp_basic_ack(pThreadInfo->sConsumeMQ.sMQConnectionState, 1, nDeliveryTag, 0);
}
#else
amqp_basic_ack(pThreadInfo->sConsumeMQ.sMQConnectionState, 1, nDeliveryTag, 0);
#endif
}
}
else
{
WriteLog(LogType_StandardOut, LogLevel_Debug, "[Thread:%02d]MQ Data Consume Error!", pThreadInfo->nThreadIndex);
}
}
curl_global_cleanup();
CloseMQ(pThreadInfo->nThreadIndex, pThreadInfo->sPublishMQ.sMQConnectionState, &pThreadInfo->sPublishMQ.bMQConnection, &pThreadInfo->sPublishMQ.bMQChannelOpen, &pThreadInfo->sPublishMQ.sMQMutex);
CloseMQ(pThreadInfo->nThreadIndex, pThreadInfo->sConsumeMQ.sMQConnectionState, &pThreadInfo->sConsumeMQ.bMQConnection, &pThreadInfo->sConsumeMQ.bMQChannelOpen, &pThreadInfo->sConsumeMQ.sMQMutex);
return pnThreadExitCode;
}

@ -0,0 +1,72 @@
#ifndef __RESTFULCONVERTER_H__
#define __RESTFULCONVERTER_H__
#ifdef __cplusplus
#ifndef BEGIN_DECLS
#define BEGIN_DECLS extern "C" {
#endif
#ifndef END_DECLS
#define END_DECLS }
#endif
#else
#ifndef BEGIN_DECLS
#define BEGIN_DECLS
#endif
#ifndef END_DECLS
#define END_DECLS
#endif
#endif
BEGIN_DECLS
#include <limits.h>
#ifdef _WIN32
#include <wchar.h>
#endif
#include <curl/curl.h>
#include "Common.h"
#include "StringUtil.h"
#include "Log.h"
#include "MessageQueue.h"
#include "SystemUtil.h"
#include "SecureCodingUtil.h"
#include "MessageInfo.h"
#define MP_ERR_SUCCESS 0
#define MP_ERR_CONFIG -1
#define RC_RESTFULAPI_BASE_URL_KEY "RESTFULAPI_BASE_URL"
#define RC_RESPONSE_TIMEOUT_KEY "RESPONSE_TIMEOUT"
extern char g_szProcessname[MAX_STRING_SIZE + 1];
extern char g_szProcessPath[PATH_MAX + 1];
extern char g_szBaseRestfulURL[MAX_STRING_SIZE + 1];
extern int g_nResponseTimeout;
struct MESSAGE_FRAME
{
char szMessageLength[4 + 1];
char szOrganizationCode[6 + 1];
char cOccurType;
char szWorkType[4 + 1];
char szMsgType[4 + 1];
char szSerialNo[8 + 1];
char szRequestDateTime[14 + 1];
char szRespCode[4 + 1];
char szData[MAX_STRING_SIZE + 1];
};
// 각 컬럼별로 하나씩 하는 이유는 배열 전체로 할 경우 byte alignment로 인해 실제 사이즈와 다를 수 있기 때문이다.
#define MESSAGE_FRAME_SIZE (sizeof(((struct MESSAGE_FRAME *)0)->szMessageLength) - 1 + sizeof(((struct MESSAGE_FRAME *)0)->szOrganizationCode) - 1 + 1 + sizeof(((struct MESSAGE_FRAME *)0)->szWorkType) + sizeof(((struct MESSAGE_FRAME *)0)->szMsgType) + sizeof(((struct MESSAGE_FRAME *)0)->szSerialNo) + sizeof(((struct MESSAGE_FRAME *)0)->szRequestDateTime) + sizeof(((struct MESSAGE_FRAME *)0)->szRespCode))
int InitMessageProcessConfig();
void *WorkThread(void *pData);
END_DECLS
#endif

@ -0,0 +1,769 @@
/*
*========================================================================
*
* :
* : make_basic.c
* : (baarong@neighbor21.co.kr)
* : 2019.08.30
* :
* :
*
*========================================================================
*/
#include <stdio.h>
#include <stdlib.h>
#include <errno.h>
#include <unistd.h>
#include <iconv.h>
#include "bas_tbl.h"
#include "dir_path.h"
#include "file_no.h"
#include "file_lb.h"
#include "lb_func_list.h"
#include "func_list.h"
#include "util.h"
#define _INCTEST_ 1
/*
*========================================================================
*
* : make_basic
* : (baarong@neighbor21.co.kr)
* : 2019.08.13
* :
* : ()
*
*========================================================================
*/
int make_basic(char *data)
{
char path[128], spath[128], tpath[128];
#ifdef _INCTEST_
char cpath[128];
#endif
char mkData[MAX_STRING_SIZE*20];
int isfd, isrc, errflg = 0, nResult = 0;
size_t in_size;
size_t out_size;
size_t out_buf_left;
char orgData[MAX_STRING_SIZE*20];
char szCarNo[255+1];
char* in_buf;
char* out_buf;
memset(mkData, 0x00, sizeof(mkData));
snprintf(mkData, strlen(data)+1, "%s", data);
//printf("make_befmst [%d][%s][%d]\n", rcv, data, strlen(data));
//printf("make_befmst 2[%s][%d]\n", mkData, strlen(mkData));
//WriteLog(LogType_StandardOut, LogLevel_Info, "DATA[%s][%d]\n", mkData, strlen(mkData));
sprintf(tpath, "%s/%s/BASICTBL01_O", DIR_TCS, DIR_BASEINFO);
unlink(tpath);
sprintf(path, "%s/%s/BASICTBL01", DIR_TCS, DIR_BASEINFO);
//lb_rename(path, tpath);
sprintf(spath, "%s/%s/BASICTBL01_S", DIR_TCS, DIR_BASEINFO);
unlink(spath);
#ifdef _INCTEST_
// INCODING 확인 테스트
sprintf(cpath, "%s/%s/BASICTBL01_C", DIR_TCS, DIR_BASEINFO);
isfd=lb_build(cpath, FINOUT+FC_EXCLLOCK);
if(isfd < 0)
{
WriteLog(LogType_StandardOut, LogLevel_Info, "WRKERTBL:파일생성 실패[%d]\n", isfd);
isrc = -1;
return(isrc);
}
#endif
isrc = Write_File_Char(mkData, strlen(mkData), spath);
if(isrc == 0)
{
WriteLog(LogType_StandardOut, LogLevel_Info, "BASIC DATA CREATE[%d]\n", isrc);
}
//lb_rename(spath, path);
#if 1
struct basic_tbl bas_tbl, bas_tbl_f;
FILE *fp = NULL;
int i = 0;
fp = fopen(spath, "r+");
WriteLog(LogType_StandardOut, LogLevel_Info, "TEST 기초파일 읽기 시작\n");
if(fp == NULL)
{
WriteLog(LogType_StandardOut, LogLevel_Info, "TEST 기초파일 읽기 파일열기 실패\n");
}else
{
#ifdef _INCTEST_
iconv_t ic = iconv_open("EUC-KR", "UTF-8");
if(ic == (iconv_t) -1)
{
WriteLog(LogType_StandardOut, LogLevel_Info, "###### Not Supported ICONV Code ###### \n");
}
#endif
fread(&bas_tbl, sizeof(struct basic_tbl), 1, fp);
#if 0
memset(mkData, 0x00, sizeof(mkData));
memset(orgData, 0x00, sizeof(orgData));
memset(bas_tbl_f, 0x20, sizeof(bas_tbl_f));
memcpy(&bas_tbl_f, &bas_tbl, sizeof(struct basic_tbl));
snprintf(orgData, strlen(bas_tbl.plz_nm)+1, "%s", bas_tbl.plz_nm);
in_size = strlen(orgData);
out_size = sizeof(orgData);
in_buf = orgData;
out_buf = mkData;
out_buf_left = out_size;
nResult = iconv(ic, (char *)&in_buf, &in_size, (char *)&out_buf, &out_buf_left);
if(nResult == -1)
{
WriteLog(LogType_StandardOut, LogLevel_Info, "ICONV FAILED [%d][%d]\n", nResult, errno);
}
sprintf((char *)bas_tbl_f.plz_nm, "%.14s%c", mkData, '\0');
#endif
#ifdef _INCTEST_
memset(&bas_tbl_f, 0x20, sizeof(bas_tbl_f));
#if 0
memset(mkData, 0x00, sizeof(mkData));
memset(orgData, 0x00, sizeof(orgData));
snprintf(orgData, strlen(bas_tbl.plz_id)+1, "%s", bas_tbl.plz_id);
in_size = strlen(orgData);
out_size = sizeof(orgData);
in_buf = orgData;
out_buf = mkData;
out_buf_left = out_size;
nResult = iconv(ic, (char *)&in_buf, &in_size, (char *)&out_buf, &out_buf_left);
if(nResult == -1)
{
WriteLog(LogType_StandardOut, LogLevel_Info, "ICONV FAILED [%d][%d]\n", nResult, errno);
}
sprintf((char *)bas_tbl_f.plz_id, "%.2s%c", mkData, '\0');
#endif
memset(mkData, 0x00, sizeof(mkData));
memset(orgData, 0x00, sizeof(orgData));
#if 1
memcpy(&bas_tbl_f, &bas_tbl, sizeof(struct basic_tbl));
#endif
WriteLog(LogType_StandardOut, LogLevel_Info, "##### T1_PLZ_NM[%.14s]\n", bas_tbl.plz_nm);
snprintf(orgData, strlen(bas_tbl.plz_nm)+1, "%s", bas_tbl.plz_nm);
WriteLog(LogType_StandardOut, LogLevel_Info, "##### T2_PLZ_NM[%.14s]\n", orgData);
WriteLog(LogType_StandardOut, LogLevel_Info, "##### T2_SIZE[%d]\n", strlen(orgData));
in_size = strlen(orgData);
out_size = 10;
in_buf = orgData;
out_buf = mkData;
out_buf_left = out_size;
nResult = iconv(ic, (char *)&in_buf, &in_size, (char *)&out_buf, &out_buf_left);
if(nResult == -1)
{
WriteLog(LogType_StandardOut, LogLevel_Info, "ICONV FAILED [%d][%d]\n", nResult, errno);
}
WriteLog(LogType_StandardOut, LogLevel_Info, "##### T3_PLZ_NM[%.14s]\n", mkData);
WriteLog(LogType_StandardOut, LogLevel_Info, "##### T3_SIZE[%d]\n", strlen(mkData));
snprintf(bas_tbl_f.plz_nm, strlen(mkData)+1, "%s", mkData);
//sprintf((char *)bas_tbl_f.plz_nm, "%.14s%c", mkData, '\0');
WriteLog(LogType_StandardOut, LogLevel_Info, "##### PLZ_ID[%.2s]\n", bas_tbl_f.plz_id);
WriteLog(LogType_StandardOut, LogLevel_Info, "##### PLZ_NM[%.14s]\n", bas_tbl_f.plz_nm);
WriteLog(LogType_StandardOut, LogLevel_Info, "------- RVS -------\n");
for(i = 0; i < 20; i++)
{
#if 0
//적용년
memset(mkData, 0x00, sizeof(mkData));
memset(orgData, 0x00, sizeof(orgData));
snprintf(orgData, strlen(bas_tbl.rvs_tbl_info[i].apl_year)+1, "%s", bas_tbl.rvs_tbl_info[i].apl_year);
in_size = strlen(orgData);
out_size = sizeof(orgData);
in_buf = orgData;
out_buf = mkData;
out_buf_left = out_size;
nResult = iconv(ic, (char *)&in_buf, &in_size, (char *)&out_buf, &out_buf_left);
if(nResult == -1)
{
WriteLog(LogType_StandardOut, LogLevel_Info, "ICONV FAILED [%d][%d]\n", nResult, errno);
}
sprintf((char *)bas_tbl_f.rvs_tbl_info[i].apl_year, "%.4s%c", mkData, '\0');
//적용월
memset(mkData, 0x00, sizeof(mkData));
memset(orgData, 0x00, sizeof(orgData));
snprintf(orgData, strlen(bas_tbl.rvs_tbl_info[i].apl_mon)+1, "%s", bas_tbl.rvs_tbl_info[i].apl_mon);
in_size = strlen(orgData);
out_size = sizeof(orgData);
in_buf = orgData;
out_buf = mkData;
out_buf_left = out_size;
nResult = iconv(ic, (char *)&in_buf, &in_size, (char *)&out_buf, &out_buf_left);
if(nResult == -1)
{
WriteLog(LogType_StandardOut, LogLevel_Info, "ICONV FAILED [%d][%d]\n", nResult, errno);
}
sprintf((char *)bas_tbl_f.rvs_tbl_info[i].apl_mon, "%.2s%c", mkData, '\0');
//적용일
memset(mkData, 0x00, sizeof(mkData));
memset(orgData, 0x00, sizeof(orgData));
snprintf(orgData, strlen(bas_tbl.rvs_tbl_info[i].apl_day)+1, "%s", bas_tbl.rvs_tbl_info[i].apl_day);
in_size = strlen(orgData);
out_size = sizeof(orgData);
in_buf = orgData;
out_buf = mkData;
out_buf_left = out_size;
nResult = iconv(ic, (char *)&in_buf, &in_size, (char *)&out_buf, &out_buf_left);
if(nResult == -1)
{
WriteLog(LogType_StandardOut, LogLevel_Info, "ICONV FAILED [%d][%d]\n", nResult, errno);
}
sprintf((char *)bas_tbl_f.rvs_tbl_info[i].apl_day, "%.2s%c", mkData, '\0');
//적용시
memset(mkData, 0x00, sizeof(mkData));
memset(orgData, 0x00, sizeof(orgData));
snprintf(orgData, strlen(bas_tbl.rvs_tbl_info[i].apl_hr)+1, "%s", bas_tbl.rvs_tbl_info[i].apl_hr);
in_size = strlen(orgData);
out_size = sizeof(orgData);
in_buf = orgData;
out_buf = mkData;
out_buf_left = out_size;
nResult = iconv(ic, (char *)&in_buf, &in_size, (char *)&out_buf, &out_buf_left);
if(nResult == -1)
{
WriteLog(LogType_StandardOut, LogLevel_Info, "ICONV FAILED [%d][%d]\n", nResult, errno);
}
sprintf((char *)bas_tbl_f.rvs_tbl_info[i].apl_hr, "%.2s%c", mkData, '\0');
//적용분
memset(mkData, 0x00, sizeof(mkData));
memset(orgData, 0x00, sizeof(orgData));
snprintf(orgData, strlen(bas_tbl.rvs_tbl_info[i].apl_min)+1, "%s", bas_tbl.rvs_tbl_info[i].apl_min);
in_size = strlen(orgData);
out_size = sizeof(orgData);
in_buf = orgData;
out_buf = mkData;
out_buf_left = out_size;
nResult = iconv(ic, (char *)&in_buf, &in_size, (char *)&out_buf, &out_buf_left);
if(nResult == -1)
{
WriteLog(LogType_StandardOut, LogLevel_Info, "ICONV FAILED [%d][%d]\n", nResult, errno);
}
sprintf((char *)bas_tbl_f.rvs_tbl_info[i].apl_min, "%.2s%c", mkData, '\0');
//수정년
memset(mkData, 0x00, sizeof(mkData));
memset(orgData, 0x00, sizeof(orgData));
snprintf(orgData, strlen(bas_tbl.rvs_tbl_info[i].modf_year)+1, "%s", bas_tbl.rvs_tbl_info[i].modf_year);
in_size = strlen(orgData);
out_size = sizeof(orgData);
in_buf = orgData;
out_buf = mkData;
out_buf_left = out_size;
nResult = iconv(ic, (char *)&in_buf, &in_size, (char *)&out_buf, &out_buf_left);
if(nResult == -1)
{
WriteLog(LogType_StandardOut, LogLevel_Info, "ICONV FAILED [%d][%d]\n", nResult, errno);
}
sprintf((char *)bas_tbl_f.rvs_tbl_info[i].modf_year, "%.4s%c", mkData, '\0');
//수정월
memset(mkData, 0x00, sizeof(mkData));
memset(orgData, 0x00, sizeof(orgData));
snprintf(orgData, strlen(bas_tbl.rvs_tbl_info[i].modf_mon)+1, "%s", bas_tbl.rvs_tbl_info[i].modf_mon);
in_size = strlen(orgData);
out_size = sizeof(orgData);
in_buf = orgData;
out_buf = mkData;
out_buf_left = out_size;
nResult = iconv(ic, (char *)&in_buf, &in_size, (char *)&out_buf, &out_buf_left);
if(nResult == -1)
{
WriteLog(LogType_StandardOut, LogLevel_Info, "ICONV FAILED [%d][%d]\n", nResult, errno);
}
sprintf((char *)bas_tbl_f.rvs_tbl_info[i].modf_mon, "%.2s%c", mkData, '\0');
//수정일
memset(mkData, 0x00, sizeof(mkData));
memset(orgData, 0x00, sizeof(orgData));
snprintf(orgData, strlen(bas_tbl.rvs_tbl_info[i].modf_day)+1, "%s", bas_tbl.rvs_tbl_info[i].modf_day);
in_size = strlen(orgData);
out_size = sizeof(orgData);
in_buf = orgData;
out_buf = mkData;
out_buf_left = out_size;
nResult = iconv(ic, (char *)&in_buf, &in_size, (char *)&out_buf, &out_buf_left);
if(nResult == -1)
{
WriteLog(LogType_StandardOut, LogLevel_Info, "ICONV FAILED [%d][%d]\n", nResult, errno);
}
sprintf((char *)bas_tbl_f.rvs_tbl_info[i].modf_day, "%.2s%c", mkData, '\0');
//수정시
memset(mkData, 0x00, sizeof(mkData));
memset(orgData, 0x00, sizeof(orgData));
snprintf(orgData, strlen(bas_tbl.rvs_tbl_info[i].modf_hr)+1, "%s", bas_tbl.rvs_tbl_info[i].modf_hr);
in_size = strlen(orgData);
out_size = sizeof(orgData);
in_buf = orgData;
out_buf = mkData;
out_buf_left = out_size;
nResult = iconv(ic, (char *)&in_buf, &in_size, (char *)&out_buf, &out_buf_left);
if(nResult == -1)
{
WriteLog(LogType_StandardOut, LogLevel_Info, "ICONV FAILED [%d][%d]\n", nResult, errno);
}
sprintf((char *)bas_tbl_f.rvs_tbl_info[i].modf_hr, "%.2s%c", mkData, '\0');
//수정분
memset(mkData, 0x00, sizeof(mkData));
memset(orgData, 0x00, sizeof(orgData));
snprintf(orgData, strlen(bas_tbl.rvs_tbl_info[i].modf_min)+1, "%s", bas_tbl.rvs_tbl_info[i].modf_min);
in_size = strlen(orgData);
out_size = sizeof(orgData);
in_buf = orgData;
out_buf = mkData;
out_buf_left = out_size;
nResult = iconv(ic, (char *)&in_buf, &in_size, (char *)&out_buf, &out_buf_left);
if(nResult == -1)
{
WriteLog(LogType_StandardOut, LogLevel_Info, "ICONV FAILED [%d][%d]\n", nResult, errno);
}
sprintf((char *)bas_tbl_f.rvs_tbl_info[i].modf_min, "%.2s%c", mkData, '\0');
//개정번호
memset(mkData, 0x00, sizeof(mkData));
memset(orgData, 0x00, sizeof(orgData));
snprintf(orgData, strlen(bas_tbl.rvs_tbl_info[i].rvs_no)+1, "%s", bas_tbl.rvs_tbl_info[i].rvs_no);
in_size = strlen(orgData);
out_size = sizeof(orgData);
in_buf = orgData;
out_buf = mkData;
out_buf_left = out_size;
nResult = iconv(ic, (char *)&in_buf, &in_size, (char *)&out_buf, &out_buf_left);
if(nResult == -1)
{
WriteLog(LogType_StandardOut, LogLevel_Info, "ICONV FAILED [%d][%d]\n", nResult, errno);
}
sprintf((char *)bas_tbl_f.rvs_tbl_info[i].rvs_no, "%.2s%c", mkData, '\0');
#endif
WriteLog(LogType_StandardOut, LogLevel_Info, "[%02d] APL_DATE[%.4s%.2s%.2s%.2s%.2s]\n", i,
bas_tbl_f.rvs_tbl_info[i].apl_year, bas_tbl_f.rvs_tbl_info[i].apl_mon,
bas_tbl_f.rvs_tbl_info[i].apl_day, bas_tbl_f.rvs_tbl_info[i].apl_hr, bas_tbl_f.rvs_tbl_info[i].apl_min);
WriteLog(LogType_StandardOut, LogLevel_Info, "[%02d] MODF_DATE[%.4s%.2s%.2s%.2s%.2s]\n", i,
bas_tbl_f.rvs_tbl_info[i].modf_year, bas_tbl_f.rvs_tbl_info[i].modf_mon,
bas_tbl_f.rvs_tbl_info[i].modf_day, bas_tbl_f.rvs_tbl_info[i].modf_hr, bas_tbl_f.rvs_tbl_info[i].modf_min);
WriteLog(LogType_StandardOut, LogLevel_Info, "[%02d] RVS_NO[%.2s]\n", i, bas_tbl_f.rvs_tbl_info[i].rvs_no);
}
WriteLog(LogType_StandardOut, LogLevel_Info, "------- LANE -------\n");
for(i = 0; i < MAX_LANE; i++)
{
#if 0
//물리차로번호
memset(mkData, 0x00, sizeof(mkData));
memset(orgData, 0x00, sizeof(orgData));
snprintf(orgData, strlen(bas_tbl.lane_info[i].phgc_lane_no)+1, "%s", bas_tbl.lane_info[i].phgc_lane_no);
in_size = strlen(orgData);
out_size = sizeof(orgData);
in_buf = orgData;
out_buf = mkData;
out_buf_left = out_size;
nResult = iconv(ic, (char *)&in_buf, &in_size, (char *)&out_buf, &out_buf_left);
if(nResult == -1)
{
WriteLog(LogType_StandardOut, LogLevel_Info, "ICONV FAILED [%d][%d]\n", nResult, errno);
}
sprintf((char *)bas_tbl_f.lane_info[i].phgc_lane_no, "%.2s%c", mkData, '\0');
//차로이름
memset(mkData, 0x00, sizeof(mkData));
memset(orgData, 0x00, sizeof(orgData));
snprintf(orgData, strlen(bas_tbl.lane_info[i].lane_nm)+1, "%s", bas_tbl.lane_info[i].lane_nm);
in_size = strlen(orgData);
out_size = sizeof(orgData);
in_buf = orgData;
out_buf = mkData;
out_buf_left = out_size;
nResult = iconv(ic, (char *)&in_buf, &in_size, (char *)&out_buf, &out_buf_left);
if(nResult == -1)
{
WriteLog(LogType_StandardOut, LogLevel_Info, "ICONV FAILED [%d][%d]\n", nResult, errno);
}
sprintf((char *)bas_tbl_f.lane_info[i].lane_nm, "%.20s%c", mkData, '\0');
//입출구구분
memset(mkData, 0x00, sizeof(mkData));
memset(orgData, 0x00, sizeof(orgData));
snprintf(orgData, strlen(bas_tbl.lane_info[i].io_div)+1, "%s", bas_tbl.lane_info[i].io_div);
in_size = strlen(orgData);
out_size = sizeof(orgData);
in_buf = orgData;
out_buf = mkData;
out_buf_left = out_size;
nResult = iconv(ic, (char *)&in_buf, &in_size, (char *)&out_buf, &out_buf_left);
if(nResult == -1)
{
WriteLog(LogType_StandardOut, LogLevel_Info, "ICONV FAILED [%d][%d]\n", nResult, errno);
}
sprintf((char *)bas_tbl_f.lane_info[i].io_div, "%.2s%c", mkData, '\0');
//IP
memset(mkData, 0x00, sizeof(mkData));
memset(orgData, 0x00, sizeof(orgData));
snprintf(orgData, strlen(bas_tbl.lane_info[i].ip_addr)+1, "%s", bas_tbl.lane_info[i].ip_addr);
in_size = strlen(orgData);
out_size = sizeof(orgData);
in_buf = orgData;
out_buf = mkData;
out_buf_left = out_size;
nResult = iconv(ic, (char *)&in_buf, &in_size, (char *)&out_buf, &out_buf_left);
if(nResult == -1)
{
WriteLog(LogType_StandardOut, LogLevel_Info, "ICONV FAILED [%d][%d]\n", nResult, errno);
}
sprintf((char *)bas_tbl_f.lane_info[i].ip_addr, "%.16s%c", mkData, '\0');
//포트
memset(mkData, 0x00, sizeof(mkData));
memset(orgData, 0x00, sizeof(orgData));
snprintf(orgData, strlen(bas_tbl.lane_info[i].port)+1, "%s", bas_tbl.lane_info[i].port);
in_size = strlen(orgData);
out_size = sizeof(orgData);
in_buf = orgData;
out_buf = mkData;
out_buf_left = out_size;
nResult = iconv(ic, (char *)&in_buf, &in_size, (char *)&out_buf, &out_buf_left);
if(nResult == -1)
{
WriteLog(LogType_StandardOut, LogLevel_Info, "ICONV FAILED [%d][%d]\n", nResult, errno);
}
sprintf((char *)bas_tbl_f.lane_info[i].port, "%.8s%c", mkData, '\0');
//서브포트1
memset(mkData, 0x00, sizeof(mkData));
memset(orgData, 0x00, sizeof(orgData));
snprintf(orgData, strlen(bas_tbl.lane_info[i].sub_port1)+1, "%s", bas_tbl.lane_info[i].sub_port1);
in_size = strlen(orgData);
out_size = sizeof(orgData);
in_buf = orgData;
out_buf = mkData;
out_buf_left = out_size;
nResult = iconv(ic, (char *)&in_buf, &in_size, (char *)&out_buf, &out_buf_left);
if(nResult == -1)
{
WriteLog(LogType_StandardOut, LogLevel_Info, "ICONV FAILED [%d][%d]\n", nResult, errno);
}
sprintf((char *)bas_tbl_f.lane_info[i].sub_port1, "%.8s%c", mkData, '\0');
//서브포트2
memset(mkData, 0x00, sizeof(mkData));
memset(orgData, 0x00, sizeof(orgData));
snprintf(orgData, strlen(bas_tbl.lane_info[i].sub_port2)+1, "%s", bas_tbl.lane_info[i].sub_port2);
in_size = strlen(orgData);
out_size = sizeof(orgData);
in_buf = orgData;
out_buf = mkData;
out_buf_left = out_size;
nResult = iconv(ic, (char *)&in_buf, &in_size, (char *)&out_buf, &out_buf_left);
if(nResult == -1)
{
WriteLog(LogType_StandardOut, LogLevel_Info, "ICONV FAILED [%d][%d]\n", nResult, errno);
}
sprintf((char *)bas_tbl_f.lane_info[i].sub_port2, "%.8s%c", mkData, '\0');
#endif
WriteLog(LogType_StandardOut, LogLevel_Info, "[%02d] LANE_NO[%.2s]\n", i, bas_tbl_f.lane_info[i].phgc_lane_no);
WriteLog(LogType_StandardOut, LogLevel_Info, "[%02d] LANE_NM[%.20s]\n", i, bas_tbl_f.lane_info[i].lane_nm);
WriteLog(LogType_StandardOut, LogLevel_Info, "[%02d] IO_DIV[%.2s]\n", i, bas_tbl_f.lane_info[i].io_div);
WriteLog(LogType_StandardOut, LogLevel_Info, "[%02d] IP_ADDR[%.16s]\n", i, bas_tbl_f.lane_info[i].ip_addr);
WriteLog(LogType_StandardOut, LogLevel_Info, "[%02d] PORT[%.8s]\n", i, bas_tbl_f.lane_info[i].port);
WriteLog(LogType_StandardOut, LogLevel_Info, "[%02d] SUBPORT1[%.8s]\n", i, bas_tbl_f.lane_info[i].sub_port1);
WriteLog(LogType_StandardOut, LogLevel_Info, "[%02d] SUBPORT2[%.8s]\n", i, bas_tbl_f.lane_info[i].sub_port2);
}
WriteLog(LogType_StandardOut, LogLevel_Info, "------- FARE -------\n");
for(i = 0; i < 50; i++)
{
#if 0
//요금구분
memset(mkData, 0x00, sizeof(mkData));
memset(orgData, 0x00, sizeof(orgData));
snprintf(orgData, strlen(bas_tbl.fare_info[i].fare_div)+1, "%s", bas_tbl.fare_info[i].fare_div);
in_size = strlen(orgData);
out_size = sizeof(orgData);
in_buf = orgData;
out_buf = mkData;
out_buf_left = out_size;
nResult = iconv(ic, (char *)&in_buf, &in_size, (char *)&out_buf, &out_buf_left);
if(nResult == -1)
{
WriteLog(LogType_StandardOut, LogLevel_Info, "ICONV FAILED [%d][%d]\n", nResult, errno);
}
sprintf((char *)bas_tbl_f.fare_info[i].fare_div, "%.2s%c", mkData, '\0');
//할인구분
memset(mkData, 0x00, sizeof(mkData));
memset(orgData, 0x00, sizeof(orgData));
snprintf(orgData, strlen(bas_tbl.fare_info[i].dc_typ)+1, "%s", bas_tbl.fare_info[i].dc_typ);
in_size = strlen(orgData);
out_size = sizeof(orgData);
in_buf = orgData;
out_buf = mkData;
out_buf_left = out_size;
nResult = iconv(ic, (char *)&in_buf, &in_size, (char *)&out_buf, &out_buf_left);
if(nResult == -1)
{
WriteLog(LogType_StandardOut, LogLevel_Info, "ICONV FAILED [%d][%d]\n", nResult, errno);
}
sprintf((char *)bas_tbl_f.fare_info[i].dc_typ, "%.1s%c", mkData, '\0');
//요금
memset(mkData, 0x00, sizeof(mkData));
memset(orgData, 0x00, sizeof(orgData));
snprintf(orgData, strlen(bas_tbl.fare_info[i].fare)+1, "%s", bas_tbl.fare_info[i].fare);
in_size = strlen(orgData);
out_size = sizeof(orgData);
in_buf = orgData;
out_buf = mkData;
out_buf_left = out_size;
nResult = iconv(ic, (char *)&in_buf, &in_size, (char *)&out_buf, &out_buf_left);
if(nResult == -1)
{
WriteLog(LogType_StandardOut, LogLevel_Info, "ICONV FAILED [%d][%d]\n", nResult, errno);
}
sprintf((char *)bas_tbl_f.fare_info[i].fare, "%.6s%c", mkData, '\0');
//시작일
memset(mkData, 0x00, sizeof(mkData));
memset(orgData, 0x00, sizeof(orgData));
snprintf(orgData, strlen(bas_tbl.fare_info[i].start_dt)+1, "%s", bas_tbl.fare_info[i].start_dt);
in_size = strlen(orgData);
out_size = sizeof(orgData);
in_buf = orgData;
out_buf = mkData;
out_buf_left = out_size;
nResult = iconv(ic, (char *)&in_buf, &in_size, (char *)&out_buf, &out_buf_left);
if(nResult == -1)
{
WriteLog(LogType_StandardOut, LogLevel_Info, "ICONV FAILED [%d][%d]\n", nResult, errno);
}
sprintf((char *)bas_tbl_f.fare_info[i].start_dt, "%.8s%c", mkData, '\0');
//종료일
memset(mkData, 0x00, sizeof(mkData));
memset(orgData, 0x00, sizeof(orgData));
snprintf(orgData, strlen(bas_tbl.fare_info[i].end_dt)+1, "%s", bas_tbl.fare_info[i].end_dt);
in_size = strlen(orgData);
out_size = sizeof(orgData);
in_buf = orgData;
out_buf = mkData;
out_buf_left = out_size;
nResult = iconv(ic, (char *)&in_buf, &in_size, (char *)&out_buf, &out_buf_left);
if(nResult == -1)
{
WriteLog(LogType_StandardOut, LogLevel_Info, "ICONV FAILED [%d][%d]\n", nResult, errno);
}
sprintf((char *)bas_tbl_f.fare_info[i].end_dt, "%.8s%c", mkData, '\0');
//할인율
memset(mkData, 0x00, sizeof(mkData));
memset(orgData, 0x00, sizeof(orgData));
snprintf(orgData, strlen(bas_tbl.fare_info[i].fare_dc)+1, "%s", bas_tbl.fare_info[i].fare_dc);
in_size = strlen(orgData);
out_size = sizeof(orgData);
in_buf = orgData;
out_buf = mkData;
out_buf_left = out_size;
nResult = iconv(ic, (char *)&in_buf, &in_size, (char *)&out_buf, &out_buf_left);
if(nResult == -1)
{
WriteLog(LogType_StandardOut, LogLevel_Info, "ICONV FAILED [%d][%d]\n", nResult, errno);
}
sprintf((char *)bas_tbl_f.fare_info[i].fare_dc, "%.6s%c", mkData, '\0');
//과태료
memset(mkData, 0x00, sizeof(mkData));
memset(orgData, 0x00, sizeof(orgData));
snprintf(orgData, strlen(bas_tbl.fare_info[i].penalty)+1, "%s", bas_tbl.fare_info[i].penalty);
in_size = strlen(orgData);
out_size = sizeof(orgData);
in_buf = orgData;
out_buf = mkData;
out_buf_left = out_size;
nResult = iconv(ic, (char *)&in_buf, &in_size, (char *)&out_buf, &out_buf_left);
if(nResult == -1)
{
WriteLog(LogType_StandardOut, LogLevel_Info, "ICONV FAILED [%d][%d]\n", nResult, errno);
}
sprintf((char *)bas_tbl_f.fare_info[i].penalty, "%.6s%c", mkData, '\0');
#endif
WriteLog(LogType_StandardOut, LogLevel_Info, "[%02d] FARE_DIV[%.2s]\n", i, bas_tbl_f.fare_info[i].fare_div);
WriteLog(LogType_StandardOut, LogLevel_Info, "[%02d] DC[%c]\n", i, bas_tbl_f.fare_info[i].dc_typ);
WriteLog(LogType_StandardOut, LogLevel_Info, "[%02d] FARE[%.6s]\n", i, bas_tbl_f.fare_info[i].fare);
WriteLog(LogType_StandardOut, LogLevel_Info, "[%02d] START_DT[%.8s]\n", i, bas_tbl_f.fare_info[i].start_dt);
WriteLog(LogType_StandardOut, LogLevel_Info, "[%02d] END_DT[%.8s]\n", i, bas_tbl_f.fare_info[i].end_dt);
WriteLog(LogType_StandardOut, LogLevel_Info, "[%02d] FARE_DC[%.6s]\n", i, bas_tbl_f.fare_info[i].fare_dc);
WriteLog(LogType_StandardOut, LogLevel_Info, "[%02d] PENALTY[%.6s]\n", i, bas_tbl_f.fare_info[i].penalty);
}
WriteLog(LogType_StandardOut, LogLevel_Info, "------- END -------\n");
#if 0
memset(mkData, 0x00, sizeof(mkData));
memset(orgData, 0x00, sizeof(orgData));
snprintf(orgData, strlen(bas_tbl.fare_cnt)+1, "%s", bas_tbl.fare_cnt);
in_size = strlen(orgData);
out_size = sizeof(orgData);
in_buf = orgData;
out_buf = mkData;
out_buf_left = out_size;
nResult = iconv(ic, (char *)&in_buf, &in_size, (char *)&out_buf, &out_buf_left);
if(nResult == -1)
{
WriteLog(LogType_StandardOut, LogLevel_Info, "ICONV FAILED [%d][%d]\n", nResult, errno);
}
sprintf((char *)bas_tbl_f.fare_cnt, "%.2s%c", mkData, '\0');
memset(mkData, 0x00, sizeof(mkData));
memset(orgData, 0x00, sizeof(orgData));
snprintf(orgData, strlen(bas_tbl.rcv_str_dt)+1, "%s", bas_tbl.rcv_str_dt);
in_size = strlen(orgData);
out_size = sizeof(orgData);
in_buf = orgData;
out_buf = mkData;
out_buf_left = out_size;
nResult = iconv(ic, (char *)&in_buf, &in_size, (char *)&out_buf, &out_buf_left);
if(nResult == -1)
{
WriteLog(LogType_StandardOut, LogLevel_Info, "ICONV FAILED [%d][%d]\n", nResult, errno);
}
sprintf((char *)bas_tbl_f.rcv_str_dt, "%.2s%c", mkData, '\0');
memset(mkData, 0x00, sizeof(mkData));
memset(orgData, 0x00, sizeof(orgData));
snprintf(orgData, strlen(bas_tbl.rcv_end_dt)+1, "%s", bas_tbl.rcv_end_dt);
in_size = strlen(orgData);
out_size = sizeof(orgData);
in_buf = orgData;
out_buf = mkData;
out_buf_left = out_size;
nResult = iconv(ic, (char *)&in_buf, &in_size, (char *)&out_buf, &out_buf_left);
if(nResult == -1)
{
WriteLog(LogType_StandardOut, LogLevel_Info, "ICONV FAILED [%d][%d]\n", nResult, errno);
}
sprintf((char *)bas_tbl_f.rcv_end_dt, "%.2s%c", mkData, '\0');
#endif
WriteLog(LogType_StandardOut, LogLevel_Info, "##### FARE_CNT[%.2s]\n", bas_tbl_f.fare_cnt);
WriteLog(LogType_StandardOut, LogLevel_Info, "##### RCV_STR_DT[%.4s]\n", bas_tbl_f.rcv_str_dt);
WriteLog(LogType_StandardOut, LogLevel_Info, "##### RCV_END_DT[%.4s]\n", bas_tbl_f.rcv_end_dt);
isrc = lb_writel(isfd, &bas_tbl_f, sizeof(bas_tbl_f));
#endif
}
fclose(fp);
lb_rename(cpath, path);
lb_close(isfd);
#endif
return(isrc);
}

@ -0,0 +1,58 @@
/*
*========================================================================
*
* :
* : ft_ecblcng.pc
* : (baarong@neighbor21.co.kr)
* : 2019.08.13
* :
* :
*
*========================================================================
*/
#include <stdio.h>
#include <stdlib.h>
#include <errno.h>
#include <unistd.h>
#include "bef_chg.h"
#include "dir_path.h"
#include "file_no.h"
#include "file_lb.h"
#include "lb_func_list.h"
#include "func_list.h"
#include "util.h"
/*
*========================================================================
*
* : chng_t2f_befchg
* : (baarong@neighbor21.co.kr)
* : 2019.08.13
* :
* : (oprc_rgstr_tag_bl) -F .
*
*========================================================================
*/
int make_befchg(char *data)
{
char path[128], spath[128], tpath[128];
char mkData[MAX_STRING_SIZE*20 + 1];
int isfd, isrc, errflg = 0, res;
memset(mkData, 0x00, sizeof(mkData));
snprintf(mkData, strlen(data)+1, "%s", data);
printf("make_befchg [%s][%d]\n", data, strlen(data));
printf("make_befchg 2[%s][%d]\n", mkData, strlen(mkData));
WriteLog(LogType_StandardOut, LogLevel_Info, "DATA[%s][%d]\n", mkData, strlen(mkData));
sprintf(path, "%s/%s/ADVCHG_S", DIR_TCS, DIR_BASEINFO);
//unlink(path);
//isrc = Write_File_Char(mkData, strlen(mkData), path);
res = Add_Write_File_Char(mkData, strlen(mkData), path);
return(res);
}

@ -0,0 +1,63 @@
/*
*========================================================================
*
* :
* : ft_ecblcng.pc
* : (baarong@neighbor21.co.kr)
* : 2019.08.13
* :
* :
*
*========================================================================
*/
#include <stdio.h>
#include <stdlib.h>
#include <errno.h>
#include <unistd.h>
#include "bef_chg.h"
#include "dir_path.h"
#include "file_no.h"
#include "file_lb.h"
#include "lb_func_list.h"
#include "func_list.h"
#include "util.h"
/*
*========================================================================
*
* : make_befchg2
* : (baarong@neighbor21.co.kr)
* : 2020.03.10
* :
* : WEB .
*
*========================================================================
*/
int make_befchg2(char *data)
{
char path[128], spath[128], tpath[128];
char mkData[MAX_STRING_SIZE*20 + 1];
char msg[1024];
int isfd, isrc, errflg = 0, res;
memset(mkData, 0x00, sizeof(mkData));
snprintf(mkData, strlen(data)+1, "%s", data);
printf("make_befchg [%s][%d]\n", data, strlen(data));
printf("make_befchg 2[%s][%d]\n", mkData, strlen(mkData));
WriteLog(LogType_StandardOut, LogLevel_Info, "DATA[%s][%d]\n", mkData, strlen(mkData));
sprintf(path, "%s/%s/ADVCHG", DIR_TCS, DIR_BASEINFO);
//unlink(path);
//isrc = Write_File_Char(mkData, strlen(mkData), path);
res = Add_Write_File_Char(mkData, strlen(mkData), path);
memset(msg, 0x00, sizeof(msg));
sprintf(msg, "/app/tcs/GREEN_LANE/bin/imsiftp.sh ADC ADVCHG");
system(msg);
return(res);
}

@ -0,0 +1,88 @@
/*
*========================================================================
*
* :
* : ft_ecblcng.pc
* : (baarong@neighbor21.co.kr)
* : 2019.08.13
* :
* :
*
*========================================================================
*/
#include <stdio.h>
#include <stdlib.h>
#include <errno.h>
#include <unistd.h>
#include "bef_mst.h"
#include "dir_path.h"
#include "file_no.h"
#include "file_lb.h"
#include "lb_func_list.h"
#include "func_list.h"
#include "util.h"
/*
*========================================================================
*
* : chng_t2f_befmst
* : (baarong@neighbor21.co.kr)
* : 2019.08.13
* :
* : .
*
*========================================================================
*/
int make_befmst(unsigned int rcv, char *data)
{
char path[128], spath[128], tpath[128];
char mkData[MAX_STRING_SIZE+1];
int isfd, isrc, errflg = 0;
memset(mkData, 0x00, sizeof(mkData));
snprintf(mkData, strlen(data)+1, "%s", data);
//printf("make_befmst [%d][%s][%d]\n", rcv, data, strlen(data));
//printf("make_befmst 2[%s][%d]\n", mkData, strlen(mkData));
//WriteLog(LogType_StandardOut, LogLevel_Info, "DATA[%s][%d]\n", mkData, strlen(mkData));
sprintf(path, "%s/%s/ADVMST_S", DIR_TCS, DIR_BASEINFO);
//unlink(path);
if(rcv == 1)
{
sprintf(path, "%s/%s/ADVCHG", DIR_TCS, DIR_BASEINFO);
unlink(path);
sprintf(path, "%s/%s/ADVMST_S", DIR_TCS, DIR_BASEINFO);
unlink(path);
isrc = Write_File_Char(mkData, strlen(mkData), path);
}
else
{
isrc = Add_Write_File_Char(mkData, strlen(mkData), path);
}
#if 0
/*------------------------------------------------------*/
/* OLD ADVMST ==> ADVMST_O */
/*------------------------------------------------------*/
sprintf(path, "%s/%s/ADVMST_O", DIR_TCS,DIR_BASEINFO);
unlink(path);
sprintf(spath, "%s/%s/ADVMST", DIR_TCS, DIR_BASEINFO);
sprintf(tpath, "%s/%s/ADVMST_O", DIR_TCS, DIR_BASEINFO);
lb_rename(spath, tpath);
/*------------------------------------------------------*/
/* NEW ADVMST_S ==> ADVMST */
/*------------------------------------------------------*/
sprintf(path, "%s/%s/ADVMST", DIR_TCS,DIR_BASEINFO);
unlink(path);
sprintf(spath, "%s/%s/ADVMST_S", DIR_TCS, DIR_BASEINFO);
sprintf(tpath, "%s/%s/ADVMST", DIR_TCS, DIR_BASEINFO);
lb_rename(spath, tpath);
#endif
return(isrc);
}

@ -0,0 +1,58 @@
/*
*========================================================================
*
* :
* : ft_ecblcng.pc
* : (baarong@neighbor21.co.kr)
* : 2019.08.13
* :
* :
*
*========================================================================
*/
#include <stdio.h>
#include <stdlib.h>
#include <errno.h>
#include <unistd.h>
#include "bef_chg.h"
#include "dir_path.h"
#include "file_no.h"
#include "file_lb.h"
#include "lb_func_list.h"
#include "func_list.h"
#include "util.h"
/*
*========================================================================
*
* : make_exemptchg
* : (baarong@neighbor21.co.kr)
* : 2019.08.13
* :
* :
*
*========================================================================
*/
int make_exemptchg(char *data)
{
char path[128], spath[128], tpath[128];
char mkData[MAX_STRING_SIZE*20 + 1];
int isfd, isrc, errflg = 0, res;
memset(mkData, 0x00, sizeof(mkData));
snprintf(mkData, strlen(data)+1, "%s", data);
//printf("make_exemptchg [%s][%d]\n", data, strlen(data));
//printf("make_exemptchg 2[%s][%d]\n", mkData, strlen(mkData));
WriteLog(LogType_StandardOut, LogLevel_Info, "DATA[%s][%d]\n", mkData, strlen(mkData));
sprintf(path, "%s/%s/IMMCARNOC_S", DIR_TCS, DIR_BASEINFO);
//unlink(path);
//isrc = Write_File_Char(mkData, strlen(mkData), path);
res = Add_Write_File_Char(data, strlen(data), path);
return(res);
}

@ -0,0 +1,88 @@
/*
*========================================================================
*
* :
* : ft_ecblcng.pc
* : (baarong@neighbor21.co.kr)
* : 2019.08.13
* :
* :
*
*========================================================================
*/
#include <stdio.h>
#include <stdlib.h>
#include <errno.h>
#include <unistd.h>
#include "bef_mst.h"
#include "dir_path.h"
#include "file_no.h"
#include "file_lb.h"
#include "lb_func_list.h"
#include "func_list.h"
#include "util.h"
/*
*========================================================================
*
* : make_exemptmst
* : (baarong@neighbor21.co.kr)
* : 2019.08.13
* :
* :
*
*========================================================================
*/
int make_exemptmst(unsigned int rcv, char *data)
{
char path[128], spath[128], tpath[128];
char mkData[MAX_STRING_SIZE + 1];
int isfd, isrc, errflg = 0;
memset(mkData, 0x00, sizeof(mkData));
snprintf(mkData, strlen(data)+1, "%s", data);
//printf("make_befmst [%d][%s][%d]\n", rcv, data, strlen(data));
//printf("make_befmst 2[%s][%d]\n", mkData, strlen(mkData));
//WriteLog(LogType_StandardOut, LogLevel_Info, "DATA[%s][%d]\n", mkData, strlen(mkData));
sprintf(path, "%s/%s/IMMCARNO_S", DIR_TCS, DIR_BASEINFO);
//unlink(path);
if(rcv == 1)
{
sprintf(path, "%s/%s/IMMCARNOC", DIR_TCS, DIR_BASEINFO);
unlink(path);
sprintf(path, "%s/%s/IMMCARNO_S", DIR_TCS, DIR_BASEINFO);
unlink(path);
isrc = Write_File_Char(mkData, strlen(mkData), path);
}
else
{
isrc = Add_Write_File_Char(mkData, strlen(mkData), path);
}
#if 0
/*------------------------------------------------------*/
/* OLD BEFMST ==> BEFMST_O */
/*------------------------------------------------------*/
sprintf(path, "%s/%s/BEFMST_O", DIR_TCS,DIR_BASEINFO);
unlink(path);
sprintf(spath, "%s/%s/BEFMST", DIR_TCS, DIR_BASEINFO);
sprintf(tpath, "%s/%s/BEFMST_O", DIR_TCS, DIR_BASEINFO);
lb_rename(spath, tpath);
/*------------------------------------------------------*/
/* NEW BEFMST_S ==> BEFMST */
/*------------------------------------------------------*/
sprintf(path, "%s/%s/BEFMST", DIR_TCS,DIR_BASEINFO);
unlink(path);
sprintf(spath, "%s/%s/BEFMST_S", DIR_TCS, DIR_BASEINFO);
sprintf(tpath, "%s/%s/BEFMST", DIR_TCS, DIR_BASEINFO);
lb_rename(spath, tpath);
#endif
return(isrc);
}

@ -0,0 +1,58 @@
/*
*========================================================================
*
* :
* : ft_ecblcng.pc
* : (baarong@neighbor21.co.kr)
* : 2019.08.13
* :
* :
*
*========================================================================
*/
#include <stdio.h>
#include <stdlib.h>
#include <errno.h>
#include <unistd.h>
#include "bef_chg.h"
#include "dir_path.h"
#include "file_no.h"
#include "file_lb.h"
#include "lb_func_list.h"
#include "func_list.h"
#include "util.h"
/*
*========================================================================
*
* : make_scarchg
* : (baarong@neighbor21.co.kr)
* : 2019.08.13
* :
* : PL
*
*========================================================================
*/
int make_scarchg(char *data)
{
char path[128], spath[128], tpath[128];
char mkData[MAX_STRING_SIZE*20 + 1];
int isfd, isrc, errflg = 0, res;
memset(mkData, 0x00, sizeof(mkData));
snprintf(mkData, strlen(data)+1, "%s", data);
WriteLog(LogType_StandardOut, LogLevel_Info, "make_scarchg [%s][%d]\n", data, strlen(data));
WriteLog(LogType_StandardOut, LogLevel_Info, "make_scarchg 2[%s][%d]\n", mkData, strlen(mkData));
WriteLog(LogType_StandardOut, LogLevel_Info, "DATA[%s][%d]\n", mkData, strlen(mkData));
sprintf(path, "%s/%s/REDCARNOC_S", DIR_TCS, DIR_BASEINFO);
//unlink(path);
//isrc = Write_File_Char(mkData, strlen(mkData), path);
res = Add_Write_File_Char(mkData, strlen(mkData), path);
return(res);
}

@ -0,0 +1,87 @@
/*
*========================================================================
*
* :
* : make_scarmst.c
* : (baarong@neighbor21.co.kr)
* : 2019.08.13
* :
* :
*
*========================================================================
*/
#include <stdio.h>
#include <stdlib.h>
#include <errno.h>
#include <unistd.h>
#include "bef_mst.h"
#include "dir_path.h"
#include "file_no.h"
#include "file_lb.h"
#include "lb_func_list.h"
#include "func_list.h"
#include "util.h"
/*
*========================================================================
*
* : make_scarmst
* : (baarong@neighbor21.co.kr)
* : 2019.08.13
* :
* : PL
*
*========================================================================
*/
int make_scarmst(unsigned int rcv, char *data)
{
char path[128], spath[128], tpath[128];
char mkData[MAX_STRING_SIZE + 1];
int isfd, isrc, errflg = 0;
memset(mkData, 0x00, sizeof(mkData));
snprintf(mkData, strlen(data)+1, "%s", data);
//printf("make_befmst [%d][%s][%d]\n", rcv, data, strlen(data));
//printf("make_befmst 2[%s][%d]\n", mkData, strlen(mkData));
//WriteLog(LogType_StandardOut, LogLevel_Info, "DATA[%s][%d]\n", mkData, strlen(mkData));
sprintf(path, "%s/%s/REDCARNO_S", DIR_TCS, DIR_BASEINFO);
//unlink(path);
if(rcv == 1)
{
sprintf(path, "%s/%s/REDCARNOC", DIR_TCS, DIR_BASEINFO);
unlink(path);
sprintf(path, "%s/%s/REDCARNO_S", DIR_TCS, DIR_BASEINFO);
unlink(path);
isrc = Write_File_Char(mkData, strlen(mkData), path);
}
else
{
isrc = Add_Write_File_Char(mkData, strlen(mkData), path);
}
#if 0
/*------------------------------------------------------*/
/* OLD REDCARNO ==> REDCARNO_O */
/*------------------------------------------------------*/
sprintf(path, "%s/%s/REDCARNO_O", DIR_TCS,DIR_BASEINFO);
unlink(path);
sprintf(spath, "%s/%s/REDCARNO", DIR_TCS, DIR_BASEINFO);
sprintf(tpath, "%s/%s/REDCARNO_O", DIR_TCS, DIR_BASEINFO);
lb_rename(spath, tpath);
/*------------------------------------------------------*/
/* NEW REDCARNO_S ==> REDCARNO */
/*------------------------------------------------------*/
sprintf(path, "%s/%s/REDCARNO", DIR_TCS,DIR_BASEINFO);
unlink(path);
sprintf(spath, "%s/%s/REDCARNO_S", DIR_TCS, DIR_BASEINFO);
sprintf(tpath, "%s/%s/REDCARNO", DIR_TCS, DIR_BASEINFO);
lb_rename(spath, tpath);
#endif
return(isrc);
}

@ -0,0 +1,58 @@
/*
*========================================================================
*
* :
* : ft_ecblcng.pc
* : (baarong@neighbor21.co.kr)
* : 2019.08.13
* :
* :
*
*========================================================================
*/
#include <stdio.h>
#include <stdlib.h>
#include <errno.h>
#include <unistd.h>
#include "bef_chg.h"
#include "dir_path.h"
#include "file_no.h"
#include "file_lb.h"
#include "lb_func_list.h"
#include "func_list.h"
#include "util.h"
/*
*========================================================================
*
* : make_rfidchg
* : (baarong@neighbor21.co.kr)
* : 2019.08.13
* :
* : /
*
*========================================================================
*/
int make_rfidchg(char *data)
{
char path[128], spath[128], tpath[128];
char mkData[MAX_STRING_SIZE * 20 + 1];
int isfd, isrc, errflg = 0, res;
memset(mkData, 0x00, sizeof(mkData));
snprintf(mkData, strlen(data)+1, "%s", data);
printf("make_rfidchg [%s][%d]\n", data, strlen(data));
printf("make_rfidchg 2[%s][%d]\n", mkData, strlen(mkData));
WriteLog(LogType_StandardOut, LogLevel_Info, "DATA[%s][%d]\n", mkData, strlen(mkData));
sprintf(path, "%s/%s/IMMRFIDC_S", DIR_TCS, DIR_BASEINFO);
//unlink(path);
//isrc = Write_File_Char(mkData, strlen(mkData), path);
res = Add_Write_File_Char(data, strlen(data), spath);
return(res);
}

@ -0,0 +1,88 @@
/*
*========================================================================
*
* :
* : ft_ecblcng.pc
* : (baarong@neighbor21.co.kr)
* : 2019.08.13
* :
* :
*
*========================================================================
*/
#include <stdio.h>
#include <stdlib.h>
#include <errno.h>
#include <unistd.h>
#include "bef_mst.h"
#include "dir_path.h"
#include "file_no.h"
#include "file_lb.h"
#include "lb_func_list.h"
#include "func_list.h"
#include "util.h"
/*
*========================================================================
*
* : make_rfidmst
* : (baarong@neighbor21.co.kr)
* : 2019.08.13
* :
* : /
*
*========================================================================
*/
int make_rfidmst(unsigned int rcv, char *data)
{
char path[128], spath[128], tpath[128];
char mkData[MAX_STRING_SIZE + 1];
int isfd, isrc, errflg = 0;
memset(mkData, 0x00, sizeof(mkData));
snprintf(mkData, strlen(data)+1, "%s", data);
//printf("make_befmst [%d][%s][%d]\n", rcv, data, strlen(data));
//printf("make_befmst 2[%s][%d]\n", mkData, strlen(mkData));
//WriteLog(LogType_StandardOut, LogLevel_Info, "DATA[%s][%d]\n", mkData, strlen(mkData));
sprintf(path, "%s/%s/IMMRFID_S", DIR_TCS, DIR_BASEINFO);
//unlink(path);
if(rcv == 1)
{
sprintf(path, "%s/%s/IMMRFIDC", DIR_TCS, DIR_BASEINFO);
unlink(path);
sprintf(path, "%s/%s/IMMRFID_S", DIR_TCS, DIR_BASEINFO);
unlink(path);
isrc = Write_File_Char(mkData, strlen(mkData), path);
}
else
{
isrc = Add_Write_File_Char(mkData, strlen(mkData), path);
}
#if 0
/*------------------------------------------------------*/
/* OLD BEFMST ==> BEFMST_O */
/*------------------------------------------------------*/
sprintf(path, "%s/%s/BEFMST_O", DIR_TCS,DIR_BASEINFO);
unlink(path);
sprintf(spath, "%s/%s/BEFMST", DIR_TCS, DIR_BASEINFO);
sprintf(tpath, "%s/%s/BEFMST_O", DIR_TCS, DIR_BASEINFO);
lb_rename(spath, tpath);
/*------------------------------------------------------*/
/* NEW BEFMST_S ==> BEFMST */
/*------------------------------------------------------*/
sprintf(path, "%s/%s/BEFMST", DIR_TCS,DIR_BASEINFO);
unlink(path);
sprintf(spath, "%s/%s/BEFMST_S", DIR_TCS, DIR_BASEINFO);
sprintf(tpath, "%s/%s/BEFMST", DIR_TCS, DIR_BASEINFO);
lb_rename(spath, tpath);
#endif
return(isrc);
}

@ -0,0 +1,167 @@
/*
*========================================================================
*
* :
* : make_worker.c
* : (baarong@neighbor21.co.kr)
* : 2019.08.30
* :
* :
*
*========================================================================
*/
#include <stdio.h>
#include <stdlib.h>
#include <errno.h>
#include <unistd.h>
#include <iconv.h>
#include "wrkr_info.h"
#include "dir_path.h"
#include "file_no.h"
#include "file_lb.h"
#include "lb_func_list.h"
#include "func_list.h"
#include "util.h"
#define _INCTEST_ 1
/*
*========================================================================
*
* : make_worker
* : (baarong@neighbor21.co.kr)
* : 2019.08.13
* :
* : ()
*
*========================================================================
*/
int make_worker(char *data)
{
char path[128], spath[128], tpath[128];
#ifdef _INCTEST_
char cpath[128];
#endif
char mkData[MAX_STRING_SIZE*30];
int isfd, isrc, errflg = 0, nResult = 0, count = 0, total = 0;
size_t in_size;
size_t out_size;
size_t out_buf_left;
char orgData[MAX_STRING_SIZE*30];
char szCarNo[255+1];
char* in_buf;
char* out_buf;
memset(mkData, 0x00, sizeof(mkData));
snprintf(mkData, strlen(data)+1, "%s", data);
//printf("make_befmst [%d][%s][%d]\n", rcv, data, strlen(data));
//printf("make_befmst 2[%s][%d]\n", mkData, strlen(mkData));
//WriteLog(LogType_StandardOut, LogLevel_Info, "DATA[%s][%d]\n", mkData, strlen(mkData));
sprintf(tpath, "%s/%s/WRKERTBL_O", DIR_TCS, DIR_BASEINFO);
unlink(tpath);
sprintf(path, "%s/%s/WRKERTBL", DIR_TCS, DIR_BASEINFO);
lb_rename(path, tpath);
sprintf(spath, "%s/%s/WRKERTBL_S", DIR_TCS, DIR_BASEINFO);
unlink(spath);
#ifdef _INCTEST_
// INCODING 확인 테스트
sprintf(cpath, "%s/%s/WRKERTBL_C", DIR_TCS, DIR_BASEINFO);
isfd=lb_build(cpath, FINOUT+FC_EXCLLOCK);
if(isfd < 0)
{
WriteLog(LogType_StandardOut, LogLevel_Info, "WRKERTBL:파일생성 실패[%d]\n", isfd);
isrc = -1;
return(isrc);
}
#endif
#if 1
//차로에서 수신 불가 인코딩 필수
isrc = Write_File_Char(mkData, strlen(mkData), spath);
if(isrc == 0)
{
WriteLog(LogType_StandardOut, LogLevel_Info, "WORKER DATA CREATE[%d]\n", isrc);
//lb_rename(spath, path);
}
#endif
#if 1
struct wrkr_personal_info wrkr_tbl, wrkr_tbl_f;
FILE *fp = NULL;
int i = 0;
fp = fopen(spath, "r+");
WriteLog(LogType_StandardOut, LogLevel_Info, "TEST 근무자파일 읽기 시작\n");
if(fp == NULL)
{
WriteLog(LogType_StandardOut, LogLevel_Info, "TEST 근무자파일 읽기 파일열기 실패\n");
}else
{
#ifdef _INCTEST_
iconv_t ic = iconv_open("EUC-KR", "UTF-8");
if(ic == (iconv_t) -1)
{
WriteLog(LogType_StandardOut, LogLevel_Info, "###### Not Supported ICONV Code ###### \n");
}
#endif
while (feof(fp) == 0) // 파일 포인터가 파일의 끝이 아닐 때 계속 반복
{
count = fread(&wrkr_tbl, sizeof(struct wrkr_personal_info), 1, fp); // 1바이트씩 4번(4바이트) 읽기
WriteLog(LogType_StandardOut, LogLevel_Info, "##### wrkr_no[%.4s]\n", wrkr_tbl.wrkr_no);
WriteLog(LogType_StandardOut, LogLevel_Info, "##### wrkr_nm[%.10s]\n", wrkr_tbl.wrkr_nm);
#ifdef _INCTEST_
memset(mkData, 0x00, sizeof(mkData));
memset(orgData, 0x00, sizeof(orgData));
memset(&wrkr_tbl_f, 0x20, sizeof(wrkr_tbl_f));
snprintf(orgData, strlen(wrkr_tbl.wrkr_no)+1, "%s", wrkr_tbl.wrkr_no);
in_size = strlen(orgData);
out_size = sizeof(orgData);
in_buf = orgData;
out_buf = mkData;
out_buf_left = out_size;
nResult = iconv(ic, (char *)&in_buf, &in_size, (char *)&out_buf, &out_buf_left);
if(nResult == -1)
{
WriteLog(LogType_StandardOut, LogLevel_Info, "ICONV FAILED [%d][%d]\n", nResult, errno);
}
sprintf((char *)wrkr_tbl_f.wrkr_no, "%.4s", mkData);
memset(mkData, 0x00, sizeof(mkData));
memset(orgData, 0x00, sizeof(orgData));
snprintf(orgData, strlen(wrkr_tbl.wrkr_nm)+1, "%s", wrkr_tbl.wrkr_nm);
in_size = strlen(orgData);
out_size = sizeof(orgData);
in_buf = orgData;
out_buf = mkData;
out_buf_left = out_size;
nResult = iconv(ic, (char *)&in_buf, &in_size, (char *)&out_buf, &out_buf_left);
if(nResult == -1)
{
WriteLog(LogType_StandardOut, LogLevel_Info, "ICONV FAILED [%d][%d]\n", nResult, errno);
}
sprintf((char *)wrkr_tbl_f.wrkr_nm, "%.10s", mkData);
isrc = lb_writel(isfd, &wrkr_tbl_f, sizeof(wrkr_tbl_f));
#endif
total += count;
}
WriteLog(LogType_StandardOut, LogLevel_Info, "------- END[%d] -------\n", total);
iconv_close(ic);
fclose(fp);
}
lb_rename(cpath, path);
lb_close(isfd);
#endif
return(isrc);
}

@ -0,0 +1,204 @@
/**********************************************************************
// source file name : util.c
// date of preperation : 2016.03.17
// date of last update : 2016.03.17
// developer : mskim
**********************************************************************/
#include "util.h"
#include "MessageInfo.h"
#include <inttypes.h>
int Cto0NdC(char *dst, char *src, int len)
{
char acZero[1024];
char acDst[1024];
int iTmp=0;
int iSrcLen=0;
int i;
memset(acZero, 0x30, len);
memset(acDst, 0x00, sizeof(acDst));
for(i=0; i<strlen(src); i++)
{
if(src[i] == 0x00 || src[i] == 0x20)
{
break;
}
iSrcLen++;
}
iTmp = len - iSrcLen;
if(iTmp < 0)
{
memcpy(dst, src, iSrcLen);
return -1;
}
memcpy(acDst, acZero, iTmp);
memcpy(acDst+iTmp, src, iSrcLen);
memcpy(dst, acDst, strlen(acDst));
return 0;
}
int64_t S64(const char *s)
{
int64_t i;
char c ;
//int scanned = sscanf(s, "%d" SCNd64 "%c", &i, &c);
int scanned = sscanf(s, "%d %c", &i, &c);
if (scanned == 1) return i;
if (scanned > 1) {
// TBD about extra data found
return i;
}
// TBD failed to scan;
return 0;
}
/******************************************************************************
* Get_File_Size_Char
* parameter
* Return
******************************************************************************/
long Get_File_Size_Char(char* pcFile)
{
FILE* pFp = 0x00;
long lSize = 0;
char acFilePath[512];
memset(acFilePath, 0x00, sizeof(acFilePath));
memcpy(acFilePath, pcFile, sizeof(acFilePath));
pFp = fopen(acFilePath, "rb");
if(0x00 == pFp)
{
return -1;
}
else
{
fseek(pFp, 0L, SEEK_END);
lSize = ftell(pFp);
if(lSize < 0)
perror("Get_File_Size_Char Error");
}
fclose(pFp);
return lSize;
}
/******************************************************************************
* Read_File_Char
* parameter
* Return
******************************************************************************/
long Read_File_Char(char* pcDesc, char* pcFile)
{
FILE* pFp = 0x00;
long lSize = 0;
char acFilePath[512];
memset(acFilePath, 0x00, sizeof(acFilePath));
memcpy(acFilePath, pcFile, sizeof(acFilePath));
pFp = fopen(acFilePath, "rb");
if(0x00 == pFp)
{
return -1;
}
else
{
fseek(pFp, 0L, SEEK_END);
lSize = ftell(pFp);
fseek(pFp, 0L, SEEK_SET);
fread(pcDesc, sizeof(char), lSize+1, pFp);
}
fclose(pFp);
return lSize;
}
/******************************************************************************
* Write_File_Char
* parameter
* Return
******************************************************************************/
int Write_File_Char(unsigned char *data, long len, char *file)
{
FILE *fp = NULL;
char filePath[512];
memset(filePath, 0x00, sizeof(filePath));
memcpy(filePath, file, sizeof(filePath));
fp = fopen(filePath,"wb");
if (fp == NULL) return -1;
else{
char *buff = (char *) malloc(len+1);
memset(buff, 0x00, len+1);
memcpy(buff, data, len);
fputs(buff, fp);
free(buff);
}
fflush(fp);
fclose(fp);
WriteLog(LogType_StandardOut, LogLevel_Info, "파일 생성 : %s", filePath);
WriteLog(LogType_StandardOut, LogLevel_Info, "파일 크기 : %d byte", len);
return 0;
}
/******************************************************************************
* Add_Write_File_Char
* parameter
* Return
******************************************************************************/
int Add_Write_File_Char(char *data, long len, char *file)
{
FILE *fp = NULL;
char filePath[512];
memset(filePath, 0x00, sizeof(filePath));
memcpy(filePath, file, sizeof(filePath));
fp = fopen(filePath,"ab");
if (fp == NULL) return -1;
else{
char *buff = (char *) malloc(len+1);
memset(buff, 0x00, len+1);
memcpy(buff, data, len);
fputs(buff, fp);
free(buff);
}
fflush(fp);
fclose(fp);
return 0;
}
/******************************************************************************
* Byte_Ordering
* parameter
* Return
******************************************************************************/
void Byte_Ordering(void *dest,const void *src,size_t n)
{
int i, j;
int cur_stat = 0x01020304;
unsigned char * pp = (unsigned char *)src;
unsigned char * rtn = (unsigned char *)dest;
if (n <= 0) return;
if (((unsigned char *)&cur_stat)[0] == 0x01)
{
for (i = 0, j = 0; i < (int)n; i++, j++) rtn[i] = pp[j];
}
else
{
for (i = 0, j = n-1; i < (int)n; i++, j--) rtn[i] = pp[j];
}
return;
}

@ -0,0 +1,39 @@
/**********************************************************************
// source file name : util.h
// date of preperation : 2016.03.17
// date of last update : 2016.03.17
// developer : mskim
**********************************************************************/
#ifndef __UTIL_DEFINE_H__
#define __UTIL_DEFINE_H__
#include <inttypes.h>
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <errno.h>
#include <signal.h> // SIGINT
#include <string.h> // memset
#include <sys/time.h> // gettimeofday
#include <time.h> // clock_gettime
#include <sys/types.h>
#include <malloc.h>
#ifdef __cplusplus
extern "C" {
#endif
int Cto0NdC(char *dst, char *src, int len);
int64_t S64(const char *s) ;
long Get_File_Size_Char(char* pcFile);
long Read_File_Char(char* pcDesc, char* pcFile);
int Write_File_Char(unsigned char *data, long len, char *file);
int Add_Write_File_Char(char *data, long len, char *file);
void Byte_Ordering(void *dest,const void *src,size_t n);
#ifdef __cplusplus
}
#endif
#endif

@ -0,0 +1,78 @@
ProcessMessage.o: ProcessMessage.c MessageInfo.h \
../../lib/Common/Common.h ../../lib/Common/CURLUtil.h \
../../lib/Common/Common.h ../../lib/Common/Config.h \
../../lib/Common/SecureCodingUtil.h ../../lib/Common/StringUtil.h \
../../lib/Common/Log.h ../../lib/Common/Socket.h \
../../lib/Common/DataStructure.h ../../lib/Common/SystemUtil.h \
../../lib/Common/MessageQueue.h ../../lib/Common/Socket.h \
../../lib/Common/ThreadUtil.h RestfulConverter.h \
../../lib/Common/StringUtil.h ../../lib/Common/Log.h \
../../lib/Common/MessageQueue.h ../../lib/Common/SystemUtil.h \
../../lib/Common/SecureCodingUtil.h ../../include/dir_path.h \
../../include/def_set.h ../../include/type_def.h \
../../include/snd_rcv_knd.h ../../include/taglnk_frame.h \
../../include/file_ctrl.h ../../include/ctrl_job.h \
../../include/file_no.h ../../include/tag_chrg.h \
../../include/tag_rfnd.h ../../include/hi_packet_format.h
MessageInfo.h:
../../lib/Common/Common.h:
../../lib/Common/CURLUtil.h:
../../lib/Common/Common.h:
../../lib/Common/Config.h:
../../lib/Common/SecureCodingUtil.h:
../../lib/Common/StringUtil.h:
../../lib/Common/Log.h:
../../lib/Common/Socket.h:
../../lib/Common/DataStructure.h:
../../lib/Common/SystemUtil.h:
../../lib/Common/MessageQueue.h:
../../lib/Common/Socket.h:
../../lib/Common/ThreadUtil.h:
RestfulConverter.h:
../../lib/Common/StringUtil.h:
../../lib/Common/Log.h:
../../lib/Common/MessageQueue.h:
../../lib/Common/SystemUtil.h:
../../lib/Common/SecureCodingUtil.h:
../../include/dir_path.h:
../../include/def_set.h:
../../include/type_def.h:
../../include/snd_rcv_knd.h:
../../include/taglnk_frame.h:
../../include/file_ctrl.h:
../../include/ctrl_job.h:
../../include/file_no.h:
../../include/tag_chrg.h:
../../include/tag_rfnd.h:
../../include/hi_packet_format.h:

@ -0,0 +1,50 @@
RestfulConverter.o: RestfulConverter.c RestfulConverter.h \
../../lib/Common/Common.h ../../lib/Common/StringUtil.h \
../../lib/Common/Common.h ../../lib/Common/SecureCodingUtil.h \
../../lib/Common/StringUtil.h ../../lib/Common/Log.h \
../../lib/Common/Config.h ../../lib/Common/Log.h \
../../lib/Common/MessageQueue.h ../../lib/Common/Socket.h \
../../lib/Common/DataStructure.h ../../lib/Common/SystemUtil.h \
../../lib/Common/MessageQueue.h ../../lib/Common/ThreadUtil.h \
../../lib/Common/SystemUtil.h ../../lib/Common/SecureCodingUtil.h \
MessageInfo.h ../../lib/Common/CURLUtil.h ../../lib/Common/Socket.h
RestfulConverter.h:
../../lib/Common/Common.h:
../../lib/Common/StringUtil.h:
../../lib/Common/Common.h:
../../lib/Common/SecureCodingUtil.h:
../../lib/Common/StringUtil.h:
../../lib/Common/Log.h:
../../lib/Common/Config.h:
../../lib/Common/Log.h:
../../lib/Common/MessageQueue.h:
../../lib/Common/Socket.h:
../../lib/Common/DataStructure.h:
../../lib/Common/SystemUtil.h:
../../lib/Common/MessageQueue.h:
../../lib/Common/ThreadUtil.h:
../../lib/Common/SystemUtil.h:
../../lib/Common/SecureCodingUtil.h:
MessageInfo.h:
../../lib/Common/CURLUtil.h:
../../lib/Common/Socket.h:

@ -0,0 +1,102 @@
make_basic.o: make_basic.c ../../include/bef_mst.h \
../../include/file_ctrl.h ../../include/def_set.h \
../../include/type_def.h ../../include/ctrl_job.h \
../../include/file_no.h ../../include/dir_path.h ../../include/file_no.h \
../../include/file_lb.h ../../include/ipc_def.h \
../../include/lane_stat_info.h ../../include/debug_def.h \
../../include/bas_tbl.h ../../include/file_ctrl.h \
../../include/lb_func_list.h ../../include/chg_struc.h \
../../lib/Common/Common.h ../../lib/Common/StringUtil.h \
../../lib/Common/Common.h ../../lib/Common/SecureCodingUtil.h \
../../lib/Common/StringUtil.h ../../lib/Common/Log.h \
../../lib/Common/Config.h ../../lib/Common/Log.h \
../../lib/Common/MessageQueue.h ../../lib/Common/Socket.h \
../../lib/Common/DataStructure.h ../../lib/Common/SystemUtil.h \
../../lib/Common/MessageQueue.h ../../lib/Common/ThreadUtil.h \
../../lib/Common/SystemUtil.h ../../lib/Common/SecureCodingUtil.h \
../../include/func_list.h ../../include/hi_ctrl.h \
../../include/wrk_stat.h ../../include/hi_packet_format.h \
../../include/tagbl_struc.h ../../include/taglnk_frame.h \
../../include/tag_chrg.h ../../include/tag_rfnd.h util.h
../../include/bef_mst.h:
../../include/file_ctrl.h:
../../include/def_set.h:
../../include/type_def.h:
../../include/ctrl_job.h:
../../include/file_no.h:
../../include/dir_path.h:
../../include/file_no.h:
../../include/file_lb.h:
../../include/ipc_def.h:
../../include/lane_stat_info.h:
../../include/debug_def.h:
../../include/bas_tbl.h:
../../include/file_ctrl.h:
../../include/lb_func_list.h:
../../include/chg_struc.h:
../../lib/Common/Common.h:
../../lib/Common/StringUtil.h:
../../lib/Common/Common.h:
../../lib/Common/SecureCodingUtil.h:
../../lib/Common/StringUtil.h:
../../lib/Common/Log.h:
../../lib/Common/Config.h:
../../lib/Common/Log.h:
../../lib/Common/MessageQueue.h:
../../lib/Common/Socket.h:
../../lib/Common/DataStructure.h:
../../lib/Common/SystemUtil.h:
../../lib/Common/MessageQueue.h:
../../lib/Common/ThreadUtil.h:
../../lib/Common/SystemUtil.h:
../../lib/Common/SecureCodingUtil.h:
../../include/func_list.h:
../../include/hi_ctrl.h:
../../include/wrk_stat.h:
../../include/hi_packet_format.h:
../../include/tagbl_struc.h:
../../include/taglnk_frame.h:
../../include/tag_chrg.h:
../../include/tag_rfnd.h:
util.h:

@ -0,0 +1,102 @@
make_befchg.o: make_befchg.c ../../include/bef_chg.h \
../../include/file_ctrl.h ../../include/def_set.h \
../../include/type_def.h ../../include/ctrl_job.h \
../../include/file_no.h ../../include/dir_path.h ../../include/file_no.h \
../../include/file_lb.h ../../include/ipc_def.h \
../../include/lane_stat_info.h ../../include/debug_def.h \
../../include/bas_tbl.h ../../include/file_ctrl.h \
../../include/lb_func_list.h ../../include/chg_struc.h \
../../lib/Common/Common.h ../../lib/Common/StringUtil.h \
../../lib/Common/Common.h ../../lib/Common/SecureCodingUtil.h \
../../lib/Common/StringUtil.h ../../lib/Common/Log.h \
../../lib/Common/Config.h ../../lib/Common/Log.h \
../../lib/Common/MessageQueue.h ../../lib/Common/Socket.h \
../../lib/Common/DataStructure.h ../../lib/Common/SystemUtil.h \
../../lib/Common/MessageQueue.h ../../lib/Common/ThreadUtil.h \
../../lib/Common/SystemUtil.h ../../lib/Common/SecureCodingUtil.h \
../../include/func_list.h ../../include/hi_ctrl.h \
../../include/wrk_stat.h ../../include/hi_packet_format.h \
../../include/tagbl_struc.h ../../include/taglnk_frame.h \
../../include/tag_chrg.h ../../include/tag_rfnd.h util.h
../../include/bef_chg.h:
../../include/file_ctrl.h:
../../include/def_set.h:
../../include/type_def.h:
../../include/ctrl_job.h:
../../include/file_no.h:
../../include/dir_path.h:
../../include/file_no.h:
../../include/file_lb.h:
../../include/ipc_def.h:
../../include/lane_stat_info.h:
../../include/debug_def.h:
../../include/bas_tbl.h:
../../include/file_ctrl.h:
../../include/lb_func_list.h:
../../include/chg_struc.h:
../../lib/Common/Common.h:
../../lib/Common/StringUtil.h:
../../lib/Common/Common.h:
../../lib/Common/SecureCodingUtil.h:
../../lib/Common/StringUtil.h:
../../lib/Common/Log.h:
../../lib/Common/Config.h:
../../lib/Common/Log.h:
../../lib/Common/MessageQueue.h:
../../lib/Common/Socket.h:
../../lib/Common/DataStructure.h:
../../lib/Common/SystemUtil.h:
../../lib/Common/MessageQueue.h:
../../lib/Common/ThreadUtil.h:
../../lib/Common/SystemUtil.h:
../../lib/Common/SecureCodingUtil.h:
../../include/func_list.h:
../../include/hi_ctrl.h:
../../include/wrk_stat.h:
../../include/hi_packet_format.h:
../../include/tagbl_struc.h:
../../include/taglnk_frame.h:
../../include/tag_chrg.h:
../../include/tag_rfnd.h:
util.h:

@ -0,0 +1,102 @@
make_befmst.o: make_befmst.c ../../include/bef_mst.h \
../../include/file_ctrl.h ../../include/def_set.h \
../../include/type_def.h ../../include/ctrl_job.h \
../../include/file_no.h ../../include/dir_path.h ../../include/file_no.h \
../../include/file_lb.h ../../include/ipc_def.h \
../../include/lane_stat_info.h ../../include/debug_def.h \
../../include/bas_tbl.h ../../include/file_ctrl.h \
../../include/lb_func_list.h ../../include/chg_struc.h \
../../lib/Common/Common.h ../../lib/Common/StringUtil.h \
../../lib/Common/Common.h ../../lib/Common/SecureCodingUtil.h \
../../lib/Common/StringUtil.h ../../lib/Common/Log.h \
../../lib/Common/Config.h ../../lib/Common/Log.h \
../../lib/Common/MessageQueue.h ../../lib/Common/Socket.h \
../../lib/Common/DataStructure.h ../../lib/Common/SystemUtil.h \
../../lib/Common/MessageQueue.h ../../lib/Common/ThreadUtil.h \
../../lib/Common/SystemUtil.h ../../lib/Common/SecureCodingUtil.h \
../../include/func_list.h ../../include/hi_ctrl.h \
../../include/wrk_stat.h ../../include/hi_packet_format.h \
../../include/tagbl_struc.h ../../include/taglnk_frame.h \
../../include/tag_chrg.h ../../include/tag_rfnd.h util.h
../../include/bef_mst.h:
../../include/file_ctrl.h:
../../include/def_set.h:
../../include/type_def.h:
../../include/ctrl_job.h:
../../include/file_no.h:
../../include/dir_path.h:
../../include/file_no.h:
../../include/file_lb.h:
../../include/ipc_def.h:
../../include/lane_stat_info.h:
../../include/debug_def.h:
../../include/bas_tbl.h:
../../include/file_ctrl.h:
../../include/lb_func_list.h:
../../include/chg_struc.h:
../../lib/Common/Common.h:
../../lib/Common/StringUtil.h:
../../lib/Common/Common.h:
../../lib/Common/SecureCodingUtil.h:
../../lib/Common/StringUtil.h:
../../lib/Common/Log.h:
../../lib/Common/Config.h:
../../lib/Common/Log.h:
../../lib/Common/MessageQueue.h:
../../lib/Common/Socket.h:
../../lib/Common/DataStructure.h:
../../lib/Common/SystemUtil.h:
../../lib/Common/MessageQueue.h:
../../lib/Common/ThreadUtil.h:
../../lib/Common/SystemUtil.h:
../../lib/Common/SecureCodingUtil.h:
../../include/func_list.h:
../../include/hi_ctrl.h:
../../include/wrk_stat.h:
../../include/hi_packet_format.h:
../../include/tagbl_struc.h:
../../include/taglnk_frame.h:
../../include/tag_chrg.h:
../../include/tag_rfnd.h:
util.h:

@ -0,0 +1,102 @@
make_exemptchg.o: make_exemptchg.c ../../include/bef_chg.h \
../../include/file_ctrl.h ../../include/def_set.h \
../../include/type_def.h ../../include/ctrl_job.h \
../../include/file_no.h ../../include/dir_path.h ../../include/file_no.h \
../../include/file_lb.h ../../include/ipc_def.h \
../../include/lane_stat_info.h ../../include/debug_def.h \
../../include/bas_tbl.h ../../include/file_ctrl.h \
../../include/lb_func_list.h ../../include/chg_struc.h \
../../lib/Common/Common.h ../../lib/Common/StringUtil.h \
../../lib/Common/Common.h ../../lib/Common/SecureCodingUtil.h \
../../lib/Common/StringUtil.h ../../lib/Common/Log.h \
../../lib/Common/Config.h ../../lib/Common/Log.h \
../../lib/Common/MessageQueue.h ../../lib/Common/Socket.h \
../../lib/Common/DataStructure.h ../../lib/Common/SystemUtil.h \
../../lib/Common/MessageQueue.h ../../lib/Common/ThreadUtil.h \
../../lib/Common/SystemUtil.h ../../lib/Common/SecureCodingUtil.h \
../../include/func_list.h ../../include/hi_ctrl.h \
../../include/wrk_stat.h ../../include/hi_packet_format.h \
../../include/tagbl_struc.h ../../include/taglnk_frame.h \
../../include/tag_chrg.h ../../include/tag_rfnd.h util.h
../../include/bef_chg.h:
../../include/file_ctrl.h:
../../include/def_set.h:
../../include/type_def.h:
../../include/ctrl_job.h:
../../include/file_no.h:
../../include/dir_path.h:
../../include/file_no.h:
../../include/file_lb.h:
../../include/ipc_def.h:
../../include/lane_stat_info.h:
../../include/debug_def.h:
../../include/bas_tbl.h:
../../include/file_ctrl.h:
../../include/lb_func_list.h:
../../include/chg_struc.h:
../../lib/Common/Common.h:
../../lib/Common/StringUtil.h:
../../lib/Common/Common.h:
../../lib/Common/SecureCodingUtil.h:
../../lib/Common/StringUtil.h:
../../lib/Common/Log.h:
../../lib/Common/Config.h:
../../lib/Common/Log.h:
../../lib/Common/MessageQueue.h:
../../lib/Common/Socket.h:
../../lib/Common/DataStructure.h:
../../lib/Common/SystemUtil.h:
../../lib/Common/MessageQueue.h:
../../lib/Common/ThreadUtil.h:
../../lib/Common/SystemUtil.h:
../../lib/Common/SecureCodingUtil.h:
../../include/func_list.h:
../../include/hi_ctrl.h:
../../include/wrk_stat.h:
../../include/hi_packet_format.h:
../../include/tagbl_struc.h:
../../include/taglnk_frame.h:
../../include/tag_chrg.h:
../../include/tag_rfnd.h:
util.h:

@ -0,0 +1,102 @@
make_exemptmst.o: make_exemptmst.c ../../include/bef_mst.h \
../../include/file_ctrl.h ../../include/def_set.h \
../../include/type_def.h ../../include/ctrl_job.h \
../../include/file_no.h ../../include/dir_path.h ../../include/file_no.h \
../../include/file_lb.h ../../include/ipc_def.h \
../../include/lane_stat_info.h ../../include/debug_def.h \
../../include/bas_tbl.h ../../include/file_ctrl.h \
../../include/lb_func_list.h ../../include/chg_struc.h \
../../lib/Common/Common.h ../../lib/Common/StringUtil.h \
../../lib/Common/Common.h ../../lib/Common/SecureCodingUtil.h \
../../lib/Common/StringUtil.h ../../lib/Common/Log.h \
../../lib/Common/Config.h ../../lib/Common/Log.h \
../../lib/Common/MessageQueue.h ../../lib/Common/Socket.h \
../../lib/Common/DataStructure.h ../../lib/Common/SystemUtil.h \
../../lib/Common/MessageQueue.h ../../lib/Common/ThreadUtil.h \
../../lib/Common/SystemUtil.h ../../lib/Common/SecureCodingUtil.h \
../../include/func_list.h ../../include/hi_ctrl.h \
../../include/wrk_stat.h ../../include/hi_packet_format.h \
../../include/tagbl_struc.h ../../include/taglnk_frame.h \
../../include/tag_chrg.h ../../include/tag_rfnd.h util.h
../../include/bef_mst.h:
../../include/file_ctrl.h:
../../include/def_set.h:
../../include/type_def.h:
../../include/ctrl_job.h:
../../include/file_no.h:
../../include/dir_path.h:
../../include/file_no.h:
../../include/file_lb.h:
../../include/ipc_def.h:
../../include/lane_stat_info.h:
../../include/debug_def.h:
../../include/bas_tbl.h:
../../include/file_ctrl.h:
../../include/lb_func_list.h:
../../include/chg_struc.h:
../../lib/Common/Common.h:
../../lib/Common/StringUtil.h:
../../lib/Common/Common.h:
../../lib/Common/SecureCodingUtil.h:
../../lib/Common/StringUtil.h:
../../lib/Common/Log.h:
../../lib/Common/Config.h:
../../lib/Common/Log.h:
../../lib/Common/MessageQueue.h:
../../lib/Common/Socket.h:
../../lib/Common/DataStructure.h:
../../lib/Common/SystemUtil.h:
../../lib/Common/MessageQueue.h:
../../lib/Common/ThreadUtil.h:
../../lib/Common/SystemUtil.h:
../../lib/Common/SecureCodingUtil.h:
../../include/func_list.h:
../../include/hi_ctrl.h:
../../include/wrk_stat.h:
../../include/hi_packet_format.h:
../../include/tagbl_struc.h:
../../include/taglnk_frame.h:
../../include/tag_chrg.h:
../../include/tag_rfnd.h:
util.h:

@ -0,0 +1,102 @@
make_redchg.o: make_redchg.c ../../include/bef_chg.h \
../../include/file_ctrl.h ../../include/def_set.h \
../../include/type_def.h ../../include/ctrl_job.h \
../../include/file_no.h ../../include/dir_path.h ../../include/file_no.h \
../../include/file_lb.h ../../include/ipc_def.h \
../../include/lane_stat_info.h ../../include/debug_def.h \
../../include/bas_tbl.h ../../include/file_ctrl.h \
../../include/lb_func_list.h ../../include/chg_struc.h \
../../lib/Common/Common.h ../../lib/Common/StringUtil.h \
../../lib/Common/Common.h ../../lib/Common/SecureCodingUtil.h \
../../lib/Common/StringUtil.h ../../lib/Common/Log.h \
../../lib/Common/Config.h ../../lib/Common/Log.h \
../../lib/Common/MessageQueue.h ../../lib/Common/Socket.h \
../../lib/Common/DataStructure.h ../../lib/Common/SystemUtil.h \
../../lib/Common/MessageQueue.h ../../lib/Common/ThreadUtil.h \
../../lib/Common/SystemUtil.h ../../lib/Common/SecureCodingUtil.h \
../../include/func_list.h ../../include/hi_ctrl.h \
../../include/wrk_stat.h ../../include/hi_packet_format.h \
../../include/tagbl_struc.h ../../include/taglnk_frame.h \
../../include/tag_chrg.h ../../include/tag_rfnd.h util.h
../../include/bef_chg.h:
../../include/file_ctrl.h:
../../include/def_set.h:
../../include/type_def.h:
../../include/ctrl_job.h:
../../include/file_no.h:
../../include/dir_path.h:
../../include/file_no.h:
../../include/file_lb.h:
../../include/ipc_def.h:
../../include/lane_stat_info.h:
../../include/debug_def.h:
../../include/bas_tbl.h:
../../include/file_ctrl.h:
../../include/lb_func_list.h:
../../include/chg_struc.h:
../../lib/Common/Common.h:
../../lib/Common/StringUtil.h:
../../lib/Common/Common.h:
../../lib/Common/SecureCodingUtil.h:
../../lib/Common/StringUtil.h:
../../lib/Common/Log.h:
../../lib/Common/Config.h:
../../lib/Common/Log.h:
../../lib/Common/MessageQueue.h:
../../lib/Common/Socket.h:
../../lib/Common/DataStructure.h:
../../lib/Common/SystemUtil.h:
../../lib/Common/MessageQueue.h:
../../lib/Common/ThreadUtil.h:
../../lib/Common/SystemUtil.h:
../../lib/Common/SecureCodingUtil.h:
../../include/func_list.h:
../../include/hi_ctrl.h:
../../include/wrk_stat.h:
../../include/hi_packet_format.h:
../../include/tagbl_struc.h:
../../include/taglnk_frame.h:
../../include/tag_chrg.h:
../../include/tag_rfnd.h:
util.h:

@ -0,0 +1,102 @@
make_redmst.o: make_redmst.c ../../include/bef_mst.h \
../../include/file_ctrl.h ../../include/def_set.h \
../../include/type_def.h ../../include/ctrl_job.h \
../../include/file_no.h ../../include/dir_path.h ../../include/file_no.h \
../../include/file_lb.h ../../include/ipc_def.h \
../../include/lane_stat_info.h ../../include/debug_def.h \
../../include/bas_tbl.h ../../include/file_ctrl.h \
../../include/lb_func_list.h ../../include/chg_struc.h \
../../lib/Common/Common.h ../../lib/Common/StringUtil.h \
../../lib/Common/Common.h ../../lib/Common/SecureCodingUtil.h \
../../lib/Common/StringUtil.h ../../lib/Common/Log.h \
../../lib/Common/Config.h ../../lib/Common/Log.h \
../../lib/Common/MessageQueue.h ../../lib/Common/Socket.h \
../../lib/Common/DataStructure.h ../../lib/Common/SystemUtil.h \
../../lib/Common/MessageQueue.h ../../lib/Common/ThreadUtil.h \
../../lib/Common/SystemUtil.h ../../lib/Common/SecureCodingUtil.h \
../../include/func_list.h ../../include/hi_ctrl.h \
../../include/wrk_stat.h ../../include/hi_packet_format.h \
../../include/tagbl_struc.h ../../include/taglnk_frame.h \
../../include/tag_chrg.h ../../include/tag_rfnd.h util.h
../../include/bef_mst.h:
../../include/file_ctrl.h:
../../include/def_set.h:
../../include/type_def.h:
../../include/ctrl_job.h:
../../include/file_no.h:
../../include/dir_path.h:
../../include/file_no.h:
../../include/file_lb.h:
../../include/ipc_def.h:
../../include/lane_stat_info.h:
../../include/debug_def.h:
../../include/bas_tbl.h:
../../include/file_ctrl.h:
../../include/lb_func_list.h:
../../include/chg_struc.h:
../../lib/Common/Common.h:
../../lib/Common/StringUtil.h:
../../lib/Common/Common.h:
../../lib/Common/SecureCodingUtil.h:
../../lib/Common/StringUtil.h:
../../lib/Common/Log.h:
../../lib/Common/Config.h:
../../lib/Common/Log.h:
../../lib/Common/MessageQueue.h:
../../lib/Common/Socket.h:
../../lib/Common/DataStructure.h:
../../lib/Common/SystemUtil.h:
../../lib/Common/MessageQueue.h:
../../lib/Common/ThreadUtil.h:
../../lib/Common/SystemUtil.h:
../../lib/Common/SecureCodingUtil.h:
../../include/func_list.h:
../../include/hi_ctrl.h:
../../include/wrk_stat.h:
../../include/hi_packet_format.h:
../../include/tagbl_struc.h:
../../include/taglnk_frame.h:
../../include/tag_chrg.h:
../../include/tag_rfnd.h:
util.h:

@ -0,0 +1,102 @@
make_rfidchg.o: make_rfidchg.c ../../include/bef_chg.h \
../../include/file_ctrl.h ../../include/def_set.h \
../../include/type_def.h ../../include/ctrl_job.h \
../../include/file_no.h ../../include/dir_path.h ../../include/file_no.h \
../../include/file_lb.h ../../include/ipc_def.h \
../../include/lane_stat_info.h ../../include/debug_def.h \
../../include/bas_tbl.h ../../include/file_ctrl.h \
../../include/lb_func_list.h ../../include/chg_struc.h \
../../lib/Common/Common.h ../../lib/Common/StringUtil.h \
../../lib/Common/Common.h ../../lib/Common/SecureCodingUtil.h \
../../lib/Common/StringUtil.h ../../lib/Common/Log.h \
../../lib/Common/Config.h ../../lib/Common/Log.h \
../../lib/Common/MessageQueue.h ../../lib/Common/Socket.h \
../../lib/Common/DataStructure.h ../../lib/Common/SystemUtil.h \
../../lib/Common/MessageQueue.h ../../lib/Common/ThreadUtil.h \
../../lib/Common/SystemUtil.h ../../lib/Common/SecureCodingUtil.h \
../../include/func_list.h ../../include/hi_ctrl.h \
../../include/wrk_stat.h ../../include/hi_packet_format.h \
../../include/tagbl_struc.h ../../include/taglnk_frame.h \
../../include/tag_chrg.h ../../include/tag_rfnd.h util.h
../../include/bef_chg.h:
../../include/file_ctrl.h:
../../include/def_set.h:
../../include/type_def.h:
../../include/ctrl_job.h:
../../include/file_no.h:
../../include/dir_path.h:
../../include/file_no.h:
../../include/file_lb.h:
../../include/ipc_def.h:
../../include/lane_stat_info.h:
../../include/debug_def.h:
../../include/bas_tbl.h:
../../include/file_ctrl.h:
../../include/lb_func_list.h:
../../include/chg_struc.h:
../../lib/Common/Common.h:
../../lib/Common/StringUtil.h:
../../lib/Common/Common.h:
../../lib/Common/SecureCodingUtil.h:
../../lib/Common/StringUtil.h:
../../lib/Common/Log.h:
../../lib/Common/Config.h:
../../lib/Common/Log.h:
../../lib/Common/MessageQueue.h:
../../lib/Common/Socket.h:
../../lib/Common/DataStructure.h:
../../lib/Common/SystemUtil.h:
../../lib/Common/MessageQueue.h:
../../lib/Common/ThreadUtil.h:
../../lib/Common/SystemUtil.h:
../../lib/Common/SecureCodingUtil.h:
../../include/func_list.h:
../../include/hi_ctrl.h:
../../include/wrk_stat.h:
../../include/hi_packet_format.h:
../../include/tagbl_struc.h:
../../include/taglnk_frame.h:
../../include/tag_chrg.h:
../../include/tag_rfnd.h:
util.h:

@ -0,0 +1,102 @@
make_rfidmst.o: make_rfidmst.c ../../include/bef_mst.h \
../../include/file_ctrl.h ../../include/def_set.h \
../../include/type_def.h ../../include/ctrl_job.h \
../../include/file_no.h ../../include/dir_path.h ../../include/file_no.h \
../../include/file_lb.h ../../include/ipc_def.h \
../../include/lane_stat_info.h ../../include/debug_def.h \
../../include/bas_tbl.h ../../include/file_ctrl.h \
../../include/lb_func_list.h ../../include/chg_struc.h \
../../lib/Common/Common.h ../../lib/Common/StringUtil.h \
../../lib/Common/Common.h ../../lib/Common/SecureCodingUtil.h \
../../lib/Common/StringUtil.h ../../lib/Common/Log.h \
../../lib/Common/Config.h ../../lib/Common/Log.h \
../../lib/Common/MessageQueue.h ../../lib/Common/Socket.h \
../../lib/Common/DataStructure.h ../../lib/Common/SystemUtil.h \
../../lib/Common/MessageQueue.h ../../lib/Common/ThreadUtil.h \
../../lib/Common/SystemUtil.h ../../lib/Common/SecureCodingUtil.h \
../../include/func_list.h ../../include/hi_ctrl.h \
../../include/wrk_stat.h ../../include/hi_packet_format.h \
../../include/tagbl_struc.h ../../include/taglnk_frame.h \
../../include/tag_chrg.h ../../include/tag_rfnd.h util.h
../../include/bef_mst.h:
../../include/file_ctrl.h:
../../include/def_set.h:
../../include/type_def.h:
../../include/ctrl_job.h:
../../include/file_no.h:
../../include/dir_path.h:
../../include/file_no.h:
../../include/file_lb.h:
../../include/ipc_def.h:
../../include/lane_stat_info.h:
../../include/debug_def.h:
../../include/bas_tbl.h:
../../include/file_ctrl.h:
../../include/lb_func_list.h:
../../include/chg_struc.h:
../../lib/Common/Common.h:
../../lib/Common/StringUtil.h:
../../lib/Common/Common.h:
../../lib/Common/SecureCodingUtil.h:
../../lib/Common/StringUtil.h:
../../lib/Common/Log.h:
../../lib/Common/Config.h:
../../lib/Common/Log.h:
../../lib/Common/MessageQueue.h:
../../lib/Common/Socket.h:
../../lib/Common/DataStructure.h:
../../lib/Common/SystemUtil.h:
../../lib/Common/MessageQueue.h:
../../lib/Common/ThreadUtil.h:
../../lib/Common/SystemUtil.h:
../../lib/Common/SecureCodingUtil.h:
../../include/func_list.h:
../../include/hi_ctrl.h:
../../include/wrk_stat.h:
../../include/hi_packet_format.h:
../../include/tagbl_struc.h:
../../include/taglnk_frame.h:
../../include/tag_chrg.h:
../../include/tag_rfnd.h:
util.h:

@ -0,0 +1,102 @@
make_worker.o: make_worker.c ../../include/wrkr_info.h \
../../include/file_ctrl.h ../../include/def_set.h \
../../include/type_def.h ../../include/ctrl_job.h \
../../include/file_no.h ../../include/dir_path.h ../../include/file_no.h \
../../include/file_lb.h ../../include/ipc_def.h \
../../include/lane_stat_info.h ../../include/file_ctrl.h \
../../include/debug_def.h ../../include/bas_tbl.h \
../../include/lb_func_list.h ../../include/chg_struc.h \
../../lib/Common/Common.h ../../lib/Common/StringUtil.h \
../../lib/Common/Common.h ../../lib/Common/SecureCodingUtil.h \
../../lib/Common/StringUtil.h ../../lib/Common/Log.h \
../../lib/Common/Config.h ../../lib/Common/Log.h \
../../lib/Common/MessageQueue.h ../../lib/Common/Socket.h \
../../lib/Common/DataStructure.h ../../lib/Common/SystemUtil.h \
../../lib/Common/MessageQueue.h ../../lib/Common/ThreadUtil.h \
../../lib/Common/SystemUtil.h ../../lib/Common/SecureCodingUtil.h \
../../include/func_list.h ../../include/hi_ctrl.h \
../../include/wrk_stat.h ../../include/hi_packet_format.h \
../../include/tagbl_struc.h ../../include/taglnk_frame.h \
../../include/tag_chrg.h ../../include/tag_rfnd.h util.h
../../include/wrkr_info.h:
../../include/file_ctrl.h:
../../include/def_set.h:
../../include/type_def.h:
../../include/ctrl_job.h:
../../include/file_no.h:
../../include/dir_path.h:
../../include/file_no.h:
../../include/file_lb.h:
../../include/ipc_def.h:
../../include/lane_stat_info.h:
../../include/file_ctrl.h:
../../include/debug_def.h:
../../include/bas_tbl.h:
../../include/lb_func_list.h:
../../include/chg_struc.h:
../../lib/Common/Common.h:
../../lib/Common/StringUtil.h:
../../lib/Common/Common.h:
../../lib/Common/SecureCodingUtil.h:
../../lib/Common/StringUtil.h:
../../lib/Common/Log.h:
../../lib/Common/Config.h:
../../lib/Common/Log.h:
../../lib/Common/MessageQueue.h:
../../lib/Common/Socket.h:
../../lib/Common/DataStructure.h:
../../lib/Common/SystemUtil.h:
../../lib/Common/MessageQueue.h:
../../lib/Common/ThreadUtil.h:
../../lib/Common/SystemUtil.h:
../../lib/Common/SecureCodingUtil.h:
../../include/func_list.h:
../../include/hi_ctrl.h:
../../include/wrk_stat.h:
../../include/hi_packet_format.h:
../../include/tagbl_struc.h:
../../include/taglnk_frame.h:
../../include/tag_chrg.h:
../../include/tag_rfnd.h:
util.h:

@ -0,0 +1,52 @@
util.o: util.c util.h MessageInfo.h ../../lib/Common/Common.h \
../../lib/Common/CURLUtil.h ../../lib/Common/Common.h \
../../lib/Common/Config.h ../../lib/Common/SecureCodingUtil.h \
../../lib/Common/StringUtil.h ../../lib/Common/Log.h \
../../lib/Common/Socket.h ../../lib/Common/DataStructure.h \
../../lib/Common/SystemUtil.h ../../lib/Common/MessageQueue.h \
../../lib/Common/Socket.h ../../lib/Common/ThreadUtil.h \
RestfulConverter.h ../../lib/Common/StringUtil.h ../../lib/Common/Log.h \
../../lib/Common/MessageQueue.h ../../lib/Common/SystemUtil.h \
../../lib/Common/SecureCodingUtil.h
util.h:
MessageInfo.h:
../../lib/Common/Common.h:
../../lib/Common/CURLUtil.h:
../../lib/Common/Common.h:
../../lib/Common/Config.h:
../../lib/Common/SecureCodingUtil.h:
../../lib/Common/StringUtil.h:
../../lib/Common/Log.h:
../../lib/Common/Socket.h:
../../lib/Common/DataStructure.h:
../../lib/Common/SystemUtil.h:
../../lib/Common/MessageQueue.h:
../../lib/Common/Socket.h:
../../lib/Common/ThreadUtil.h:
RestfulConverter.h:
../../lib/Common/StringUtil.h:
../../lib/Common/Log.h:
../../lib/Common/MessageQueue.h:
../../lib/Common/SystemUtil.h:
../../lib/Common/SecureCodingUtil.h:

@ -0,0 +1,196 @@
COMMON_DIR = ../../lib/Common
USERINC = ../../include
#---------------------------------------------------------------------------
# 라이브러리 옵션
#---------------------------------------------------------------------------
ifeq ($(OS),Windows_NT)
SYS_LIBS = -L"C:\mingw-w64\x86_64-8.1.0-posix-seh-rt_v6-rev0\mingw64\lib" -L"C:\Program Files (x86)\rabbitmq-c\lib" -L"C:\mingw-w64\x86_64-8.1.0-posix-seh-rt_v6-rev0\mingw64\x86_64-w64-mingw32\lib"
#LINK_LIB = $(SYS_LIBS) "C:\Program Files (x86)\rabbitmq-c\lib\librabbitmq.4.dll.a" -lrpcrt4 -lws2_32 -lrabbitmq4
LINK_LIB = $(SYS_LIBS) -lrpcrt4 -lws2_32 "C:\Program Files (x86)\rabbitmq-c\lib\librabbitmq.4.dll.a"
else
#ORACLE_HOME=/oracle/app/oracle/product/11.2.0/dbhome_1
SYS_LIBS = -L/usr/lib64
#OPEN_LIBS = -lsafec-3.3 -lrabbitmq -luuid
OPEN_LIBS = -lrabbitmq -luuid -lm -lcurl
#ORACLE_LIB_PATH = $(ORACLE_HOME)/lib
#ORACLE_LIBS = `cat $(ORACLE_HOME)/lib/sysliblist` -lclntsh
#$(info ORACLE_LIBS=$(ORACLE_LIBS))
#LINK_LIB = $(SYS_LIBS) $(ORACLE_LIBS) $(OPEN_LIBS)
QUESLIB = $(HOME)/GREEN_LANE/src/modules/libmsq.a
USERLIB = $(HOME)/GREEN_LANE/src/modules/libtcs.a
LINK_LIB = $(SYS_LIBS) $(OPEN_LIBS) $(QUESLIB) $(USERLIB)
#LDFLAGS = -Xlinker -L$(COMMON_DIR) -lFireAntCommon
LDFLAGS = -Xlinker -L$(COMMON_DIR) -L/app/tcs/librab/build/librabbitmq
endif
#---------------------------------------------------------------------------
# 컴파일 옵션
#---------------------------------------------------------------------------
DEPDIR := .d
ifeq ($(OS),Windows_NT)
$(shell IF NOT EXIST $(DEPDIR) mkdir $(DEPDIR))
OBJEXT = obj
OUTPUTEXT = .exe
else
$(shell mkdir -p $(DEPDIR) >/dev/null)
OBJEXT = o
OUTPUTEXT =
endif
#CFLAGS = -std=gnu99 -I$(COMMON_DIR) -I/usr/include -I/usr/local/include/safec-3.3 -I/usr/local/lib/safec-3.3/include -DDEBUG -D_DEBUG -pthread
CFLAGS = -std=gnu99 -I$(COMMON_DIR) -I$(USERINC)
DEBUG_CFLAGS = -g -Wall
PROCFLAGS =
CC = gcc
ifeq ($(OS),Windows_NT)
DEBUG_CFLAGS +=
CFLAGS += -I"C:\mingw-w64\x86_64-8.1.0-posix-seh-rt_v6-rev0\mingw64\include" -I"C:\Program Files (x86)\rabbitmq-c\include" -pthread
LDFLAGS += -L"C:\mingw-w64\x86_64-8.1.0-posix-seh-rt_v6-rev0\mingw64\lib" -L"C:\Program Files (x86)\rabbitmq-c\lib" -pthread
POSTCOMPILE = (IF EXIST $(DEPDIR)\$*.d del $(DEPDIR)\$*.d) && rename $(DEPDIR)\$*.Td $*.d
else
DEBUG_CFLAGS += -rdynamic
CFLAGS += -I/usr/include -I/usr/local/include/safec-3.3 -I/usr/local/lib/safec-3.3/include -DDEBUG -D_DEBUG -pthread
LDFLAGS += -L/usr/lib64 -L/usr/loca/lib -L/usr/local/lib64 -pthread
POSTCOMPILE = @mv -f $(DEPDIR)/$*.Td $(DEPDIR)/$*.d && touch $@
RELEASE_ID=$(shell cat /etc/*-release | grep -w ID | awk -F= '{print $$2}' | sed 's/"//g')
ifeq ($(RELEASE_ID),alpine)
#CFLAGS += -I/usr/lib/bcc/include/asm -I/usr/lib/bcc/include
LDFLAGS += -lexecinfo
endif
endif
DEPFLAGS = -MT $@ -MMD -MP -MF $(DEPDIR)/$*.Td
COMPILE.c = $(CC) $(DEPFLAGS) $(DEBUG_CFLAGS) $(CFLAGS) $(CPPFLAGS) $(TARGET_ARCH) -c
COMPILE.cc = $(CXX) $(DEPFLAGS) $(DEBUG_CFLAGS) $(CXXFLAGS) $(CPPFLAGS) $(TARGET_ARCH) -c
#POSTCOMPILE = @mv -f $(DEPDIR)/$*.Td $(DEPDIR)/$*.d && touch $@
#DEP_FILES = $(wildcard $(patsubst %,$(DEPDIR)/%.d,$(basename $(SRCS))))
#$(info DEP_FILES:$(DEP_FILES))
#---------------------------------------------------------------------------
# 파일 설정
#---------------------------------------------------------------------------
# 참고사항 : 변수 정의시 =을 사용하면 즉시 값이 결정되는 것이 아니고 사용될 시 값이 결정된다.
# 즉 OBJ FILES의 경우 =을 이용하면 pc파일에 대한 오브젝트 파일과 c파일에 대한 오브젝트
# 파일이 호출시 결정되어 2개가 변수에 포함된다.
PC_SRC_FILES = $(wildcard *.pc)
PC2C_FILES = $(PC_SRC_FILES:.pc=.c)
#$(info PC2C_FILES:$(PC2C_FILES))
$(shell rm -rf $(PC2C_FILES))
C_SRC_FILES = $(wildcard *.c)
OBJ_FILES := $(C_SRC_FILES:.c=.$(OBJEXT)) $(PC_SRC_FILES:.pc=.$(OBJEXT))
# $(patsubst %.c,%.$(OBJEXT),$(C_SRC_FILES))
# @echo 명령은 실행 블럭에서만 실행되므로 변수 영역에서는 info를 이용한다.
#$(info C_SRC_FILES:$(C_SRC_FILES))
#$(info OBJ_FILES:$(OBJ_FILES))
#---------------------------------------------------------------------------
# 확장자 처리
#---------------------------------------------------------------------------
#기존처리방식
#.SUFFIXES : .pc .c .o
#
#.c.o :
# $(CC) $(CFLAGS) -c $(DFLAGS) $<
#
#.pc.o :
# $(PROC) iname=$*.pc $(PROCFLAGS) $(PROCINC)
# $(CC) $(CFLAGS) -c $*.c
# mv $*.c $(CTEMPD)
#.SUFFIXES : .pc .c .o
#Auto Dependency 생성을 위한 신규 규칙
%.$(OBJEXT):%.pc
%.$(OBJEXT):%.pc $(DEPDIR)/%.d
$(PROC) iname=$*.pc $(PROCFLAGS) $(PROCINC)
$(COMPILE.c) $(OUTPUT_OPTION) $<
$(POSTCOMPILE)
%.$(OBJEXT):%.c
%.$(OBJEXT):%.c $(DEPDIR)/%.d
$(COMPILE.c) $(OUTPUT_OPTION) $<
$(POSTCOMPILE)
%.$(OBJEXT):%.cc
%.$(OBJEXT):%.cc $(DEPDIR)/%.d
$(COMPILE.cc) $(OUTPUT_OPTION) $<
$(POSTCOMPILE)
%.$(OBJEXT):%.cxx
%.$(OBJEXT):%.cxx $(DEPDIR)/%.d
$(COMPILE.cc) $(OUTPUT_OPTION) $<
$(POSTCOMPILE)
$(DEPDIR)/%.d: ;
.PRECIOUS: $(DEPDIR)/%.d
#---------------------------------------------------------------------------
# 컴파일과 make 아웃풋 설정
#---------------------------------------------------------------------------
define del-pc2cfile
del $(1)
endef
COMMON_OBJS = $(wildcard ../../Common/*.$(OBJEXT))
RESTFULCONVERTER_OBJ_FILES = RestfulConverter.$(OBJEXT) ProcessMessage.$(OBJEXT) util.$(OBJEXT) make_befchg.$(OBJEXT) make_befmst.$(OBJEXT) make_exemptchg.$(OBJEXT) make_exemptmst.$(OBJEXT) \
make_redchg.$(OBJEXT) make_redmst.$(OBJEXT) make_rfidchg.$(OBJEXT) make_rfidmst.$(OBJEXT) make_basic.$(OBJEXT) make_worker.$(OBJEXT)
#CLEARINGGW_OBJ_FILES = ClearingGW.o \
# $(COMMON_DIR)/Config.o \
# $(COMMON_DIR)/Log.o \
# $(COMMON_DIR)/MessageQueue.o \
# $(COMMON_DIR)/Socket.o \
# $(COMMON_DIR)/StringUtil.o \
# $(COMMON_DIR)/SystemUtil.o \
# $(COMMON_DIR)/DataStructure.o
re: clean compile install
all: compile install
#compile: $(RESTFULCONVERTER_OBJ_FILES) $(COMMON_DIR)/libFireAntCommon.so
# gcc -o RestfulConverter$(OUTPUTEXT) $(RESTFULCONVERTER_OBJ_FILES) $(LDFLAGS) $(LINK_LIB) $(DEBUG_CFLAGS)
compile: $(RESTFULCONVERTER_OBJ_FILES)
gcc -o RestfulTest$(OUTPUTEXT) $(RESTFULCONVERTER_OBJ_FILES) $(LDFLAGS) $(LINK_LIB) $(DEBUG_CFLAGS)
#cp MessageProcessor ../../../bin/Processors
#ifeq ($(OS),Windows_NT)
# copy RestfulConverter$(OUTPUTEXT) ..\..\..\bin\Processors
#else
# cp RestfulConverter$(OUTPUTEXT) ../../../bin/Processors
#endif
install:
#cp MessageProcessor ../../../bin/Processors
ifeq ($(OS),Windows_NT)
copy RestfulTest$(OUTPUTEXT) ..\..\..\bin\Processors\RestfulTest$(OUTPUTEXT)
else
cp RestfulTest$(OUTPUTEXT) $(HOME)/GREEN_LANE/bin/RestfulTest$(OUTPUTEXT)
endif
dep:;
clean:
ifeq ($(OS),Windows_NT)
del *.$(OBJEXT)
rd /s /q .d
# del $(PC2C_FILES)
$(foreach PC2C_FILENAME,$(PC2C_FILES),$(call del-pc2cfile,$(PC2C_FILENAME)))
IF EXIST *.bak del *.bak
else
rm -rf *.$(OBJEXT)
rm -rf .d
rm -rf $(PC2C_FILES)
rm -rf *.bak
endif
include $(wildcard $(patsubst %,$(DEPDIR)/%.d,$(basename $(C_SRC_FILES))))

@ -0,0 +1,75 @@
#ifndef __MESSAGEINFO_H__
#define __MESSAGEINFO_H__
#ifdef __cplusplus
#ifndef BEGIN_DECLS
#define BEGIN_DECLS extern "C" {
#endif
#ifndef END_DECLS
#define END_DECLS }
#endif
#else
#ifndef BEGIN_DECLS
#define BEGIN_DECLS
#endif
#ifndef END_DECLS
#define END_DECLS
#endif
#endif
BEGIN_DECLS
#include <curl/curl.h>
#include "Common.h"
#include "CURLUtil.h"
#include "Socket.h"
#include "RestfulConverter.h"
#define MAX_MESSAGE_ID 10
#define RC_ERR_SUCCESS 0
#define RC_ERR_FORMAT -1
struct MESSAGE_FUNC_INFO
{
char szMessageID[MAX_MESSAGE_ID +1];
char szMessageComment[MAX_STRING_SIZE + 1];
int (*MessageProcessFunc)(int nThreadIndex, CURL *pCurlContext, char *pRecvMessage, int nRecvMessageLength, char *pRespMessage, int nRespMessageLength, char *pRespCode);
};
extern struct MESSAGE_FUNC_INFO g_sMessageFuncInfo[];
int (*FindProcessFunction(char *pMessageID))(int nThreadIndex, CURL *pCurlContext, char *pRecvMessage, int nRecvMessageLength, char *pRespMessage, int nRespMessageLength, char *pRespCode);
int MessageProc_00010010(int nThreadIndex, CURL *pCurlContext, char *pRecvMessage, int nRecvMessageLength, char *pRespMessage, int nRespMessageLength, char *pRespCode);
int MessageProc_00020010(int nThreadIndex, CURL *pCurlContext, char *pRecvMessage, int nRecvMessageLength, char *pRespMessage, int nRespMessageLength, char *pRespCode);
int MessageProc_00030010(int nThreadIndex, CURL *pCurlContext, char *pRecvMessage, int nRecvMessageLength, char *pRespMessage, int nRespMessageLength, char *pRespCode);
int MessageProc_00040010(int nThreadIndex, CURL *pCurlContext, char *pRecvMessage, int nRecvMessageLength, char *pRespMessage, int nRespMessageLength, char *pRespCode);
int MessageProc_00050010(int nThreadIndex, CURL *pCurlContext, char *pRecvMessage, int nRecvMessageLength, char *pRespMessage, int nRespMessageLength, char *pRespCode);
int MessageProc_00110010(int nThreadIndex, CURL *pCurlContext, char *pRecvMessage, int nRecvMessageLength, char *pRespMessage, int nRespMessageLength, char *pRespCode);
int MessageProc_00210010(int nThreadIndex, CURL *pCurlContext, char *pRecvMessage, int nRecvMessageLength, char *pRespMessage, int nRespMessageLength, char *pRespCode);
int MessageProc_00210011(int nThreadIndex, CURL *pCurlContext, char *pRecvMessage, int nRecvMessageLength, char *pRespMessage, int nRespMessageLength, char *pRespCode);
int MessageProc_00210020(int nThreadIndex, CURL *pCurlContext, char *pRecvMessage, int nRecvMessageLength, char *pRespMessage, int nRespMessageLength, char *pRespCode);
int MessageProc_00210030(int nThreadIndex, CURL *pCurlContext, char *pRecvMessage, int nRecvMessageLength, char *pRespMessage, int nRespMessageLength, char *pRespCode);
int MessageProc_00220010(int nThreadIndex, CURL *pCurlContext, char *pRecvMessage, int nRecvMessageLength, char *pRespMessage, int nRespMessageLength, char *pRespCode);
int MessageProc_00220011(int nThreadIndex, CURL *pCurlContext, char *pRecvMessage, int nRecvMessageLength, char *pRespMessage, int nRespMessageLength, char *pRespCode);
int MessageProc_00220030(int nThreadIndex, CURL *pCurlContext, char *pRecvMessage, int nRecvMessageLength, char *pRespMessage, int nRespMessageLength, char *pRespCode);
int MessageProc_00230010(int nThreadIndex, CURL *pCurlContext, char *pRecvMessage, int nRecvMessageLength, char *pRespMessage, int nRespMessageLength, char *pRespCode);
int MessageProc_00230011(int nThreadIndex, CURL *pCurlContext, char *pRecvMessage, int nRecvMessageLength, char *pRespMessage, int nRespMessageLength, char *pRespCode);
int MessageProc_00230030(int nThreadIndex, CURL *pCurlContext, char *pRecvMessage, int nRecvMessageLength, char *pRespMessage, int nRespMessageLength, char *pRespCode);
int MessageProc_00240010(int nThreadIndex, CURL *pCurlContext, char *pRecvMessage, int nRecvMessageLength, char *pRespMessage, int nRespMessageLength, char *pRespCode);
int MessageProc_00240011(int nThreadIndex, CURL *pCurlContext, char *pRecvMessage, int nRecvMessageLength, char *pRespMessage, int nRespMessageLength, char *pRespCode);
int MessageProc_00240030(int nThreadIndex, CURL *pCurlContext, char *pRecvMessage, int nRecvMessageLength, char *pRespMessage, int nRespMessageLength, char *pRespCode);
//2019.08.28 ½Å±Ô Ãß°¡
int MessageProc_00310010(int nThreadIndex, CURL *pCurlContext, char *pRecvMessage, int nRecvMessageLength, char *pRespMessage, int nRespMessageLength, char *pRespCode);
int MessageProc_00320010(int nThreadIndex, CURL *pCurlContext, char *pRecvMessage, int nRecvMessageLength, char *pRespMessage, int nRespMessageLength, char *pRespCode);
int MessageProc_90010010(int nThreadIndex, CURL *pCurlContext, char *pRecvMessage, int nRecvMessageLength, char *pRespMessage, int nRespMessageLength, char *pRespCode);
int MessageProc_90020010(int nThreadIndex, CURL *pCurlContext, char *pRecvMessage, int nRecvMessageLength, char *pRespMessage, int nRespMessageLength, char *pRespCode);
int MessageProc_99990010(int nThreadIndex, CURL *pCurlContext, char *pRecvMessage, int nRecvMessageLength, char *pRespMessage, int nRespMessageLength, char *pRespCode);
END_DECLS
#endif

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

@ -0,0 +1,359 @@
#include "RestfulConverter.h"
char g_szProcessname[MAX_STRING_SIZE + 1];
char g_szProcessPath[PATH_MAX + 1];
char g_szBaseRestfulURL[MAX_STRING_SIZE + 1];
int g_nResponseTimeout;
int main(int argc, char *argv[])
{
char szProcessname[PATH_MAX + 1];
char *pFindPointer;
//int nPathIndicatorPos;
int nResult;
DaemonStart();
nResult = SafeStrCopy(szProcessname, sizeof(szProcessname), argv[0]);
if (nResult != SEC_ERR_SUCCESS)
{
printf_s("strcpy_s Error![%d]\n", nResult);
}
// printf_s("Input argument : [%s]\n", argv[0]);
pFindPointer = szProcessname;
nResult = SafeStrrChr(szProcessname, strnlen_s(szProcessname, sizeof(szProcessname)), PATH_SEPERATOR, &pFindPointer);
// printf_s("문자열길이 : %d\n", strnlen_s(szProcessname, sizeof(szProcessname)));
// printf_s("szProcessname Address : %x\n", szProcessname);
// printf_s("pFindPointer Address : %x\n", pFindPointer);
// printf_s("szProcess Name : %s\n", szProcessname);
// printf_s("g_szProcess Name : %s\n", g_szProcessname);
// if (nResult != EOK)
// {
// printf_s("strrchr_s Error![%d]\n", nResult);
// }
if (pFindPointer == NULL)
{
nResult = SafeStrCopy(g_szProcessname, sizeof(g_szProcessname), szProcessname);
}
else
{
nResult = SafeStrCopy(g_szProcessname, sizeof(g_szProcessname), pFindPointer + 1);
}
// printf_s("szProcess Name : %s\n", szProcessname);
// printf_s("g_szProcess Name : %s\n", g_szProcessname);
GetExecPath(g_szProcessPath, sizeof(g_szProcessPath) - 1, argv[0]);
if (g_szProcessPath == NULL)
{
printf_s("Can't get process path[Cann't load config file]!\nExit Program!");
return -1;
}
nResult = InitMessageProcessConfig();
if (nResult != MQ_ERR_SUCCESS)
{
printf_s("Program terminated!!!\n");
return -1;
}
WriteLog(LogType_SystemOut, LogLevel_Info, "Process Started![%s]", g_szProcessname);
curl_global_init(CURL_GLOBAL_ALL);
/* Socket 처리 루프 : 종료시 프로그램 종료됨 */
nResult = InitThread(WorkThread);
while(true)
{
sleep(5);
}
WriteLog(LogType_SystemOut, LogLevel_Info, "Process Stopped![%s]", g_szProcessname);
return 0;
}
int InitMessageProcessConfig()
{
char szConfigfilename[PATH_MAX + 1];
char szConfigfilenameTemp[PATH_MAX + 1];
char szValueTemp[MAX_STRING_SIZE + 1];
int nResult;
// snprintf(szConfigfilenameTemp, sizeof(szConfigfilenameTemp), "%s/%s/", g_szProcessPath, CONF_FILE_PATH);
//
// realpath(szConfigfilenameTemp, szConfigfilename);
//
// SafeStrCat(szConfigfilename, sizeof(szConfigfilename), "/", 1);
// SafeStrCat(szConfigfilename, sizeof(szConfigfilename), g_szProcessname, strnlen_s(g_szProcessname, sizeof(g_szProcessname)));
// SafeStrCat(szConfigfilename, sizeof(szConfigfilename), CONF_FILE_EXT, strnlen_s(CONF_FILE_EXT, sizeof(CONF_FILE_EXT)));
snprintf(szConfigfilenameTemp, sizeof(szConfigfilenameTemp), "%s%c%s%c", g_szProcessPath, PATH_SEPERATOR, CONF_FILE_PATH, PATH_SEPERATOR);
realpath(szConfigfilenameTemp, szConfigfilename);
snprintf(szValueTemp, sizeof(szValueTemp), "%c", PATH_SEPERATOR);
nResult = SafeStrCat(szConfigfilename, sizeof(szConfigfilename), szValueTemp, 1);
nResult = SafeStrCat(szConfigfilename, sizeof(szConfigfilename), g_szProcessname, strnlen_s(g_szProcessname, sizeof(g_szProcessname)));
nResult = SafeStrCat(szConfigfilename, sizeof(szConfigfilename), CONF_FILE_EXT, strnlen_s(CONF_FILE_EXT, sizeof(CONF_FILE_EXT)));
printf_s("Process Name : %s\n", g_szProcessname);
printf_s("Process Path : %s\n", g_szProcessPath);
printf_s("Config Filename : %s\n", szConfigfilename);
ReadConfigFile(true, szConfigfilename);
if (InitLogConfig() != LOG_ERR_SUCCESS)
{
return MP_ERR_CONFIG;
}
if (GetConfigValue(RC_RESTFULAPI_BASE_URL_KEY, g_szBaseRestfulURL, sizeof(g_szBaseRestfulURL)) != CONF_ERR_SUCCESS)
{
WriteLog(LogType_ErrorOut, LogLevel_Error, "Socket RESTFULAPI_BASE_URL_KEY configuration not found!");
return MP_ERR_CONFIG;
}
// Read RC_RESPONSE_TIMEOUT_KEY
if (GetConfigValue(RC_RESPONSE_TIMEOUT_KEY, szValueTemp, sizeof(szValueTemp)) != CONF_ERR_SUCCESS)
{
WriteLog(LogType_ErrorOut, LogLevel_Error, "Socket MS_RESPONSE_TIMEOUT_KEY configuration not found!");
return SOCK_ERR_CONFIG;
}
if (SafeStringToInt(szValueTemp, sizeof(szValueTemp), &g_nResponseTimeout) != CONF_ERR_SUCCESS)
{
WriteLog(LogType_ErrorOut, LogLevel_Error, "Socket MS_RESPONSE_TIMEOUT_KEY configuration error[ConfigFile:%s]!", szValueTemp);
return SOCK_ERR_CONFIG;
}
if (InitProcessorMQConfig() != MQ_ERR_SUCCESS)
{
return MP_ERR_CONFIG;
}
if (InitThreadConfig() != THREAD_ERR_SUCCESS)
{
return MP_ERR_CONFIG;
}
return MP_ERR_SUCCESS;
}
void *WorkThread(void *pData)
{
struct THREAD_INFO *pThreadInfo;
amqp_rpc_reply_t sRPCReply;
char szMessageBuffer[MAX_STRING_SIZE*10 + 1];
int nResult;
int *pnThreadExitCode;
char szCorrelationID[MAX_STRING_SIZE + 1];
char szReplyQueuename[MAX_STRING_SIZE + 1];
char szExchangername[MAX_STRING_SIZE + 1];
char szMessageID[MAX_STRING_SIZE + 1];
char szSendMessageBuffer[MAX_STRING_SIZE + 1];
char szRespDataBuffer[MAX_STRING_SIZE + 1];
char szRespCode[sizeof(((struct MESSAGE_FRAME *)0)->szRespCode) + 1];
int nMessageLength;
int nCmpResult1;
int nCmpResult2;
uint64_t nDeliveryTag;
struct timeval sGetMessageTimeout;
struct MESSAGE_FRAME sReceiveMessageFrame;
int nParsingOffset;
CURL *pCurlContext;
int (*MessageProcessFunction)(int nThreadIndex, CURL *pCurlContext, char *pRecvMessage, int nRecvMessageLength, char *pRespMessage, int nRespMessageLength, char *pRespCode);
pThreadInfo = (struct THREAD_INFO *)pData;
pnThreadExitCode = NULL;
nResult = SafeMemoryAlloc((void **)&pnThreadExitCode, sizeof(int));
//pnThreadExitCode = SafeAlloc(pnThreadExitCode, sizeof(int));
*pnThreadExitCode = 0;
sGetMessageTimeout.tv_sec = 0;
sGetMessageTimeout.tv_usec = 1000;
while (pThreadInfo->bThreadLoop)
{
if (pThreadInfo->sPublishMQ.bMQConnection == false || pThreadInfo->sPublishMQ.bMQChannelOpen == false
|| pThreadInfo->sConsumeMQ.bMQConnection == false || pThreadInfo->sConsumeMQ.bMQChannelOpen == false)
{
if (ConnectProcessorMQ(pThreadInfo, true) != MQ_ERR_SUCCESS)
{
WriteLog(LogType_StandardOut, LogLevel_Debug, "[Thread:%02d]ConnectProcessMQ is failed!", pThreadInfo->nThreadIndex);
continue;
}
WriteLog(LogType_StandardOut, LogLevel_Debug, "[Thread:%02d]ConnectProcessMQ is succeeded!!", pThreadInfo->nThreadIndex);
}
//amqp_maybe_release_buffers(pThreadInfo->sMQConnectionState);
//nResult = GetMessageFromQueue(pThreadInfo->sConsumeMQ.sMQConnectionState, szExchangername, sizeof(szExchangername), szMessageBuffer, sizeof(szMessageBuffer), szCorrelationID, sizeof(szCorrelationID), szReplyQueuename, sizeof(szReplyQueuename), &pThreadInfo->sConsumeMQ.bMQConnection, &pThreadInfo->sConsumeMQ.bMQChannelOpen, &nDeliveryTag, &sGetMessageTimeout);
nResult = GetMessageFromQueue(pThreadInfo->sConsumeMQ.sMQConnectionState, szExchangername, sizeof(szExchangername), szMessageBuffer, sizeof(szMessageBuffer), szCorrelationID, sizeof(szCorrelationID), szReplyQueuename, sizeof(szReplyQueuename), &pThreadInfo->sConsumeMQ.bMQConnection, &pThreadInfo->sConsumeMQ.bMQChannelOpen, &nDeliveryTag, NULL);
nMessageLength = strnlen_s(szMessageBuffer, sizeof(szMessageBuffer));
if (nResult == MQ_ERR_SUCCESS)
{
//printf_s("Message Received : %s\n", szMessageBuffer);
//WriteRawCommLog(LogType_CommOut, LogLevel_Info, pThreadInfo->nThreadIndex, 'C', "%s", szMessageBuffer);
WriteQueueLog(LogType_MQOut, LogLevel_Info, pThreadInfo->nThreadIndex, 'C', g_szMQMessageRecvQueuename, "", szCorrelationID, nMessageLength, "%s", szMessageBuffer);
WriteLog(LogType_StandardOut, LogLevel_Info, "[Thread:%02d]MQ Data Consume[Data:%s]!", pThreadInfo->nThreadIndex, szMessageBuffer);
//nResult = PutAckMessageToQueue(pThreadInfo->sMQConnectionState, szCorrelationID, szReplyQueuename, szMessageBuffer, strnlen_s(szMessageBuffer, sizeof(szMessageBuffer)), &pThreadInfo->bMQConnection, &pThreadInfo->bChannelOpen);
// 수신된 전문의 파싱
nResult = SafeMemSet(&sReceiveMessageFrame, sizeof(sReceiveMessageFrame), 0, sizeof(sReceiveMessageFrame));
nParsingOffset = 0;
nResult = GetCheckedValue(TYPE_ALPHA_NUMERIC, &sReceiveMessageFrame.szMessageLength, sizeof(sReceiveMessageFrame.szMessageLength) - 1, szMessageBuffer + nParsingOffset);
if (nResult != STR_ERR_SUCCESS)
{
WriteLog(LogType_StandardOut, LogLevel_Info, "[Thread:%02d]Receive Data Parsing Error-[MessageLengthError:%-*.*s,Data:%s]!", pThreadInfo->nThreadIndex, sizeof(sizeof(sReceiveMessageFrame.szMessageLength) - 1), sizeof(sizeof(sReceiveMessageFrame.szMessageLength) - 1), szMessageBuffer + nParsingOffset, szMessageBuffer);
snprintf(szSendMessageBuffer, sizeof(szSendMessageBuffer), "%s%c%s%s%-8.8s%-14.14s%s%s", sReceiveMessageFrame.szOrganizationCode, sReceiveMessageFrame.cOccurType, sReceiveMessageFrame.szWorkType, sReceiveMessageFrame.szMsgType, sReceiveMessageFrame.szSerialNo, sReceiveMessageFrame.szRequestDateTime, GetSocketRespCode(RESP_FORMAT_ERROR), szMessageBuffer + MESSAGE_FRAME_SIZE);
nResult = PutReplyMessageToQueue(pThreadInfo->sPublishMQ.sMQConnectionState, szCorrelationID, szReplyQueuename, szSendMessageBuffer, strnlen_s(szSendMessageBuffer, sizeof(szSendMessageBuffer)), &pThreadInfo->sPublishMQ.bMQConnection, &pThreadInfo->sPublishMQ.bMQChannelOpen);
WriteQueueLog(LogType_MQOut, LogLevel_Info, pThreadInfo->nThreadIndex, 'P', "", szReplyQueuename, szCorrelationID, nMessageLength, "%s", szMessageBuffer);
WriteLog(LogType_StandardOut, LogLevel_Info, "[Thread:%02d]Send Response Publish[Queue:%s,UUID:%s,Data:%s]!", pThreadInfo->nThreadIndex, szReplyQueuename, szCorrelationID, szMessageBuffer);
continue;
}
nParsingOffset += sizeof(sReceiveMessageFrame.szMessageLength) - 1;
nResult = GetCheckedValue(TYPE_ALPHA_NUMERIC, &sReceiveMessageFrame.szOrganizationCode, sizeof(sReceiveMessageFrame.szOrganizationCode) - 1, szMessageBuffer + nParsingOffset);
if (nResult != STR_ERR_SUCCESS)
{
WriteLog(LogType_StandardOut, LogLevel_Info, "[Thread:%02d]Receive Data Parsing Error-[OraganizationCodeError:%-*.*s,Data:%s]!", pThreadInfo->nThreadIndex, sizeof(sizeof(sReceiveMessageFrame.szOrganizationCode) - 1), sizeof(sizeof(sReceiveMessageFrame.szOrganizationCode) - 1), szMessageBuffer + nParsingOffset, szMessageBuffer);
snprintf(szSendMessageBuffer, sizeof(szSendMessageBuffer), "%s%c%s%s%-8.8s%-14.14s%s%s", sReceiveMessageFrame.szOrganizationCode, sReceiveMessageFrame.cOccurType, sReceiveMessageFrame.szWorkType, sReceiveMessageFrame.szMsgType, sReceiveMessageFrame.szSerialNo, sReceiveMessageFrame.szRequestDateTime, GetSocketRespCode(RESP_FORMAT_ERROR), szMessageBuffer + MESSAGE_FRAME_SIZE);
nResult = PutReplyMessageToQueue(pThreadInfo->sPublishMQ.sMQConnectionState, szCorrelationID, szReplyQueuename, szSendMessageBuffer, strnlen_s(szSendMessageBuffer, sizeof(szSendMessageBuffer)), &pThreadInfo->sPublishMQ.bMQConnection, &pThreadInfo->sPublishMQ.bMQChannelOpen);
WriteQueueLog(LogType_MQOut, LogLevel_Info, pThreadInfo->nThreadIndex, 'P', "", szReplyQueuename, szCorrelationID, nMessageLength, "%s", szMessageBuffer);
WriteLog(LogType_StandardOut, LogLevel_Info, "[Thread:%02d]Send Response Publish[Queue:%s,UUID:%s,Data:%s]!", pThreadInfo->nThreadIndex, szReplyQueuename, szCorrelationID, szMessageBuffer);
continue;
}
nParsingOffset += sizeof(sReceiveMessageFrame.szOrganizationCode) - 1;
sReceiveMessageFrame.cOccurType = szMessageBuffer[nParsingOffset];
if (sReceiveMessageFrame.cOccurType != 'C' && sReceiveMessageFrame.cOccurType != 'S')
{
WriteLog(LogType_StandardOut, LogLevel_Info, "[Thread:%02d]Receive Data Parsing Error-[OccurTypeError:%c,Data:%s]!", pThreadInfo->nThreadIndex, sReceiveMessageFrame.cOccurType, szMessageBuffer);
snprintf(szSendMessageBuffer, sizeof(szSendMessageBuffer), "%s%c%s%s%-8.8s%-14.14s%s%s", sReceiveMessageFrame.szOrganizationCode, sReceiveMessageFrame.cOccurType, sReceiveMessageFrame.szWorkType, sReceiveMessageFrame.szMsgType, sReceiveMessageFrame.szSerialNo, sReceiveMessageFrame.szRequestDateTime, GetSocketRespCode(RESP_FORMAT_ERROR), szMessageBuffer + MESSAGE_FRAME_SIZE);
nResult = PutReplyMessageToQueue(pThreadInfo->sPublishMQ.sMQConnectionState, szCorrelationID, szReplyQueuename, szSendMessageBuffer, strnlen_s(szSendMessageBuffer, sizeof(szSendMessageBuffer)), &pThreadInfo->sPublishMQ.bMQConnection, &pThreadInfo->sPublishMQ.bMQChannelOpen);
WriteQueueLog(LogType_MQOut, LogLevel_Info, pThreadInfo->nThreadIndex, 'P', "", szReplyQueuename, szCorrelationID, nMessageLength, "%s", szMessageBuffer);
WriteLog(LogType_StandardOut, LogLevel_Info, "[Thread:%02d]Send Response Publish[Queue:%s,UUID:%s,Data:%s]!", pThreadInfo->nThreadIndex, szReplyQueuename, szCorrelationID, szMessageBuffer);
continue;
}
nParsingOffset++;
nResult = GetCheckedValue(TYPE_ALPHA_NUMERIC, &sReceiveMessageFrame.szWorkType, sizeof(sReceiveMessageFrame.szWorkType) - 1, szMessageBuffer + nParsingOffset);
if (nResult != STR_ERR_SUCCESS)
{
WriteLog(LogType_StandardOut, LogLevel_Info, "[Thread:%02d]Receive Data Parsing Error-[WorkTypeError:%-*.*s,Data:%s]!", pThreadInfo->nThreadIndex, sizeof(sizeof(sReceiveMessageFrame.szWorkType) - 1), sizeof(sizeof(sReceiveMessageFrame.szWorkType) - 1), szMessageBuffer + nParsingOffset, szMessageBuffer);
snprintf(szSendMessageBuffer, sizeof(szSendMessageBuffer), "%s%c%s%s%-8.8s%-14.14s%s%s", sReceiveMessageFrame.szOrganizationCode, sReceiveMessageFrame.cOccurType, sReceiveMessageFrame.szWorkType, sReceiveMessageFrame.szMsgType, sReceiveMessageFrame.szSerialNo, sReceiveMessageFrame.szRequestDateTime, GetSocketRespCode(RESP_FORMAT_ERROR), szMessageBuffer + MESSAGE_FRAME_SIZE);
nResult = PutReplyMessageToQueue(pThreadInfo->sPublishMQ.sMQConnectionState, szCorrelationID, szReplyQueuename, szSendMessageBuffer, strnlen_s(szSendMessageBuffer, sizeof(szSendMessageBuffer)), &pThreadInfo->sPublishMQ.bMQConnection, &pThreadInfo->sPublishMQ.bMQChannelOpen);
WriteQueueLog(LogType_MQOut, LogLevel_Info, pThreadInfo->nThreadIndex, 'P', "", szReplyQueuename, szCorrelationID, nMessageLength, "%s", szMessageBuffer);
WriteLog(LogType_StandardOut, LogLevel_Info, "[Thread:%02d]Send Response Publish[Queue:%s,UUID:%s,Data:%s]!", pThreadInfo->nThreadIndex, szReplyQueuename, szCorrelationID, szMessageBuffer);
continue;
}
nParsingOffset += sizeof(sReceiveMessageFrame.szWorkType) - 1;
nResult = GetCheckedValue(TYPE_ALPHA_NUMERIC, &sReceiveMessageFrame.szMsgType, sizeof(sReceiveMessageFrame.szMsgType) - 1, szMessageBuffer + nParsingOffset);
if (nResult != STR_ERR_SUCCESS)
{
WriteLog(LogType_StandardOut, LogLevel_Info, "[Thread:%02d]Receive Data Parsing Error-[MsgTypeError:%-*.*s,Data:%s]!", pThreadInfo->nThreadIndex, sizeof(sizeof(sReceiveMessageFrame.szMsgType) - 1), sizeof(sizeof(sReceiveMessageFrame.szMsgType) - 1), szMessageBuffer + nParsingOffset, szMessageBuffer);
snprintf(szSendMessageBuffer, sizeof(szSendMessageBuffer), "%s%c%s%s%-8.8s%-14.14s%s%s", sReceiveMessageFrame.szOrganizationCode, sReceiveMessageFrame.cOccurType, sReceiveMessageFrame.szWorkType, sReceiveMessageFrame.szMsgType, sReceiveMessageFrame.szSerialNo, sReceiveMessageFrame.szRequestDateTime, GetSocketRespCode(RESP_FORMAT_ERROR), szMessageBuffer + MESSAGE_FRAME_SIZE);
nResult = PutReplyMessageToQueue(pThreadInfo->sPublishMQ.sMQConnectionState, szCorrelationID, szReplyQueuename, szSendMessageBuffer, strnlen_s(szSendMessageBuffer, sizeof(szSendMessageBuffer)), &pThreadInfo->sPublishMQ.bMQConnection, &pThreadInfo->sPublishMQ.bMQChannelOpen);
WriteQueueLog(LogType_MQOut, LogLevel_Info, pThreadInfo->nThreadIndex, 'P', "", szReplyQueuename, szCorrelationID, nMessageLength, "%s", szMessageBuffer);
WriteLog(LogType_StandardOut, LogLevel_Info, "[Thread:%02d]Send Response Publish[Queue:%s,UUID:%s,Data:%s]!", pThreadInfo->nThreadIndex, szReplyQueuename, szCorrelationID, szMessageBuffer);
continue;
}
nParsingOffset += sizeof(sReceiveMessageFrame.szMsgType) - 1;
nResult = GetCheckedValue(TYPE_ALPHA_NUMERIC, &sReceiveMessageFrame.szSerialNo, sizeof(sReceiveMessageFrame.szSerialNo) - 1, szMessageBuffer + nParsingOffset);
if (nResult != STR_ERR_SUCCESS)
{
WriteLog(LogType_StandardOut, LogLevel_Info, "[Thread:%02d]Receive Data Parsing Error-[SerialNoTypeError:%-*.*s,Data:%s]!", pThreadInfo->nThreadIndex, sizeof(sizeof(sReceiveMessageFrame.szSerialNo) - 1), sizeof(sizeof(sReceiveMessageFrame.szSerialNo) - 1), szMessageBuffer + nParsingOffset, szMessageBuffer);
snprintf(szSendMessageBuffer, sizeof(szSendMessageBuffer), "%s%c%s%s%-8.8s%-14.14s%s%s", sReceiveMessageFrame.szOrganizationCode, sReceiveMessageFrame.cOccurType, sReceiveMessageFrame.szWorkType, sReceiveMessageFrame.szMsgType, sReceiveMessageFrame.szSerialNo, sReceiveMessageFrame.szRequestDateTime, GetSocketRespCode(RESP_FORMAT_ERROR), szMessageBuffer + MESSAGE_FRAME_SIZE);
nResult = PutReplyMessageToQueue(pThreadInfo->sPublishMQ.sMQConnectionState, szCorrelationID, szReplyQueuename, szSendMessageBuffer, strnlen_s(szSendMessageBuffer, sizeof(szSendMessageBuffer)), &pThreadInfo->sPublishMQ.bMQConnection, &pThreadInfo->sPublishMQ.bMQChannelOpen);
WriteQueueLog(LogType_MQOut, LogLevel_Info, pThreadInfo->nThreadIndex, 'P', "", szReplyQueuename, szCorrelationID, nMessageLength, "%s", szMessageBuffer);
WriteLog(LogType_StandardOut, LogLevel_Info, "[Thread:%02d]Send Response Publish[Queue:%s,UUID:%s,Data:%s]!", pThreadInfo->nThreadIndex, szReplyQueuename, szCorrelationID, szMessageBuffer);
continue;
}
nParsingOffset += sizeof(sReceiveMessageFrame.szSerialNo) - 1;
nResult = GetCheckedValue(TYPE_ALPHA_NUMERIC, &sReceiveMessageFrame.szRequestDateTime, sizeof(sReceiveMessageFrame.szRequestDateTime) - 1, szMessageBuffer + nParsingOffset);
if (nResult != STR_ERR_SUCCESS)
{
WriteLog(LogType_StandardOut, LogLevel_Info, "[Thread:%02d]Receive Data Parsing Error-[RequestTimeError:%-*.*s,Data:%s]!", pThreadInfo->nThreadIndex, sizeof(sizeof(sReceiveMessageFrame.szRequestDateTime) - 1), sizeof(sizeof(sReceiveMessageFrame.szRequestDateTime) - 1), szMessageBuffer + nParsingOffset, szMessageBuffer);
snprintf(szSendMessageBuffer, sizeof(szSendMessageBuffer), "%s%c%s%s%-8.8s%-14.14s%s%s", sReceiveMessageFrame.szOrganizationCode, sReceiveMessageFrame.cOccurType, sReceiveMessageFrame.szWorkType, sReceiveMessageFrame.szMsgType, sReceiveMessageFrame.szSerialNo, sReceiveMessageFrame.szRequestDateTime, GetSocketRespCode(RESP_FORMAT_ERROR), szMessageBuffer + MESSAGE_FRAME_SIZE);
nResult = PutReplyMessageToQueue(pThreadInfo->sPublishMQ.sMQConnectionState, szCorrelationID, szReplyQueuename, szSendMessageBuffer, strnlen_s(szSendMessageBuffer, sizeof(szSendMessageBuffer)), &pThreadInfo->sPublishMQ.bMQConnection, &pThreadInfo->sPublishMQ.bMQChannelOpen);
WriteQueueLog(LogType_MQOut, LogLevel_Info, pThreadInfo->nThreadIndex, 'P', "", szReplyQueuename, szCorrelationID, nMessageLength, "%s", szMessageBuffer);
WriteLog(LogType_StandardOut, LogLevel_Info, "[Thread:%02d]Send Response Publish[Queue:%s,UUID:%s,Data:%s]!", pThreadInfo->nThreadIndex, szReplyQueuename, szCorrelationID, szMessageBuffer);
continue;
}
nParsingOffset += sizeof(sReceiveMessageFrame.szRequestDateTime) - 1;
nResult = GetCheckedValue(TYPE_ALPHA_NUMERIC, &sReceiveMessageFrame.szRespCode, sizeof(sReceiveMessageFrame.szRespCode) - 1, szMessageBuffer + nParsingOffset);
if (nResult != STR_ERR_SUCCESS)
{
WriteLog(LogType_StandardOut, LogLevel_Info, "[Thread:%02d]Receive Data Parsing Error-[RespCodeError:%-*.*s,Data:%s]!", pThreadInfo->nThreadIndex, sizeof(sizeof(sReceiveMessageFrame.szRespCode) - 1), sizeof(sizeof(sReceiveMessageFrame.szRespCode) - 1), szMessageBuffer + nParsingOffset, szMessageBuffer);
snprintf(szSendMessageBuffer, sizeof(szSendMessageBuffer), "%s%c%s%s%-8.8s%-14.14s%s%s", sReceiveMessageFrame.szOrganizationCode, sReceiveMessageFrame.cOccurType, sReceiveMessageFrame.szWorkType, sReceiveMessageFrame.szMsgType, sReceiveMessageFrame.szSerialNo, sReceiveMessageFrame.szRequestDateTime, GetSocketRespCode(RESP_FORMAT_ERROR), szMessageBuffer + MESSAGE_FRAME_SIZE);
nResult = PutReplyMessageToQueue(pThreadInfo->sPublishMQ.sMQConnectionState, szCorrelationID, szReplyQueuename, szSendMessageBuffer, strnlen_s(szSendMessageBuffer, sizeof(szSendMessageBuffer)), &pThreadInfo->sPublishMQ.bMQConnection, &pThreadInfo->sPublishMQ.bMQChannelOpen);
WriteQueueLog(LogType_MQOut, LogLevel_Info, pThreadInfo->nThreadIndex, 'P', "", szReplyQueuename, szCorrelationID, nMessageLength, "%s", szMessageBuffer);
WriteLog(LogType_StandardOut, LogLevel_Info, "[Thread:%02d]Send Response Publish[Queue:%s,UUID:%s,Data:%s]!", pThreadInfo->nThreadIndex, szReplyQueuename, szCorrelationID, szMessageBuffer);
continue;
}
nParsingOffset += sizeof(sReceiveMessageFrame.szRespCode) - 1;
SafeStrCopy(sReceiveMessageFrame.szData, sizeof(sReceiveMessageFrame.szData), szMessageBuffer + nParsingOffset);
pCurlContext = curl_easy_init();
if (g_bBypassMode)
{
amqp_basic_ack(pThreadInfo->sConsumeMQ.sMQConnectionState, 1, nDeliveryTag, 0);
}
snprintf(szMessageID, sizeof(szMessageID), "%s%s", sReceiveMessageFrame.szWorkType, sReceiveMessageFrame.szMsgType);
MessageProcessFunction = FindProcessFunction(szMessageID);
nResult = MessageProcessFunction(pThreadInfo->nThreadIndex, pCurlContext, sReceiveMessageFrame.szData, strnlen(sReceiveMessageFrame.szData, sizeof(sReceiveMessageFrame.szData)), szRespDataBuffer, sizeof(szRespDataBuffer), szRespCode);
printf("Http Result : %s\n", szRespDataBuffer);
curl_easy_cleanup(pCurlContext);
if (g_bBypassMode)
{
snprintf(szSendMessageBuffer, sizeof(szSendMessageBuffer), "%s%c%s%s%-8.8s%-14.14s%s%s", sReceiveMessageFrame.szOrganizationCode, sReceiveMessageFrame.cOccurType, sReceiveMessageFrame.szWorkType, sReceiveMessageFrame.szMsgType, sReceiveMessageFrame.szSerialNo, sReceiveMessageFrame.szRequestDateTime, GetSocketRespCode(RESP_FORMAT_ERROR), szRespDataBuffer);
nResult = PutReplyMessageToQueue(pThreadInfo->sPublishMQ.sMQConnectionState, szCorrelationID, szReplyQueuename, szSendMessageBuffer, strnlen_s(szSendMessageBuffer, sizeof(szSendMessageBuffer)), &pThreadInfo->sPublishMQ.bMQConnection, &pThreadInfo->sPublishMQ.bMQChannelOpen);
WriteQueueLog(LogType_MQOut, LogLevel_Info, pThreadInfo->nThreadIndex, 'P', "", szReplyQueuename, szCorrelationID, nMessageLength, "%s", szSendMessageBuffer);
WriteLog(LogType_StandardOut, LogLevel_Info, "[Thread:%02d]Response Publish[Queue:%s,UUID:%s,Data:%s]!", pThreadInfo->nThreadIndex, szReplyQueuename, szCorrelationID, szSendMessageBuffer);
}
else
{
// 오류 판단 로직은 DB 처리 등의 결과에 의존하여 결정 되며 처리되기 전에는 메시지큐에 ack하지 않아야 데이터가 유지된다.
// if (/* 오류 판단*/)
// {
// amqp_basic_ack(pThreadInfo->sConsumeMQ.sMQConnectionState, 1, nDeliveryTag, 0);
// }
// else
// {
// amqp_basic_nack(pThreadInfo->sConsumeMQ.sMQConnectionState, 1, nDeliveryTag, 0, 1);
// }
#if 1
nResult = SafeStrCmp(szRespCode, sizeof(szRespCode), GetSocketRespCode(RESP_NORMAL), &nCmpResult1);
nResult = SafeStrCmp(szRespCode, sizeof(szRespCode), GetSocketRespCode(RESP_ALREADY_RECV), &nCmpResult2);
if (nCmpResult1 != 0 && nCmpResult2 != 0)
{
amqp_basic_nack(pThreadInfo->sConsumeMQ.sMQConnectionState, 1, nDeliveryTag, 0, 1);
}
else
{
amqp_basic_ack(pThreadInfo->sConsumeMQ.sMQConnectionState, 1, nDeliveryTag, 0);
}
#else
amqp_basic_ack(pThreadInfo->sConsumeMQ.sMQConnectionState, 1, nDeliveryTag, 0);
#endif
}
}
else
{
WriteLog(LogType_StandardOut, LogLevel_Debug, "[Thread:%02d]MQ Data Consume Error!", pThreadInfo->nThreadIndex);
}
}
curl_global_cleanup();
CloseMQ(pThreadInfo->nThreadIndex, pThreadInfo->sPublishMQ.sMQConnectionState, &pThreadInfo->sPublishMQ.bMQConnection, &pThreadInfo->sPublishMQ.bMQChannelOpen, &pThreadInfo->sPublishMQ.sMQMutex);
CloseMQ(pThreadInfo->nThreadIndex, pThreadInfo->sConsumeMQ.sMQConnectionState, &pThreadInfo->sConsumeMQ.bMQConnection, &pThreadInfo->sConsumeMQ.bMQChannelOpen, &pThreadInfo->sConsumeMQ.sMQMutex);
return pnThreadExitCode;
}

@ -0,0 +1,72 @@
#ifndef __RESTFULCONVERTER_H__
#define __RESTFULCONVERTER_H__
#ifdef __cplusplus
#ifndef BEGIN_DECLS
#define BEGIN_DECLS extern "C" {
#endif
#ifndef END_DECLS
#define END_DECLS }
#endif
#else
#ifndef BEGIN_DECLS
#define BEGIN_DECLS
#endif
#ifndef END_DECLS
#define END_DECLS
#endif
#endif
BEGIN_DECLS
#include <limits.h>
#ifdef _WIN32
#include <wchar.h>
#endif
#include <curl/curl.h>
#include "Common.h"
#include "StringUtil.h"
#include "Log.h"
#include "MessageQueue.h"
#include "SystemUtil.h"
#include "SecureCodingUtil.h"
#include "MessageInfo.h"
#define MP_ERR_SUCCESS 0
#define MP_ERR_CONFIG -1
#define RC_RESTFULAPI_BASE_URL_KEY "RESTFULAPI_BASE_URL"
#define RC_RESPONSE_TIMEOUT_KEY "RESPONSE_TIMEOUT"
extern char g_szProcessname[MAX_STRING_SIZE + 1];
extern char g_szProcessPath[PATH_MAX + 1];
extern char g_szBaseRestfulURL[MAX_STRING_SIZE + 1];
extern int g_nResponseTimeout;
struct MESSAGE_FRAME
{
char szMessageLength[4 + 1];
char szOrganizationCode[6 + 1];
char cOccurType;
char szWorkType[4 + 1];
char szMsgType[4 + 1];
char szSerialNo[8 + 1];
char szRequestDateTime[14 + 1];
char szRespCode[4 + 1];
char szData[MAX_STRING_SIZE + 1];
};
// 각 컬럼별로 하나씩 하는 이유는 배열 전체로 할 경우 byte alignment로 인해 실제 사이즈와 다를 수 있기 때문이다.
#define MESSAGE_FRAME_SIZE (sizeof(((struct MESSAGE_FRAME *)0)->szMessageLength) - 1 + sizeof(((struct MESSAGE_FRAME *)0)->szOrganizationCode) - 1 + 1 + sizeof(((struct MESSAGE_FRAME *)0)->szWorkType) + sizeof(((struct MESSAGE_FRAME *)0)->szMsgType) + sizeof(((struct MESSAGE_FRAME *)0)->szSerialNo) + sizeof(((struct MESSAGE_FRAME *)0)->szRequestDateTime) + sizeof(((struct MESSAGE_FRAME *)0)->szRespCode))
int InitMessageProcessConfig();
void *WorkThread(void *pData);
END_DECLS
#endif

@ -0,0 +1,64 @@
/*
*========================================================================
*
* :
* : make_basic.c
* : (baarong@neighbor21.co.kr)
* : 2019.08.30
* :
* :
*
*========================================================================
*/
#include <stdio.h>
#include <stdlib.h>
#include <errno.h>
#include <unistd.h>
#include "bef_mst.h"
#include "dir_path.h"
#include "file_no.h"
#include "file_lb.h"
#include "lb_func_list.h"
#include "func_list.h"
#include "util.h"
/*
*========================================================================
*
* : make_basic
* : (baarong@neighbor21.co.kr)
* : 2019.08.13
* :
* : ()
*
*========================================================================
*/
int make_basic(char *data)
{
char path[128], spath[128], tpath[128];
char mkData[MAX_STRING_SIZE * 20 + 1];
int isfd, isrc, errflg = 0;
memset(mkData, 0x00, sizeof(mkData));
snprintf(mkData, strlen(data)+1, "%s", data);
//printf("make_befmst [%d][%s][%d]\n", rcv, data, strlen(data));
//printf("make_befmst 2[%s][%d]\n", mkData, strlen(mkData));
//WriteLog(LogType_StandardOut, LogLevel_Info, "DATA[%s][%d]\n", mkData, strlen(mkData));
sprintf(tpath, "%s/%s/BASICTBL01_O", DIR_TCS, DIR_BASEINFO);
unlink(tpath);
sprintf(path, "%s/%s/BASICTBL01", DIR_TCS, DIR_BASEINFO);
//lb_rename(path, tpath);
sprintf(spath, "%s/%s/BASICTBL01_S", DIR_TCS, DIR_BASEINFO);
unlink(spath);
isrc = Write_File_Char(mkData, strlen(mkData), spath);
if(isrc == 0)
{
WriteLog(LogType_StandardOut, LogLevel_Info, "BASIC DATA CREATE[%d]\n", isrc);
//lb_rename(spath, path);
}
return(isrc);
}

@ -0,0 +1,58 @@
/*
*========================================================================
*
* :
* : ft_ecblcng.pc
* : (baarong@neighbor21.co.kr)
* : 2019.08.13
* :
* :
*
*========================================================================
*/
#include <stdio.h>
#include <stdlib.h>
#include <errno.h>
#include <unistd.h>
#include "bef_chg.h"
#include "dir_path.h"
#include "file_no.h"
#include "file_lb.h"
#include "lb_func_list.h"
#include "func_list.h"
#include "util.h"
/*
*========================================================================
*
* : chng_t2f_befchg
* : (baarong@neighbor21.co.kr)
* : 2019.08.13
* :
* : (oprc_rgstr_tag_bl) -F .
*
*========================================================================
*/
int make_befchg(char *data)
{
char path[128], spath[128], tpath[128];
char mkData[MAX_STRING_SIZE*20 + 1];
int isfd, isrc, errflg = 0, res;
memset(mkData, 0x00, sizeof(mkData));
snprintf(mkData, strlen(data)+1, "%s", data);
printf("make_befchg [%s][%d]\n", data, strlen(data));
printf("make_befchg 2[%s][%d]\n", mkData, strlen(mkData));
WriteLog(LogType_StandardOut, LogLevel_Info, "DATA[%s][%d]\n", mkData, strlen(mkData));
sprintf(path, "%s/%s/ADVCHG_S", DIR_TCS, DIR_BASEINFO);
//unlink(path);
//isrc = Write_File_Char(mkData, strlen(mkData), path);
res = Add_Write_File_Char(mkData, strlen(mkData), path);
return(res);
}

@ -0,0 +1,88 @@
/*
*========================================================================
*
* :
* : ft_ecblcng.pc
* : (baarong@neighbor21.co.kr)
* : 2019.08.13
* :
* :
*
*========================================================================
*/
#include <stdio.h>
#include <stdlib.h>
#include <errno.h>
#include <unistd.h>
#include "bef_mst.h"
#include "dir_path.h"
#include "file_no.h"
#include "file_lb.h"
#include "lb_func_list.h"
#include "func_list.h"
#include "util.h"
/*
*========================================================================
*
* : chng_t2f_befmst
* : (baarong@neighbor21.co.kr)
* : 2019.08.13
* :
* : .
*
*========================================================================
*/
int make_befmst(unsigned int rcv, char *data)
{
char path[128], spath[128], tpath[128];
char mkData[MAX_STRING_SIZE+1];
int isfd, isrc, errflg = 0;
memset(mkData, 0x00, sizeof(mkData));
snprintf(mkData, strlen(data)+1, "%s", data);
//printf("make_befmst [%d][%s][%d]\n", rcv, data, strlen(data));
//printf("make_befmst 2[%s][%d]\n", mkData, strlen(mkData));
//WriteLog(LogType_StandardOut, LogLevel_Info, "DATA[%s][%d]\n", mkData, strlen(mkData));
sprintf(path, "%s/%s/ADVMST_S", DIR_TCS, DIR_BASEINFO);
//unlink(path);
if(rcv == 1)
{
sprintf(path, "%s/%s/ADVCHG", DIR_TCS, DIR_BASEINFO);
unlink(path);
sprintf(path, "%s/%s/ADVMST_S", DIR_TCS, DIR_BASEINFO);
unlink(path);
isrc = Write_File_Char(mkData, strlen(mkData), path);
}
else
{
isrc = Add_Write_File_Char(mkData, strlen(mkData), path);
}
#if 0
/*------------------------------------------------------*/
/* OLD ADVMST ==> ADVMST_O */
/*------------------------------------------------------*/
sprintf(path, "%s/%s/ADVMST_O", DIR_TCS,DIR_BASEINFO);
unlink(path);
sprintf(spath, "%s/%s/ADVMST", DIR_TCS, DIR_BASEINFO);
sprintf(tpath, "%s/%s/ADVMST_O", DIR_TCS, DIR_BASEINFO);
lb_rename(spath, tpath);
/*------------------------------------------------------*/
/* NEW ADVMST_S ==> ADVMST */
/*------------------------------------------------------*/
sprintf(path, "%s/%s/ADVMST", DIR_TCS,DIR_BASEINFO);
unlink(path);
sprintf(spath, "%s/%s/ADVMST_S", DIR_TCS, DIR_BASEINFO);
sprintf(tpath, "%s/%s/ADVMST", DIR_TCS, DIR_BASEINFO);
lb_rename(spath, tpath);
#endif
return(isrc);
}

@ -0,0 +1,58 @@
/*
*========================================================================
*
* :
* : ft_ecblcng.pc
* : (baarong@neighbor21.co.kr)
* : 2019.08.13
* :
* :
*
*========================================================================
*/
#include <stdio.h>
#include <stdlib.h>
#include <errno.h>
#include <unistd.h>
#include "bef_chg.h"
#include "dir_path.h"
#include "file_no.h"
#include "file_lb.h"
#include "lb_func_list.h"
#include "func_list.h"
#include "util.h"
/*
*========================================================================
*
* : make_exemptchg
* : (baarong@neighbor21.co.kr)
* : 2019.08.13
* :
* :
*
*========================================================================
*/
int make_exemptchg(char *data)
{
char path[128], spath[128], tpath[128];
char mkData[MAX_STRING_SIZE*20 + 1];
int isfd, isrc, errflg = 0, res;
memset(mkData, 0x00, sizeof(mkData));
snprintf(mkData, strlen(data)+1, "%s", data);
//printf("make_exemptchg [%s][%d]\n", data, strlen(data));
//printf("make_exemptchg 2[%s][%d]\n", mkData, strlen(mkData));
WriteLog(LogType_StandardOut, LogLevel_Info, "DATA[%s][%d]\n", mkData, strlen(mkData));
sprintf(path, "%s/%s/IMMCARNOC_S", DIR_TCS, DIR_BASEINFO);
//unlink(path);
//isrc = Write_File_Char(mkData, strlen(mkData), path);
res = Add_Write_File_Char(data, strlen(data), path);
return(res);
}

@ -0,0 +1,88 @@
/*
*========================================================================
*
* :
* : ft_ecblcng.pc
* : (baarong@neighbor21.co.kr)
* : 2019.08.13
* :
* :
*
*========================================================================
*/
#include <stdio.h>
#include <stdlib.h>
#include <errno.h>
#include <unistd.h>
#include "bef_mst.h"
#include "dir_path.h"
#include "file_no.h"
#include "file_lb.h"
#include "lb_func_list.h"
#include "func_list.h"
#include "util.h"
/*
*========================================================================
*
* : make_exemptmst
* : (baarong@neighbor21.co.kr)
* : 2019.08.13
* :
* :
*
*========================================================================
*/
int make_exemptmst(unsigned int rcv, char *data)
{
char path[128], spath[128], tpath[128];
char mkData[MAX_STRING_SIZE + 1];
int isfd, isrc, errflg = 0;
memset(mkData, 0x00, sizeof(mkData));
snprintf(mkData, strlen(data)+1, "%s", data);
//printf("make_befmst [%d][%s][%d]\n", rcv, data, strlen(data));
//printf("make_befmst 2[%s][%d]\n", mkData, strlen(mkData));
//WriteLog(LogType_StandardOut, LogLevel_Info, "DATA[%s][%d]\n", mkData, strlen(mkData));
sprintf(path, "%s/%s/IMMCARNO_S", DIR_TCS, DIR_BASEINFO);
//unlink(path);
if(rcv == 1)
{
sprintf(path, "%s/%s/IMMCARNOC", DIR_TCS, DIR_BASEINFO);
unlink(path);
sprintf(path, "%s/%s/IMMCARNO_S", DIR_TCS, DIR_BASEINFO);
unlink(path);
isrc = Write_File_Char(mkData, strlen(mkData), path);
}
else
{
isrc = Add_Write_File_Char(mkData, strlen(mkData), path);
}
#if 0
/*------------------------------------------------------*/
/* OLD BEFMST ==> BEFMST_O */
/*------------------------------------------------------*/
sprintf(path, "%s/%s/BEFMST_O", DIR_TCS,DIR_BASEINFO);
unlink(path);
sprintf(spath, "%s/%s/BEFMST", DIR_TCS, DIR_BASEINFO);
sprintf(tpath, "%s/%s/BEFMST_O", DIR_TCS, DIR_BASEINFO);
lb_rename(spath, tpath);
/*------------------------------------------------------*/
/* NEW BEFMST_S ==> BEFMST */
/*------------------------------------------------------*/
sprintf(path, "%s/%s/BEFMST", DIR_TCS,DIR_BASEINFO);
unlink(path);
sprintf(spath, "%s/%s/BEFMST_S", DIR_TCS, DIR_BASEINFO);
sprintf(tpath, "%s/%s/BEFMST", DIR_TCS, DIR_BASEINFO);
lb_rename(spath, tpath);
#endif
return(isrc);
}

@ -0,0 +1,58 @@
/*
*========================================================================
*
* :
* : ft_ecblcng.pc
* : (baarong@neighbor21.co.kr)
* : 2019.08.13
* :
* :
*
*========================================================================
*/
#include <stdio.h>
#include <stdlib.h>
#include <errno.h>
#include <unistd.h>
#include "bef_chg.h"
#include "dir_path.h"
#include "file_no.h"
#include "file_lb.h"
#include "lb_func_list.h"
#include "func_list.h"
#include "util.h"
/*
*========================================================================
*
* : make_scarchg
* : (baarong@neighbor21.co.kr)
* : 2019.08.13
* :
* : PL
*
*========================================================================
*/
int make_scarchg(char *data)
{
char path[128], spath[128], tpath[128];
char mkData[MAX_STRING_SIZE*20 + 1];
int isfd, isrc, errflg = 0, res;
memset(mkData, 0x00, sizeof(mkData));
snprintf(mkData, strlen(data)+1, "%s", data);
WriteLog(LogType_StandardOut, LogLevel_Info, "make_scarchg [%s][%d]\n", data, strlen(data));
WriteLog(LogType_StandardOut, LogLevel_Info, "make_scarchg 2[%s][%d]\n", mkData, strlen(mkData));
WriteLog(LogType_StandardOut, LogLevel_Info, "DATA[%s][%d]\n", mkData, strlen(mkData));
sprintf(path, "%s/%s/REDCARNOC_S", DIR_TCS, DIR_BASEINFO);
//unlink(path);
//isrc = Write_File_Char(mkData, strlen(mkData), path);
res = Add_Write_File_Char(mkData, strlen(mkData), path);
return(res);
}

@ -0,0 +1,87 @@
/*
*========================================================================
*
* :
* : make_scarmst.c
* : (baarong@neighbor21.co.kr)
* : 2019.08.13
* :
* :
*
*========================================================================
*/
#include <stdio.h>
#include <stdlib.h>
#include <errno.h>
#include <unistd.h>
#include "bef_mst.h"
#include "dir_path.h"
#include "file_no.h"
#include "file_lb.h"
#include "lb_func_list.h"
#include "func_list.h"
#include "util.h"
/*
*========================================================================
*
* : make_scarmst
* : (baarong@neighbor21.co.kr)
* : 2019.08.13
* :
* : PL
*
*========================================================================
*/
int make_scarmst(unsigned int rcv, char *data)
{
char path[128], spath[128], tpath[128];
char mkData[MAX_STRING_SIZE + 1];
int isfd, isrc, errflg = 0;
memset(mkData, 0x00, sizeof(mkData));
snprintf(mkData, strlen(data)+1, "%s", data);
//printf("make_befmst [%d][%s][%d]\n", rcv, data, strlen(data));
//printf("make_befmst 2[%s][%d]\n", mkData, strlen(mkData));
//WriteLog(LogType_StandardOut, LogLevel_Info, "DATA[%s][%d]\n", mkData, strlen(mkData));
sprintf(path, "%s/%s/REDCARNO_S", DIR_TCS, DIR_BASEINFO);
//unlink(path);
if(rcv == 1)
{
sprintf(path, "%s/%s/REDCARNOC", DIR_TCS, DIR_BASEINFO);
unlink(path);
sprintf(path, "%s/%s/REDCARNO_S", DIR_TCS, DIR_BASEINFO);
unlink(path);
isrc = Write_File_Char(mkData, strlen(mkData), path);
}
else
{
isrc = Add_Write_File_Char(mkData, strlen(mkData), path);
}
#if 0
/*------------------------------------------------------*/
/* OLD REDCARNO ==> REDCARNO_O */
/*------------------------------------------------------*/
sprintf(path, "%s/%s/REDCARNO_O", DIR_TCS,DIR_BASEINFO);
unlink(path);
sprintf(spath, "%s/%s/REDCARNO", DIR_TCS, DIR_BASEINFO);
sprintf(tpath, "%s/%s/REDCARNO_O", DIR_TCS, DIR_BASEINFO);
lb_rename(spath, tpath);
/*------------------------------------------------------*/
/* NEW REDCARNO_S ==> REDCARNO */
/*------------------------------------------------------*/
sprintf(path, "%s/%s/REDCARNO", DIR_TCS,DIR_BASEINFO);
unlink(path);
sprintf(spath, "%s/%s/REDCARNO_S", DIR_TCS, DIR_BASEINFO);
sprintf(tpath, "%s/%s/REDCARNO", DIR_TCS, DIR_BASEINFO);
lb_rename(spath, tpath);
#endif
return(isrc);
}

@ -0,0 +1,58 @@
/*
*========================================================================
*
* :
* : ft_ecblcng.pc
* : (baarong@neighbor21.co.kr)
* : 2019.08.13
* :
* :
*
*========================================================================
*/
#include <stdio.h>
#include <stdlib.h>
#include <errno.h>
#include <unistd.h>
#include "bef_chg.h"
#include "dir_path.h"
#include "file_no.h"
#include "file_lb.h"
#include "lb_func_list.h"
#include "func_list.h"
#include "util.h"
/*
*========================================================================
*
* : make_rfidchg
* : (baarong@neighbor21.co.kr)
* : 2019.08.13
* :
* : /
*
*========================================================================
*/
int make_rfidchg(char *data)
{
char path[128], spath[128], tpath[128];
char mkData[MAX_STRING_SIZE * 20 + 1];
int isfd, isrc, errflg = 0, res;
memset(mkData, 0x00, sizeof(mkData));
snprintf(mkData, strlen(data)+1, "%s", data);
printf("make_rfidchg [%s][%d]\n", data, strlen(data));
printf("make_rfidchg 2[%s][%d]\n", mkData, strlen(mkData));
WriteLog(LogType_StandardOut, LogLevel_Info, "DATA[%s][%d]\n", mkData, strlen(mkData));
sprintf(path, "%s/%s/IMMRFIDC_S", DIR_TCS, DIR_BASEINFO);
//unlink(path);
//isrc = Write_File_Char(mkData, strlen(mkData), path);
res = Add_Write_File_Char(data, strlen(data), spath);
return(res);
}

@ -0,0 +1,88 @@
/*
*========================================================================
*
* :
* : ft_ecblcng.pc
* : (baarong@neighbor21.co.kr)
* : 2019.08.13
* :
* :
*
*========================================================================
*/
#include <stdio.h>
#include <stdlib.h>
#include <errno.h>
#include <unistd.h>
#include "bef_mst.h"
#include "dir_path.h"
#include "file_no.h"
#include "file_lb.h"
#include "lb_func_list.h"
#include "func_list.h"
#include "util.h"
/*
*========================================================================
*
* : make_rfidmst
* : (baarong@neighbor21.co.kr)
* : 2019.08.13
* :
* : /
*
*========================================================================
*/
int make_rfidmst(unsigned int rcv, char *data)
{
char path[128], spath[128], tpath[128];
char mkData[MAX_STRING_SIZE + 1];
int isfd, isrc, errflg = 0;
memset(mkData, 0x00, sizeof(mkData));
snprintf(mkData, strlen(data)+1, "%s", data);
//printf("make_befmst [%d][%s][%d]\n", rcv, data, strlen(data));
//printf("make_befmst 2[%s][%d]\n", mkData, strlen(mkData));
//WriteLog(LogType_StandardOut, LogLevel_Info, "DATA[%s][%d]\n", mkData, strlen(mkData));
sprintf(path, "%s/%s/IMMRFID_S", DIR_TCS, DIR_BASEINFO);
//unlink(path);
if(rcv == 1)
{
sprintf(path, "%s/%s/IMMRFIDC", DIR_TCS, DIR_BASEINFO);
unlink(path);
sprintf(path, "%s/%s/IMMRFID_S", DIR_TCS, DIR_BASEINFO);
unlink(path);
isrc = Write_File_Char(mkData, strlen(mkData), path);
}
else
{
isrc = Add_Write_File_Char(mkData, strlen(mkData), path);
}
#if 0
/*------------------------------------------------------*/
/* OLD BEFMST ==> BEFMST_O */
/*------------------------------------------------------*/
sprintf(path, "%s/%s/BEFMST_O", DIR_TCS,DIR_BASEINFO);
unlink(path);
sprintf(spath, "%s/%s/BEFMST", DIR_TCS, DIR_BASEINFO);
sprintf(tpath, "%s/%s/BEFMST_O", DIR_TCS, DIR_BASEINFO);
lb_rename(spath, tpath);
/*------------------------------------------------------*/
/* NEW BEFMST_S ==> BEFMST */
/*------------------------------------------------------*/
sprintf(path, "%s/%s/BEFMST", DIR_TCS,DIR_BASEINFO);
unlink(path);
sprintf(spath, "%s/%s/BEFMST_S", DIR_TCS, DIR_BASEINFO);
sprintf(tpath, "%s/%s/BEFMST", DIR_TCS, DIR_BASEINFO);
lb_rename(spath, tpath);
#endif
return(isrc);
}

@ -0,0 +1,118 @@
/*
*========================================================================
*
* :
* : make_worker.c
* : (baarong@neighbor21.co.kr)
* : 2019.08.30
* :
* :
*
*========================================================================
*/
#include <stdio.h>
#include <stdlib.h>
#include <errno.h>
#include <unistd.h>
#include <iconv.h>
#include "wrkr_info.h"
#include "dir_path.h"
#include "file_no.h"
#include "file_lb.h"
#include "lb_func_list.h"
#include "func_list.h"
#include "util.h"
/*
*========================================================================
*
* : make_worker
* : (baarong@neighbor21.co.kr)
* : 2019.08.13
* :
* : ()
*
*========================================================================
*/
int make_worker(char *data)
{
char path[128], spath[128], tpath[128];
char mkData[MAX_STRING_SIZE*20];
int isfd, isrc, errflg = 0, nResult = 0;
size_t in_size;
size_t out_size;
size_t out_buf_left;
char orgData[MAX_STRING_SIZE*20];
char szCarNo[255+1];
char* in_buf;
char* out_buf;
memset(mkData, 0x00, sizeof(mkData));
#if 0
iconv_t ic = iconv_open("UTF-8", "EUC-KR");
if(ic == (iconv_t) -1)
{
WriteLog(LogType_StandardOut, LogLevel_Info, "###### Not Supported ICONV Code ###### \n");
}
snprintf(orgData, strlen(data)+1, "%s", data);
in_size = strlen(orgData);
out_size = sizeof(wchar_t) * in_size * 4;
in_buf = orgData;
out_buf = mkData;
out_buf_left = out_size;
nResult = iconv(ic, (char *)&in_buf, &in_size, (char *)&out_buf, &out_buf_left);
if(nResult == -1)
{
WriteLog(LogType_StandardOut, LogLevel_Info, "ICONV FAILED [%d]\n", nResult);
}
iconv_close(ic);
#else
snprintf(mkData, strlen(data)+1, "%s", data);
#endif
//printf("make_befmst [%d][%s][%d]\n", rcv, data, strlen(data));
//printf("make_befmst 2[%s][%d]\n", mkData, strlen(mkData));
//WriteLog(LogType_StandardOut, LogLevel_Info, "DATA[%s][%d]\n", mkData, strlen(mkData));
sprintf(tpath, "%s/%s/WRKERTBL_O", DIR_TCS, DIR_BASEINFO);
unlink(tpath);
sprintf(path, "%s/%s/WRKERTBL", DIR_TCS, DIR_BASEINFO);
//lb_rename(path, tpath);
sprintf(spath, "%s/%s/WRKERTBL_S", DIR_TCS, DIR_BASEINFO);
unlink(spath);
isrc = Write_File_Char(mkData, strlen(mkData), spath);
if(isrc == 0)
{
WriteLog(LogType_StandardOut, LogLevel_Info, "BASIC DATA CREATE[%d]\n", isrc);
//lb_rename(spath, path);
}
#if 1
struct wrkr_personal_info wrkr_tbl;
FILE *fp = NULL;
int i = 0;
fp = fopen(spath, "r+");
WriteLog(LogType_StandardOut, LogLevel_Info, "TEST 근무자파일 읽기 시작\n");
if(fp == NULL)
{
WriteLog(LogType_StandardOut, LogLevel_Info, "TEST 근무자파일 읽기 파일열기 실패\n");
}else
{
for( i = 0; i < 10; i++)
{
fread(&wrkr_tbl, sizeof(struct wrkr_personal_info), 1, fp);
WriteLog(LogType_StandardOut, LogLevel_Info, "##### wrkr_no[%.4s]\n", wrkr_tbl.wrkr_no);
WriteLog(LogType_StandardOut, LogLevel_Info, "##### wrkr_nm[%.10s]\n", wrkr_tbl.wrkr_nm);
}
WriteLog(LogType_StandardOut, LogLevel_Info, "------- END -------\n");
}
fclose(fp);
#endif
return(isrc);
}

Some files were not shown because too many files have changed in this diff Show More

Loading…
Cancel
Save