亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? bank_svr.c

?? 轉發交易接口
?? C
?? 第 1 頁 / 共 3 頁
字號:
static char sqla_program_id[162] = 
{
 0,42,68,65,75,65,73,65,66,65,78,75,95,83,86,82,50,65,108,71,
 77,68,74,89,48,49,49,49,49,32,50,32,0,8,69,66,67,83,32,32,
 32,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0
};

#include "sqladef.h"

static struct sqla_runtime_info sqla_rtinfo = 
{{'S','Q','L','A','R','T','I','N'}, sizeof(wchar_t), 0, {' ',' ',' ',' '}};


static const short sqlIsLiteral   = SQL_IS_LITERAL;
static const short sqlIsInputHvar = SQL_IS_INPUT_HVAR;


#line 1 "bank_svr.sqc"
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sql.h>
#include <sqlenv.h>
#include <sqlda.h>
#include <sqlca.h>
#include <sqlutil.h>
#include <db2ApiDf.h>
#include <ctype.h>

#include <sys/types.h>
#include <sys/socket.h>
#include <sys/uio.h>
#include <sys/file.h>
#include <sys/ioctl.h>
#include <sys/errno.h>
#include <sys/wait.h>
#include <netinet/in.h>
#include <sys/select.h>
#include <sys/signal.h>
#include <netdb.h>
#include <math.h>
#include <sys/stat.h>
#include <time.h>
#include <fcntl.h>
#include <unistd.h>

#include "public.h"
#include "dbpub.h"
#include "bankpack.h"


char localip[21];
int localport;
int TimeOut;


/*
EXEC SQL BEGIN DECLARE SECTION;
*/

#line 38 "bank_svr.sqc"

    char dbAlias[15];
    char user[128 + 1];
    char pswd[15];

/*
EXEC SQL END DECLARE SECTION;
*/

#line 42 "bank_svr.sqc"


void	sig_child();
void	sig_Terminate();

void kccx(int rcvSocket, REQHEAD *reqpack);

