From 0959b97369687d89e335c1c9d1d84506928a03d2 Mon Sep 17 00:00:00 2001 From: koinec <> Date: Sun, 21 Feb 2010 12:12:00 +0000 Subject: [PATCH] *** empty log message *** --- deamon/Makefile | 7 ++ deamon/drd64_debugd_dispatch.c | 4 +- deamon/drd64_debugd_send_cmd_bootinfo.c | 2 +- deamon/drd64_marshald_cinfo.c | 24 ++++++ deamon/drd64_marshald_cinfo.h | 6 ++ deamon/drd64_marshald_cmd_attach_link.c | 101 ++++++++++++++++++++++ deamon/drd64_marshald_cmd_attach_request.c | 7 +- deamon/drd64_marshald_connect_debugd.c | 108 ++++++++++++++++++++++++ deamon/drd64_marshald_dispatch.c | 6 +- deamon/drd64_marshald_send_connect.c | 3 +- deamon/drd64_server_socket.c | 130 ----------------------------- include/drd64_packet.h | 8 +- libdrd64/drd64_libdrd64_cmd_disconnect.c | 9 -- libdrd64/drd64_libdrd64_packet.c | 2 +- 14 files changed, 261 insertions(+), 156 deletions(-) create mode 100644 deamon/drd64_marshald_connect_debugd.c diff --git a/deamon/Makefile b/deamon/Makefile index 4d0acdd..5e1e074 100644 --- a/deamon/Makefile +++ b/deamon/Makefile @@ -92,6 +92,7 @@ MARSHALD_OBJS = drd64_marshald_main.o \ drd64_marshald_cmd_attach_link.o \ drd64_marshald_msg_bootinfo.o \ drd64_marshald_send_connect.o \ + drd64_marshald_connect_debugd.o \ drd64_common_function.o \ $(SERVER_OBJS) MARSHALD_HEADER = drd64_marshald.h \ @@ -174,6 +175,12 @@ drd64_marshald_msg_bootinfo.o: drd64_marshald_msg_bootinfo.c $(MARSHALD_HEADER) drd64_marshald_send_connect.o: drd64_marshald_send_connect.c $(MARSHALD_HEADER) $(CC) -c -o drd64_marshald_send_connect.o $(FLAGS_DEBUG) drd64_marshald_send_connect.c +drd64_marshald_connect_debugd.o: \ + drd64_marshald_connect_debugd.c \ + $(MARSHALD_HEADER) + $(CC) -c -o drd64_marshald_connect_debugd.o $(FLAGS_DEBUG) \ + drd64_marshald_connect_debugd.c + # # diff --git a/deamon/drd64_debugd_dispatch.c b/deamon/drd64_debugd_dispatch.c index 747fa31..cc1c680 100644 --- a/deamon/drd64_debugd_dispatch.c +++ b/deamon/drd64_debugd_dispatch.c @@ -130,9 +130,9 @@ int /* Phase 3 : Result Proc. =======================*/ if( DRD64_DEBUGD_DISPATCH_RESULT_RESTART == i_result ) { - if( -1 < p_phead->i_resume_recvstatus_id ) { + if( -1 < p_phead->i_rid_resume ) { p_recv_parent = Drd64_Server_RecvStatus_GetRecvStatus( - p_phead->i_resume_recvstatus_id ); + p_phead->i_rid_resume ); assert( NULL != p_recv_parent ); p_recv_parent->b_recv_status diff --git a/deamon/drd64_debugd_send_cmd_bootinfo.c b/deamon/drd64_debugd_send_cmd_bootinfo.c index 725d47e..aafadfb 100644 --- a/deamon/drd64_debugd_send_cmd_bootinfo.c +++ b/deamon/drd64_debugd_send_cmd_bootinfo.c @@ -59,7 +59,7 @@ int p_phead->dw_command = DRD64_COMMAND_DEBUGD_BOOTINFO; p_phead->w_packettype = DRD64_PACKETTYPE_REPORT; p_phead->i_datalen = 0; - p_phead->i_resume_recvstatus_id = i_request_fd; + p_phead->i_rid_resume = i_request_fd; p_phead->i_result = 0x00; p_phead->i_error = 0x00; diff --git a/deamon/drd64_marshald_cinfo.c b/deamon/drd64_marshald_cinfo.c index 67f072d..e7948bd 100644 --- a/deamon/drd64_marshald_cinfo.c +++ b/deamon/drd64_marshald_cinfo.c @@ -69,6 +69,30 @@ Drd64_Marshald_ConnectInfo * EXTERN_MARSHALD_CINFO Drd64_Marshald_ConnectInfo * + Drd64_Marshald_Search_DebugdConnection( + int i_prog_pid ) +{ + int i_cnt; + Drd64_Marshald_ConnectInfo *p_cinfo; + + p_cinfo = NULL; + + for( i_cnt = 0; i_cnt < gi_marshald_cinfo_now; i_cnt++ ) { + p_cinfo = (gp_marshald_cinfo + i_cnt); + + if( DRD64_MARSHALD_CINFOTYPE_DEBUGD + == p_cinfo->b_cinfo_type ) { + if( i_prog_pid == p_cinfo->i_prog_pid ) + { return p_cinfo; } + } + } + + return NULL; +} + + +EXTERN_MARSHALD_CINFO +Drd64_Marshald_ConnectInfo * Drd64_Marshald_CInfo_GetConnectInfo( int i_cinfo_id ) { diff --git a/deamon/drd64_marshald_cinfo.h b/deamon/drd64_marshald_cinfo.h index 03d03d9..679268a 100644 --- a/deamon/drd64_marshald_cinfo.h +++ b/deamon/drd64_marshald_cinfo.h @@ -42,6 +42,7 @@ Comment: #define DRD64_MARSHALD_CINFOTYPE_SERVER 0x01 #define DRD64_MARSHALD_CINFOTYPE_DEBUG 0x02 #define DRD64_MARSHALD_CINFOTYPE_CLIENT 0x03 +#define DRD64_MARSHALD_CINFOTYPE_DEBUGD 0x21 //#define DRD64_MARSHALD_CINFOSTATUS_READ 0x00 //#define DRD64_MARSHALD_CINFOSTATUS_CONNECT 0x01 @@ -102,6 +103,11 @@ EXTERN_MARSHALD_CINFO EXTERN_MARSHALD_CINFO Drd64_Marshald_ConnectInfo * + Drd64_Marshald_Search_DebugdConnection( + int i_prog_pid ); + +EXTERN_MARSHALD_CINFO + Drd64_Marshald_ConnectInfo * Drd64_Marshald_CInfo_GetConnectInfo( int i_cinfo_id ); diff --git a/deamon/drd64_marshald_cmd_attach_link.c b/deamon/drd64_marshald_cmd_attach_link.c index 4c61ec7..a378192 100644 --- a/deamon/drd64_marshald_cmd_attach_link.c +++ b/deamon/drd64_marshald_cmd_attach_link.c @@ -36,6 +36,97 @@ Comment: #include"drd64_marshald.h" +/*---------------------------------------------------------------------- +----------------------------------------------------------------------*/ +int + Drd64_Marshald_Cmd_AttachLink_Answer( + int i_recv_id, + Drd64_PacketHeader *p_phead, + Drd64_PacketData_AttachLink *p_alink, + Drd64_Marshald_MasterInformation *p_marshald ) +{ + int i_result; + int i_err; + Drd64_Marshald_ConnectInfo *p_cinfo; + Drd64_Marshald_ConnectInfo *p_cinfo_debugd; + + DRD64_LOG_DEBUG(" [DEBUG]CMD: Attach Link (Answer) Start"); + + i_result = DRD64_MARSHALD_DISPATCH_RESULT_COMPLETE; + + p_phead->i_cid_dest = p_phead->i_cid_client; + + /* [Phase 0] Init.(Get Debug Connect Info.) ========*/ + p_cinfo = Drd64_Marshald_CInfo_GetConnectInfo( p_phead->i_cid_dest ); + assert( NULL != p_cinfo ); + + + /* [Phase 2] Relay Attach-Link Packet for Debugd ===*/ + p_phead->w_packettype ^= DRD64_PACKETTYPE_FLAG_RELAY; + + i_err = send( p_cinfo->i_client_socket, (void *)p_phead, + DRD64_PacketSize(p_phead), 0x00 ); + DRD64_DEBUG_PRINT("send",i_err,"FD",p_cinfo_debugd->i_dest_socket,"errno",errno); + if( i_err != DRD64_PacketSize(p_phead) ) { return 0x02; } + + + DRD64_LOG_DEBUG(" [DEBUG]CMD: Attach Link (Answer) Ended"); + + return i_result; +} + +/*---------------------------------------------------------------------- +----------------------------------------------------------------------*/ +int + Drd64_Marshald_Cmd_AttachLink_Request( + int i_recv_id, + Drd64_PacketHeader *p_phead, + Drd64_PacketData_AttachLink *p_alink, + Drd64_Marshald_MasterInformation *p_marshald ) +{ + int i_result; + int i_err; + Drd64_Marshald_ConnectInfo *p_cinfo_now; + Drd64_Marshald_ConnectInfo *p_cinfo_debugd; + + DRD64_LOG_DEBUG(" [DEBUG]CMD: Attach Link (Request) Start"); + + i_result = DRD64_MARSHALD_DISPATCH_RESULT_COMPLETE; + + /* [Phase 0] Init.(Get Debug Connect Info.) ========*/ + p_cinfo_now = Drd64_Marshald_CInfo_GetConnectInfo( p_phead->i_cid_dest ); + assert( NULL != p_cinfo_now ); + + /* [Phase 1] Create UNIX-Sokcet for Debugd =========*/ + p_cinfo_debugd = Drd64_Marshald_Connect_Debugd( + p_alink->str_debugd_sockname, + p_cinfo_now->i_prog_pid, + p_cinfo_now->i_debugd_pid ); + if( NULL == p_cinfo_debugd ) { + return i_result; + } + + p_cinfo_now->i_debugd_socket = p_cinfo_debugd->i_dest_socket; + p_cinfo_now->i_client_socket + = Drd64_Server_RecvStatus_GetSocketID( i_recv_id ); + assert( -1 != p_cinfo_now->i_client_socket ); + + /* [Phase 2] Relay Attach-Link Packet for Debugd ===*/ + p_phead->w_packettype |= DRD64_PACKETTYPE_FLAG_RELAY; + p_phead->i_cid_client = p_phead->i_cid_dest; + p_phead->i_cid_dest = DRD64_CONNECTID_NONE; + p_phead->i_cid_src = p_cinfo_debugd->i_cinfo_id; + + i_err = send( p_cinfo_debugd->i_dest_socket, (void *)p_phead, + DRD64_PacketSize(p_phead), 0x00 ); + DRD64_DEBUG_PRINT("send",i_err,"FD",p_cinfo_debugd->i_dest_socket,"errno",errno); + if( i_err != DRD64_PacketSize(p_phead) ) { return 0x02; } + + + DRD64_LOG_DEBUG(" [DEBUG]CMD: Attach Link (Request) Ended"); + + return i_result; +} /*---------------------------------------------------------------------- @@ -48,11 +139,21 @@ int Drd64_Marshald_MasterInformation *p_marshald ) { int i_result; + int i_cmd_status; + Byte b_packet_status; DRD64_LOG_VERBOSE("[STAT]CMD: Attach Link Start"); i_result = DRD64_MARSHALD_DISPATCH_RESULT_COMPLETE; + if( DRD64_IsPacketType_Answer( p_phead ) ) { + i_result = Drd64_Marshald_Cmd_AttachLink_Answer( + i_recv_id, p_phead, p_alink, p_marshald ); + } + else { + i_result = Drd64_Marshald_Cmd_AttachLink_Request( + i_recv_id, p_phead, p_alink, p_marshald ); + } DRD64_LOG_VERBOSE("[STAT]CMD: Attach Link Ended"); diff --git a/deamon/drd64_marshald_cmd_attach_request.c b/deamon/drd64_marshald_cmd_attach_request.c index 7283308..efa726f 100644 --- a/deamon/drd64_marshald_cmd_attach_request.c +++ b/deamon/drd64_marshald_cmd_attach_request.c @@ -121,8 +121,6 @@ int i_fds = p_cinfo->i_src_socket; i_wlen = send( i_fds, (void *)p_phead, DRD64_PacketSize(p_phead), 0x00 ); - /*i_wlen = send( i_fds, (void *)p_phead, - DRD64_PacketSize(p_phead), 0x00 );*/ DRD64_DEBUG_PRINT("send",i_wlen,"FD",i_fds,"errno",errno); if( i_wlen != DRD64_PacketSize(p_phead) ) @@ -190,8 +188,7 @@ int &(p_attachreq->t_prog_addr) ); assert( NULL != p_cinfo ); - //p_phead->w_packettype = DRD64_PACKETTYPE_TRANSPORT; - p_phead->w_packettype |= DRD64_PACKETTYPE_FLAG_RELAY; + p_phead->w_packettype |= DRD64_PACKETTYPE_FLAG_TRANSPORT; //p_phead->i_resume_recvstatus_id = i_recv_id; p_phead->i_cid_client = p_phead->i_cid_dest; p_phead->i_cid_dest = p_cinfo->i_dest_cinfo_id; @@ -319,7 +316,7 @@ int &(p_cinfo_now->t_client_addr_inet), &(p_cinfo_marshald->t_client_addr_inet) ); p_cinfo_now->i_client_socket = -1; - /* Set i_debugd_socket Value is AttachLink Phase */ + /* Set i_client_socket Value is AttachLink Phase */ p_cinfo_now->i_client_pid = p_cinfo_marshald->i_client_pid; /* Phase 3-2 : Set Attach Request Struct Answer data */ diff --git a/deamon/drd64_marshald_connect_debugd.c b/deamon/drd64_marshald_connect_debugd.c new file mode 100644 index 0000000..36df67f --- /dev/null +++ b/deamon/drd64_marshald_connect_debugd.c @@ -0,0 +1,108 @@ +/*DrDeAmOn64DrDeAmOn64DrDeAmOn64DrDeAmOn64DrDeAmOn64DrDeAmOn64DrDeAmOn64 + + D r . D e a m o n 6 4 + for INTEL64(R), AMD64(R) + + Copyright(C) 2007-2009 Koine Yuusuke(koinec). All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + + 1. Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + 2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY Koine Yuusuke(koinec) ``AS IS'' AND ANY +EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL Koine Yuusuke(koinec) OR CONTRIBUTORS BE +LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED +OF THE POSSIBILITY OF SUCH DAMAGE. + +DrDeAmOn64DrDeAmOn64DrDeAmOn64DrDeAmOn64DrDeAmOn64DrDeAmOn64DrDeAmOn64*/ + +/* File Info ----------------------------------------------------------- +File: drd64_.c +Function: +Comment: +----------------------------------------------------------------------*/ + +#include"drd64_marshald.h" + + +/*---------------------------------------------------------------------- +----------------------------------------------------------------------*/ +Drd64_Marshald_ConnectInfo * + Drd64_Marshald_Connect_Debugd( + char *pstr_socketname_debugd, + int i_prog_pid, + int i_debugd_pid ) +{ + int i_err; + int i_wlen; + int i_socket; + Drd64_PacketHeader *p_phead; + Drd64_PacketData_Connect *p_connect; + Drd64_Marshald_ConnectInfo *p_cinfo; + Drd64_Server_RecvStatus *p_recv; + + DRD64_LOG_DEBUG(" [DEBUG]SEND: Connect Cmd (for Debugd) Start"); + + /* Phase 1 : Check Exist Same-Connection */ + p_cinfo = Drd64_Marshald_Search_DebugdConnection( i_prog_pid ); + if( NULL != p_cinfo ) { + p_cinfo->i_cinfo_refcount++; + + DRD64_LOG_DEBUG(" [DEBUG]SEND: Connect Cmd (for Debugd) Exit"); + + return p_cinfo; + } + + /* Phase 3 : Create INet-Marshald Socket ------*/ + i_socket = Drd64_LibBrownie_Socket_InitSocketClient_Local( + pstr_socketname_debugd ); + if( 0 > i_socket ) { return NULL; } + + /* Phase 2 : Init & Set Packet Data ----------*/ + p_cinfo = Drd64_Marshald_CInfo_AllocConnectInfo(); + if( NULL == p_cinfo ) { return NULL; } + + /* Phase 5 : Set Cinfo Data ------------------*/ + p_cinfo->b_cinfo_type = DRD64_MARSHALD_CINFOTYPE_DEBUGD; + p_cinfo->i_cinfo_refcount = 1; + + Drd64_LibBrownie_INetAddr_SetInAddr_LocalHost( + &(p_cinfo->t_dest_addr_inet) ); + p_cinfo->i_dest_cinfo_id = -1; + p_cinfo->i_dest_socket = i_socket; + strncpy( p_cinfo->str_dest_addr_local, + pstr_socketname_debugd, DRD64_MAX_PATH ); + + /* p_cinfo->t_src_addr_inet = NONE */ + p_cinfo->i_src_cinfo_id = -1; + p_cinfo->i_src_socket = -1; + + /* t_prog_addr_inet = NONE */ + p_cinfo->i_prog_pid = i_prog_pid; + + p_cinfo->i_debugd_pid = i_debugd_pid; + p_cinfo->i_debugd_socket = i_socket; + + /* p_cinfo->t_client_addr_inet = NONE */ + p_cinfo->i_client_socket = -1; + p_cinfo->i_client_pid = -1; + + DRD64_LOG_DEBUG(" [DEBUG]SEND: Connect Cmd (for Debugd) Ended"); + + return p_cinfo; +} + + +/* EOF of drd64_.c ----------------------------------- */ diff --git a/deamon/drd64_marshald_dispatch.c b/deamon/drd64_marshald_dispatch.c index ed4c900..dc4eed5 100644 --- a/deamon/drd64_marshald_dispatch.c +++ b/deamon/drd64_marshald_dispatch.c @@ -154,9 +154,9 @@ int /* Phase 3 : Result Proc. =======================*/ if( DRD64_MARSHALD_DISPATCH_RESULT_RESTART == i_result ) { - if( -1 < p_phead->i_resume_recvstatus_id ) { + if( -1 < p_phead->i_rid_resume ) { p_recv_parent = Drd64_Server_RecvStatus_GetRecvStatus( - p_phead->i_resume_recvstatus_id ); + p_phead->i_rid_resume ); assert( NULL != p_recv_parent ); p_recv_parent->b_recv_status @@ -221,7 +221,7 @@ int /* Check 2: Standart Packet Header Check */ /* XXX : NO implement */ - /* Check 4: Transport Packet? */ + /* Check 4: Relay Debugd-Cmd Packet? */ /* Push Readed Command Packet for Resume Pool */ Drd64_Server_RecvStatus_DeleteSocketsChain( p_recv ); diff --git a/deamon/drd64_marshald_send_connect.c b/deamon/drd64_marshald_send_connect.c index 14f60c4..ed74a31 100644 --- a/deamon/drd64_marshald_send_connect.c +++ b/deamon/drd64_marshald_send_connect.c @@ -76,10 +76,9 @@ Drd64_Marshald_ConnectInfo * p_phead->i_cid_dest = DRD64_CONNECTID_NONE; p_phead->i_cid_src = DRD64_CONNECTID_NONE; p_phead->dw_command = DRD64_COMMAND_CONNECT; - //p_phead->w_packettype = DRD64_PACKETTYPE_REQUEST; p_phead->w_packettype = DRD64_PACKETTYPE_LINK; p_phead->i_datalen = sizeof( Drd64_PacketData_Connect ); - p_phead->i_resume_recvstatus_id = i_recv_id; + p_phead->i_rid_resume = i_recv_id; p_phead->i_result = 0x00; p_phead->i_error = 0x00; diff --git a/deamon/drd64_server_socket.c b/deamon/drd64_server_socket.c index 624ad3f..09178c2 100644 --- a/deamon/drd64_server_socket.c +++ b/deamon/drd64_server_socket.c @@ -99,134 +99,4 @@ int } -/* -int - Drd64_Server_Socket_InitSocket_Local( - const char *pstr_addr ) -{ - int i_socket_local; - int i_err; - struct sockaddr_un t_sun; - - i_socket_local = socket( PF_LOCAL, SOCK_STREAM, 0 ); - if( -1 == i_socket_local ) - { return -1; } - - unlink( pstr_addr ); - - memset( &t_sun, 0x00, sizeof( struct sockaddr_un ) ); - - t_sun.sun_family = AF_UNIX; - strcpy( t_sun.sun_path, pstr_addr ); - - i_err = bind( i_socket_local, - (struct sockaddr *)&t_sun, - SUN_LEN( &t_sun ) ); - if( i_err == -1 ) { return -3; } - - i_err = listen( i_socket_local, SOMAXCONN ); - if( i_err == -1 ) { return -4; } - - return i_socket_local; -} -*/ - -/* -int - Drd64_Server_Socket_InitSocket_INet( - const char *pstr_addr, - u_short us_port ) -{ - int i_socket_inet; - int i_err; - int i_flag; - struct sockaddr_in t_sin; - - i_socket_inet = socket( PF_INET, SOCK_STREAM, 0 ); - if( -1 == i_socket_inet ) - { return -1; } - - memset( &t_sin, 0x00, sizeof( struct sockaddr_in ) ); - - t_sin.sin_family = AF_INET; - t_sin.sin_port = htons( us_port ); - if( !strcmp( pstr_addr, "INADDR_ANY" ) ) { - t_sin.sin_addr.s_addr = htonl( INADDR_ANY ); - } - else { - t_sin.sin_addr.s_addr = inet_addr( pstr_addr ); - if( INADDR_NONE == t_sin.sin_addr.s_addr ) { return -2; } - } - - i_flag = 1; - i_err = setsockopt(i_socket_inet, IPPROTO_TCP, TCP_NODELAY, - (char *)&i_flag, sizeof(int)); - if( 0 > i_err ) { puts("opt err"); return -1;} - - i_err = bind( i_socket_inet, - (struct sockaddr *)&t_sin, - sizeof( struct sockaddr_in ) ); - if( i_err == -1 ) { return -3; } - - i_err = listen( i_socket_inet, SOMAXCONN ); - if( i_err == -1 ) { return -4; } - - return i_socket_inet; -} -*/ -/* -int - Drd64_Server_Socket_InitSocket_Local_Client( - const char *pstr_socket ) -{ - int i_err; - int i_socket_local; - //struct sockaddr_in t_sin; - struct sockaddr_un t_sun; - - i_socket_local = socket( PF_LOCAL, SOCK_STREAM, 0x00 ); - if( -1 == i_socket_local ) { return -1; } - - t_sun.sun_family = AF_UNIX; - strcpy( t_sun.sun_path, pstr_socket ); - - i_err = connect( i_socket_local, &t_sun, SUN_LEN( &t_sun ) ); - if( -1 == i_err ) { return -1; } - - return i_socket_local; -} -*/ -/* -int - Drd64_Server_Socket_InitSocketClient_INet( - struct in_addr *p_addr, - u_short us_port ) -{ - int i_err; - int i_socket_inet; - struct sockaddr_in t_sin; - int i_flag; - - - i_socket_inet = socket( PF_INET, SOCK_STREAM, 0x00 ); - if( -1 == i_socket_inet ) { return -1; } - - memset( &t_sin, 0x00, sizeof( struct sockaddr_in ) ); - - t_sin.sin_family = AF_INET; - Drd64_Server_INetAddr_CopyInAddr( &t_sin.sin_addr, p_addr ); - t_sin.sin_port = htons( us_port ); - - i_flag = 1; - i_err = setsockopt(i_socket_inet, IPPROTO_TCP, TCP_NODELAY, - (char *)&i_flag, sizeof(int)); - if( 0 > i_err ) { puts("opt err"); return -1;} - - i_err = connect( i_socket_inet, &t_sin, sizeof( struct sockaddr_in ) ); - if( -1 == i_err ) { return -1; } - - return i_socket_inet; -} -*/ - /* EOF of drd64_.c ----------------------------------- */ diff --git a/include/drd64_packet.h b/include/drd64_packet.h index 9599011..d91061f 100644 --- a/include/drd64_packet.h +++ b/include/drd64_packet.h @@ -62,6 +62,7 @@ Comment: //#define DRD64_PACKETTYPE_TRANSPORT 0x0002 //#define DRD64_PACKETTYPE_ANSWER 0x0003 //#define DRD64_PACKETTYPE_INFO 0x0004 +#define DRD64_PACKETTYPE_MASK_TYPE 0x00ff #define DRD64_PACKETTYPE_DEBUG 0x0001 #define DRD64_PACKETTYPE_CONTROL 0x0002 #define DRD64_PACKETTYPE_LINK 0x0003 @@ -69,12 +70,13 @@ Comment: #define DRD64_PACKETTYPE_FLAG_REQUEST 0x0000 /* Bit 0x0100 is OFF */ #define DRD64_PACKETTYPE_FLAG_ANSWER 0x0100 /* Bit 0x0100 is ON */ -#define DRD64_PACKETTYPE_FLAG_RELAY 0x0200 -#define DRD64_PACKETTYPE_FLAG_TRANSPORT 0x0400 +#define DRD64_PACKETTYPE_FLAG_TRANSPORT 0x0200 +#define DRD64_PACKETTYPE_FLAG_RELAY 0x0400 #define DRD64_CONNECTID_NONE -1 #define DRD64_IsPacketType_Answer(n) ((Word)((Word)DRD64_PACKETTYPE_FLAG_ANSWER&(Word)((n)->w_packettype))==DRD64_PACKETTYPE_FLAG_ANSWER) +#define DRD64_IsPacketBaseType(m,n) ((Word)((Word)DRD64_PACKETTYPE_MASK_TYPE&((m)->w_packettype))==(n)) typedef struct { /* Headers */ @@ -90,7 +92,7 @@ typedef struct { DWord dw_command; Word w_packettype; INT i_datalen; - INT i_resume_recvstatus_id; + INT i_rid_resume; /* resume_recvstatus_id */ /* Answer */ INT i_result; diff --git a/libdrd64/drd64_libdrd64_cmd_disconnect.c b/libdrd64/drd64_libdrd64_cmd_disconnect.c index 8777878..e3038ee 100644 --- a/libdrd64/drd64_libdrd64_cmd_disconnect.c +++ b/libdrd64/drd64_libdrd64_cmd_disconnect.c @@ -59,15 +59,6 @@ int DRD64_COMMAND_DISCONNECT, 0 ); - /*p_phead->w_header = DRD64_PACKET_HEADER; - p_phead->i_cid_dest = drd64_libdrd64_minfo.i_marshald_connectid; - p_phead->dw_command = DRD64_COMMAND_DISCONNECT; - p_phead->w_packettype = DRD64_PACKETTYPE_REQUEST; - p_phead->i_resume_recvstatus_id = -1; - p_phead->i_result = 0x00; - p_phead->i_error = 0x00; - p_phead->i_datalen = 0;*/ - /* Request Attach */ i_err = Drd64_LibDrd64_Packet_SendPacket( drd64_libdrd64_minfo.i_marshald_socket, diff --git a/libdrd64/drd64_libdrd64_packet.c b/libdrd64/drd64_libdrd64_packet.c index 976fa73..5dadf4a 100644 --- a/libdrd64/drd64_libdrd64_packet.c +++ b/libdrd64/drd64_libdrd64_packet.c @@ -52,7 +52,7 @@ int p_phead->dw_command = dw_command; p_phead->w_packettype = w_packettype; p_phead->i_datalen = i_datalen; - p_phead->i_resume_recvstatus_id = -1; + p_phead->i_rid_resume = -1; p_phead->i_result = 0x00; p_phead->i_error = 0x00; -- 2.11.0