main()
{
	char tmpstr[128], msg[256];
	int	listenSocket;
	int 	ret , fromlen, forkint;
	struct	sockaddr_in from, server;
    	struct timeval timeout;

	if (ReadConfg("DATABASE", "DBALIAS", dbAlias, "acidb") < 0)
	{
		debugLog(__FILE__, __LINE__, "讀[DATABASE]DBALIAS fail");
		exit( -1);
    	}
    	if (ReadConfg("DATABASE", "USER", user, "acidbo") < 0)
    	{
		debugLog(__FILE__, __LINE__, "讀[DATABASE]USER fail");
        	exit( -1);
    	}
    	if (ReadConfg("DATABASE", "PASSWD", pswd, "") < 0)
    	{
		debugLog(__FILE__, __LINE__, "讀[DATABASE]PASSWD fail");
        	exit( -1);
    	}
    	if (ReadConfg("BANK_SVR", "LOCALIP", localip, "127.0.0.1") < 0)
    	{
		debugLog(__FILE__, __LINE__, "讀[BANK_SVR]LOCALIP fail");
        	exit( -1);
    	}
    	memset(tmpstr, 0x00, sizeof(tmpstr));
    	if (ReadConfg("BANK_SVR", "LOCALPORT", tmpstr, "8001") < 0)
    	{
		debugLog(__FILE__, __LINE__, "讀[BANK_SVR]LOCALPORT fail");
        	exit( -1);
    	}
    	localport = atoi(tmpstr);
    	memset(tmpstr, 0x00, sizeof(tmpstr));
    	if (ReadConfg("BANK_SVR", "TIMEOUT", tmpstr, "60") < 0)
    	{
		debugLog(__FILE__, __LINE__, "讀[BANK_SVR]TIMEOUT fail");
        	exit( -1);
    	}
    	TimeOut = atoi(tmpstr);

	signal( SIGCLD, sig_child );

	signal( SIGCLD, SIG_IGN );

	signal( SIGINT, sig_Terminate );

	signal( SIGQUIT, sig_Terminate );

	signal( SIGPIPE, sig_Terminate );

	signal( SIGTERM, sig_Terminate );

	signal( SIGUSR1, sig_Terminate );

	listenSocket = socket( AF_INET, SOCK_STREAM, 0 );

	if( listenSocket < 0 )

	{
		debugLog(__FILE__, __LINE__, "create listen socket fail.");
		exit( 1 );

	}

	server.sin_family = AF_INET;

	server.sin_addr.s_addr = htonl(INADDR_ANY);

	server.sin_port = htons( localport );

	if (bind( listenSocket, (struct sockaddr *)&server, sizeof(server)) < 0)
	{
		debugLog(__FILE__, __LINE__, "listen socket bind fail.");

		exit( 1 );

	}

	listen( listenSocket, 5 );

	debugLog(__FILE__, __LINE__, "bank_svr listen is running" );

	for(;;)
	{
		int 	rcvSocket;

		fromlen = sizeof(server);

	rcvSocket = accept( listenSocket, (struct sockaddr *)&from,(unsigned long*)&fromlen );
		if( rcvSocket < 0 )
		{
			debugLog(__FILE__, __LINE__, "Accept fail.");

			sleep(10000);

			continue;

		}

		if( ( forkint = fork() ) < 0 )
		{

			debugLog(__FILE__, __LINE__, "fork child process fail.");
			sleep(10000);
			close(rcvSocket);
			continue;
		}

		else if ( forkint == 0) 
		{
			char packlen[9];
			char jydm[7];
			int rcvlen, rlen, bodylen;
			fd_set fdr;
			REQHEAD reqpack;

			close( listenSocket );
            		FD_ZERO(&fdr);
            		FD_SET(rcvSocket, &fdr);
            		timeout.tv_sec = TimeOut;
            		timeout.tv_usec = 0;
			
            		rcvlen = select(rcvSocket + 1, &fdr, (fd_set *)0, (fd_set *)0, &timeout); 
            		if (rcvlen <= 0)
            		{
              		  	debugLog(__FILE__, __LINE__, "Receive timeout select = %-d", rcvlen);
              		  	close(rcvSocket);
                		exit(0);
            		}
            		rcvlen = read(rcvSocket, packlen, PACKLENLEN);
            		if (rcvlen != PACKLENLEN)
            		{
                		debugLog(__FILE__, __LINE__, "receive pack len error len = %-d", rcvlen);
                		close(rcvSocket);
                		exit(0);
            		}
            		memset(&reqpack, 0x00, sizeof(REQHEAD));
            		rcvlen = read(rcvSocket, &reqpack, atoi(packlen));
            		if (rcvlen < sizeof(REQHEAD) - 2048)  
            		{
                		debugLog(__FILE__, __LINE__, "receive pack error len = %-d", rcvlen);
                		close(rcvSocket);
                		exit(0);
            		}
            		rcvlen = sizeof(REQHEAD) - 2048; 
            		memcpy(jydm, reqpack.TIAFECODE, 6);
            		
            		if (memcmp(reqpack.TIAFECODE, "900000", 6) == 0)
            		{
				debugLog(__FILE__, __LINE__, "發卡機庫存查詢receive bank req jydm = %s bodylen = %-d", jydm, rcvlen);
				kccx(rcvSocket, &reqpack);
            		}
            		else
				debugLog(__FILE__, __LINE__, "receive unsupport pack");
			close(rcvSocket);
			exit(0);
		}
		else
		{
			close( rcvSocket );
		}
	}
}

void kccx(int rcvSocket, REQHEAD *reqpack)
{
	ANS_HEAD anspack;
  	struct sqlca sqlca;
  	char errorMsg[1024], snddata[4097];
  	int sndlen;
	int retcode;
	memset(snddata, 0x20, sizeof(snddata) - 1);
	snddata[sizeof(snddata) - 1] = 0x00;

	
/*
EXEC SQL BEGIN DECLARE SECTION;
*/

#line 226 "bank_svr.sqc"

		char termno[8]; /*自助機具號X(7)*/
  		long Records;
  		char lsh[32];
		char pc[32];     /*裝/清卡編號(批次號)X(15)*/
		char jgh[32];    /*機構號X(7)*/
		char gyh[32];    /*當前加卡柜員X(07)*/
		char jkks[32];     /*初始卡數	9(8)*/
		char yeks[32];     /*剩余卡數	9(8)*/
		char hsks[32];     /*回收卡數	9(8)*/
		char ffks[32];     /*成功發卡	9(8)*/
		char kyks[32];     /*可疑卡數	9(8)*/
  		char tmpstr[36];
	
/*
EXEC SQL END DECLARE SECTION;
*/

#line 239 "bank_svr.sqc"


	memset(termno, 0x00, sizeof(termno));
	memcpy(termno, reqpack->TIATRDATA, 7);
	Alltrim(termno);
	memset(pc, 0x00, sizeof(pc));
	memcpy(pc, reqpack->TIATRDATA + 7, 15);
	Alltrim(pc);
	
  	
/*
EXEC SQL SELECT sbdm
   	 INTO :tmpstr
   	 FROM jqxxzt
   	 WHERE id = :termno;
*/

/*
SQL0206N  "ID" is not valid in the context where it is 
used.  SQLSTATE=42703

*/

{
#line 251 "bank_svr.sqc"
  sqlastrt(sqla_program_id, &sqla_rtinfo, &sqlca);
#line 251 "bank_svr.sqc"
  sqlaaloc(2,1,1,0L);
    {
      struct sqla_setdata_list sql_setdlist[1];
#line 251 "bank_svr.sqc"
      sql_setdlist[0].sqltype = 460; sql_setdlist[0].sqllen = 8;
#line 251 "bank_svr.sqc"
      sql_setdlist[0].sqldata = (void*)termno;
#line 251 "bank_svr.sqc"
      sql_setdlist[0].sqlind = 0L;
#line 251 "bank_svr.sqc"
      sqlasetdata(2,0,1,sql_setdlist,NULL,0L);
    }
#line 251 "bank_svr.sqc"
  sqlaaloc(3,1,2,0L);
    {
      struct sqla_setdata_list sql_setdlist[1];
#line 251 "bank_svr.sqc"
      sql_setdlist[0].sqltype = 460; sql_setdlist[0].sqllen = 36;
#line 251 "bank_svr.sqc"
      sql_setdlist[0].sqldata = (void*)tmpstr;
#line 251 "bank_svr.sqc"
      sql_setdlist[0].sqlind = 0L;
#line 251 "bank_svr.sqc"
      sqlasetdata(3,0,1,sql_setdlist,NULL,0L);
    }
#line 251 "bank_svr.sqc"
  sqlacall((unsigned short)24,1,2,3,0L);
#line 251 "bank_svr.sqc"
  sqlastop(0L);
}

#line 251 "bank_svr.sqc"

  	if (sqlca.sqlcode == 100)                            
 	{                                                  
        	retcode = 1000; 
        	strcpy(snddata, "無該發卡機設備");
  	        debugLog(__FILE__, __LINE__, "庫存查詢,無該發卡機設備termno = %s", termno);
        	SendToBank(rcvSocket, retcode, strlen(snddata), snddata);
        	return;
  	}
  	else if (sqlca.sqlcode != 0)   
  	{
                SqlInfoGet(errorMsg, &sqlca);
  	        debugLog(__FILE__, __LINE__, "select sql false SQLCODE = [%-d]%s\n", sqlca.sqlcode, errorMsg);
        	retcode = abs(sqlca.sqlcode)%10000; 
        	strcpy(snddata, errorMsg);
        	SendToBank(rcvSocket, retcode, strlen(snddata), snddata);
  	        return;
  	}
  	
  	if(pc[0] == 0x00)  
  	{
  		
/*
EXEC SQL SELECT count(*)
   	 	 INTO :Records
   	 	 FROM dr_jqxxmx
   	 	 WHERE Iss21 = :termno;
*/

{
#line 275 "bank_svr.sqc"
  sqlastrt(sqla_program_id, &sqla_rtinfo, &sqlca);
#line 275 "bank_svr.sqc"
  sqlaaloc(2,1,3,0L);
    {
      struct sqla_setdata_list sql_setdlist[1];
#line 275 "bank_svr.sqc"
      sql_setdlist[0].sqltype = 460; sql_setdlist[0].sqllen = 8;
#line 275 "bank_svr.sqc"
      sql_setdlist[0].sqldata = (void*)termno;
#line 275 "bank_svr.sqc"
      sql_setdlist[0].sqlind = 0L;
#line 275 "bank_svr.sqc"
      sqlasetdata(2,0,1,sql_setdlist,NULL,0L);
    }
#line 275 "bank_svr.sqc"
  sqlaaloc(3,1,4,0L);
    {
      struct sqla_setdata_list sql_setdlist[1];
#line 275 "bank_svr.sqc"
      sql_setdlist[0].sqltype = 496; sql_setdlist[0].sqllen = 4;
#line 275 "bank_svr.sqc"
      sql_setdlist[0].sqldata = (void*)&Records;
#line 275 "bank_svr.sqc"
      sql_setdlist[0].sqlind = 0L;
#line 275 "bank_svr.sqc"
      sqlasetdata(3,0,1,sql_setdlist,NULL,0L);
    }
#line 275 "bank_svr.sqc"
  sqlacall((unsigned short)24,2,2,3,0L);
#line 275 "bank_svr.sqc"
  sqlastop(0L);
}

#line 275 "bank_svr.sqc"

   	}
   	else
  	{
  		
/*
EXEC SQL SELECT count(*)
   	 	 INTO :Records
   	 	 FROM dr_jqxxmx
   	 	 WHERE Iss21 = :termno and Iss3 = :pc;
*/

{
#line 282 "bank_svr.sqc"
  sqlastrt(sqla_program_id, &sqla_rtinfo, &sqlca);
#line 282 "bank_svr.sqc"
  sqlaaloc(2,2,5,0L);
    {
      struct sqla_setdata_list sql_setdlist[2];
#line 282 "bank_svr.sqc"
      sql_setdlist[0].sqltype = 460; sql_setdlist[0].sqllen = 8;
#line 282 "bank_svr.sqc"

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲欧美日韩国产综合| 天天操天天色综合| 国产一区二区日韩精品| 欧美福利电影网| 亚洲综合在线免费观看| 不卡av免费在线观看| 国产精品丝袜久久久久久app| 精品一区精品二区高清| 精品福利一二区| 国产精品影音先锋| 国产欧美va欧美不卡在线| 国产91对白在线观看九色| 中文字幕日韩一区二区| 91丝袜美腿高跟国产极品老师 | 精品美女一区二区三区| 奇米色一区二区| 国产丝袜欧美中文另类| 91麻豆免费观看| 亚洲一区视频在线| 欧美v国产在线一区二区三区| 国产精品夜夜嗨| 一区二区三区四区亚洲| 欧美一级国产精品| 成人黄色片在线观看| 水蜜桃久久夜色精品一区的特点 | 成人app下载| 五月天国产精品| 国产精品情趣视频| 日韩欧美资源站| 欧美日韩免费观看一区三区| 国产精品污www在线观看| 欧美丝袜丝交足nylons图片| 欧美成人一区二区| 欧美午夜在线观看| 懂色av中文字幕一区二区三区| 午夜精品久久久久久| 国产精品久久久久影视| 日韩精品专区在线影院观看| 色综合久久中文综合久久97| 久久99国产精品久久| 婷婷久久综合九色综合伊人色| 久久久av毛片精品| 日韩免费视频线观看| 欧美日韩情趣电影| 欧美亚洲高清一区| 在线免费av一区| 91蜜桃网址入口| 99re这里都是精品| 91片在线免费观看| av动漫一区二区| 99在线精品一区二区三区| 久久精品二区亚洲w码| 蜜臀精品一区二区三区在线观看| 亚洲bt欧美bt精品777| 天堂午夜影视日韩欧美一区二区| 亚洲一区二区综合| 日本一区中文字幕| 激情图区综合网| 国产mv日韩mv欧美| 91片黄在线观看| 欧美色综合影院| 欧美一区二区三区在线视频 | 欧美日本高清视频在线观看| 欧美视频一区二区三区四区| 91精品国产色综合久久不卡蜜臀| 欧美一区二区高清| 国产精品视频一区二区三区不卡| 国产精品国产馆在线真实露脸 | 91麻豆精品久久久久蜜臀| 久久网这里都是精品| 国产精品久久一级| 视频在线在亚洲| 成人中文字幕合集| 欧美成人精品二区三区99精品| 国产婷婷色一区二区三区四区 | 国产人妖乱国产精品人妖| 亚洲视频资源在线| 免费视频一区二区| 日本久久电影网| 亚洲欧洲av在线| 国产精品视频线看| 亚洲欧美综合色| 亚洲视频一区二区在线观看| 国产欧美一区二区三区网站| 国产精品成人午夜| 日韩欧美国产系列| 国产欧美精品一区二区色综合朱莉| 一区二区三区国产| 国产成人免费视频精品含羞草妖精| 欧美在线免费观看亚洲| 中文一区二区在线观看| 久久99最新地址| 欧美精品久久天天躁| 亚洲激情综合网| 一本大道久久精品懂色aⅴ| 欧美视频在线观看一区| 欧美精品一区二区三区在线| 丝袜美腿亚洲一区二区图片| 在线中文字幕一区| 国产精品美女久久久久aⅴ国产馆| 狠狠久久亚洲欧美| 日韩精品一区二区三区在线观看 | 91丨九色丨黑人外教| 国产精品久久久久久久裸模| 国产高清精品久久久久| 国产亚洲人成网站| 国产69精品久久777的优势| 国产丝袜在线精品| av电影天堂一区二区在线观看| 国产亚洲视频系列| 91丨porny丨国产入口| 亚洲色图.com| 欧美一区二区三区系列电影| 日本欧美一区二区三区乱码 | 99国内精品久久| 亚洲精品五月天| 日韩一区二区三区免费观看| 极品尤物av久久免费看| 国产精品久久久久一区二区三区共| caoporen国产精品视频| 性欧美大战久久久久久久久| 欧美一激情一区二区三区| 国产成人久久精品77777最新版本| 日韩一区在线看| 日韩精品中文字幕一区二区三区| 成人免费视频网站在线观看| 一区二区三区成人| 精品国产电影一区二区| 91麻豆福利精品推荐| 另类欧美日韩国产在线| 一区二区三区鲁丝不卡| 久久免费午夜影院| 欧美日韩国产美女| 97se狠狠狠综合亚洲狠狠| 久久99久久久久| 亚洲国产精品一区二区尤物区| 国产亚洲一区二区在线观看| 在线不卡中文字幕播放| 色999日韩国产欧美一区二区| 久久精品国产精品亚洲精品| 午夜精品福利在线| 亚洲精品中文在线影院| 国产精品久久久久aaaa樱花| 久久久蜜桃精品| 精品国产一二三| 91精品在线麻豆| 3d成人h动漫网站入口| 在线观看亚洲精品视频| 色吊一区二区三区| 色综合久久久久综合99| 99久久国产综合精品麻豆| 91年精品国产| 91国内精品野花午夜精品| 欧美在线免费视屏| 欧美一区二区视频在线观看| 欧美一区二区三区在线电影| 欧美一级专区免费大片| 日韩小视频在线观看专区| 久久嫩草精品久久久精品一| 国产欧美日韩亚州综合| 亚洲另类一区二区| 视频在线观看一区| 国产一区二区成人久久免费影院| 极品少妇xxxx精品少妇偷拍| 国产精品久久久久9999吃药| 日韩一区二区三区四区| 精品国产免费一区二区三区四区 | 中文字幕在线不卡| 视频一区二区三区在线| 美女视频黄 久久| 色视频欧美一区二区三区| 欧美一区二区三区思思人| 国产精品免费久久久久| 蜜臀av在线播放一区二区三区 | 色婷婷亚洲婷婷| 精品久久一区二区三区| 夜夜嗨av一区二区三区中文字幕| 免费成人小视频| 91精品国产全国免费观看| 在线播放国产精品二区一二区四区| 欧美性猛交xxxx黑人交| 91国内精品野花午夜精品| 欧美一级日韩免费不卡| 欧美国产在线观看| 亚洲私人黄色宅男| 麻豆精品在线视频| 九九精品一区二区| 欧美亚洲国产怡红院影院| 2021中文字幕一区亚洲| 亚洲午夜激情网页| 91视频xxxx| 国产精品免费视频一区| 精东粉嫩av免费一区二区三区| 欧美日韩一区二区三区在线| 亚洲欧美日韩精品久久久久| av在线不卡网| 亚洲欧美日韩小说| 95精品视频在线| 亚洲欧美中日韩| 欧美这里有精品|