/*----------------------------------------------------------------------
----------------------------------------------------------------------*/
-#define DRD64_FUNCID_Marshald_Cmd_AttachRequest_Scn5_RecvTranAttachReq 0x15
+#define DRD64_FUNCID_Marshald_Cmd_AttachRequest_Scn5 0x15
int
Drd64_Marshald_Cmd_AttachRequest_Scn5_RecvTranAttachReq(
int i_recv_id,
{
int i_wlen;
//int i_result;
+ DWord dw_errcode;
+ DWord dw_location;
int i_fds;
Drd64_Marshald_ConnectInfo *p_cinfo_client;
Drd64_Marshald_ConnectInfo *p_cinfo_self;
- DRD64_LOG_DEBUG(" [DEBUG]CMD: Attach Req. (Scn5:RecvTransAttachReq) Start");
+ DRD64_LOG_DEBUG(
+ " [DEBUG]CMD: Attach Req. (Scn5:RecvTransAttachReq) Start");
+
+ dw_errcode = DRD64_ERROR_CODE_CLEAR;
+ dw_location = DRD64_ERROR_SET_LOCATION(
+ DRD64_ERROR_MODULE_MARSHALD,
+ DRD64_ERROR_ARCH_NODEPEND,
+ DRD64_SRCID_MARSHALD_CMD_ATTACH_REQUEST,
+ DRD64_FUNCID_Marshald_Cmd_AttachRequest_Scn5 );
/* Phase 0 : Init ----------------------------*/
p_cinfo_client = Drd64_Marshald_CInfo_GetConnectInfo(
assert( NULL != p_cinfo_client );
i_fds = p_cinfo_client->i_src_socket;
+ assert( -1 < i_fds );
/* Phase 0 : Init ----------------------------*/
p_cinfo_self = Drd64_Marshald_CInfo_GetConnectInfo(
p_attachreq->i_cid_marshald );
+ assert( NULL != p_cinfo_self );
p_cinfo_self->i_dest_cinfo_id = p_attachreq->i_cid_debugd;
strncpy( p_cinfo_self->str_dest_addr_local,
p_cinfo_self->i_debugd_pid_real = p_attachreq->i_debugd_pid;
- //i_fds = Drd64_Server_RecvStatus_GetSocketID( i_recv_id );
- //assert( -1 != i_fds );
/* Set Answer Data ---------*/
//p_attach->i_cid = p_phead->i_cid_dest; //XXX
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) )
- { return DRD64_MARSHALD_DISPATCH_RESULT_CLOSE; } // XXX > error
+ if( i_wlen != DRD64_PacketSize(p_phead) ) {
+ dw_errcode = DRD64_ERROR_SET_CODE( DRD64_ERROR_TYPE_ERROR,
+ DRD64_ERROR_PTN_SOCKET, 0x00, 0x01 );
+ Drd64_LibBrownie_Error_SetErrorInfo(
+ dw_errcode, dw_location, errno );
+
+ /* NOT send for Error Packet ( because Socket Error ) */
+ return DRD64_MARSHALD_DISPATCH_RESULT_CLOSE;
+ }
- DRD64_LOG_DEBUG(" [DEBUG]CMD: Attach Req. (Scn5:RecvTransAttachReq) Ended");
+ DRD64_LOG_DEBUG(
+ " [DEBUG]CMD: Attach Req. (Scn5:RecvTransAttachReq) Ended");
return DRD64_MARSHALD_DISPATCH_RESULT_COMPLETE;
}
DRD64_DEBUG_PRINT("send",i_wlen,"FD",i_fds,"errno",errno);
if( i_wlen != DRD64_PacketSize(p_phead) ) {
- dw_errcode = DRD64_ERROR_SET_CODE(
- DRD64_ERROR_TYPE_ERROR,
- DRD64_ERROR_PTN_SOCKET,
- 0x00, 0x01 );
+ dw_errcode = DRD64_ERROR_SET_CODE( DRD64_ERROR_TYPE_ERROR,
+ DRD64_ERROR_PTN_SOCKET, 0x00, 0x01 );
Drd64_LibBrownie_Error_SetErrorInfo(
dw_errcode, dw_location, errno );
DRD64_ERROR_PTN_FUNCTION, 0x00, 0x01 );
Drd64_LibBrownie_Error_SetErrorInfo(
dw_errcode, dw_location, errno );
+ /* send answer */
}
DRD64_LOG_DEBUG(
/*----------------------------------------------------------------------
----------------------------------------------------------------------*/
-#define DRD64_FUNCID_Marshald_Cmd_AttachRequest_Scn3_TransAttachRequest 0x13
+#define DRD64_FUNCID_Marshald_Cmd_AttachRequest_Scn3 0x13
int
Drd64_Marshald_Cmd_AttachRequest_Scn3_TransAttachRequest(
int i_recv_id,
Drd64_Marshald_MasterInformation *p_marshald )
{
int i_err;
+ int i_result;
+ DWord dw_errcode;
+ DWord dw_location;
Drd64_Marshald_ConnectInfo *p_cinfo_dest;
Drd64_Marshald_ConnectInfo *p_cinfo_now;
Drd64_Marshald_ConnectInfo *p_cinfo_marshald;
DRD64_LOG_DEBUG(" [DEBUG]CMD: Attach Req. (Scn3:TransAttachReq.) Start");
+ i_result = DRD64_MARSHALD_DISPATCH_RESULT_CLOSE;
+ dw_errcode = DRD64_ERROR_CODE_CLEAR;
+ dw_location = DRD64_ERROR_SET_LOCATION(
+ DRD64_ERROR_MODULE_MARSHALD,
+ DRD64_ERROR_ARCH_NODEPEND,
+ DRD64_SRCID_MARSHALD_CMD_ATTACH_REQUEST,
+ DRD64_FUNCID_Marshald_Cmd_AttachRequest_Scn3 );
+
/* Phase 0 : Init ----------------------------*/
p_cinfo_dest = Drd64_Marshald_SearchINetConnection(
&(p_attachreq->t_prog_addr) );
assert( NULL != p_cinfo_marshald );
p_cinfo_now = Drd64_Marshald_CInfo_AllocConnectInfo();
- if( NULL == p_cinfo_now )
- { return 0x00; }
+ if( NULL == p_cinfo_now ) {
+ dw_errcode = DRD64_ERROR_SET_CODE( DRD64_ERROR_TYPE_ERROR,
+ DRD64_ERROR_PTN_NOMEMORY, 0x00, 0x01 );
+ Drd64_LibBrownie_Error_SetErrorInfo(
+ dw_errcode, dw_location, errno );
+ /* send answer */
+ return DRD64_MARSHALD_DISPATCH_RESULT_COMPLETE;
+ }
/* Phase 0 : Init ----------------------------*/
/* Phase 3-1 : Set ConnectInfo ---*/
/* Set p_cinfo_now->str_dest_addr_local is Scn5 */
p_cinfo_now->p_dest_cinfo_connection = p_cinfo_dest;
- Drd64_LibBrownie_INetAddr_SetInAddr_LocalHost(
+ i_err = Drd64_LibBrownie_INetAddr_SetInAddr_LocalHost(
&(p_cinfo_now->t_src_addr_inet) );
+ if( 0x00 != i_err ) {
+ dw_errcode = DRD64_ERROR_SET_CODE( DRD64_ERROR_TYPE_ERROR,
+ DRD64_ERROR_PTN_INETADDR, 0x00, 0x02 );
+ Drd64_LibBrownie_Error_SetErrorInfo(
+ dw_errcode, dw_location, errno );
+ Drd64_Marshald_Cinfo_FreeConnectInfo( p_cinfo_now );
+ /* send answer */
+ return DRD64_MARSHALD_DISPATCH_RESULT_COMPLETE;
+ }
+
p_cinfo_now->i_src_cinfo_id = DRD64_CONNECTID_NONE;
p_cinfo_now->i_src_socket
= Drd64_Server_RecvStatus_GetSocketID( i_recv_id );
DRD64_PacketSize(p_phead), 0x00 );
DRD64_DEBUG_PRINT("send",i_err,"FD",p_cinfo_dest->i_dest_socket,"errno",errno);
if( i_err != DRD64_PacketSize(p_phead) ) {
- return 0x02;
+ dw_errcode = DRD64_ERROR_SET_CODE( DRD64_ERROR_TYPE_ERROR,
+ DRD64_ERROR_PTN_SOCKET, 0x00, 0x03 );
+ Drd64_LibBrownie_Error_SetErrorInfo(
+ dw_errcode, dw_location, errno );
+ Drd64_Marshald_Cinfo_FreeConnectInfo( p_cinfo_now );
+ /* NOT send Error Answer Packet because socket error */
+ return DRD64_MARSHALD_DISPATCH_RESULT_CLOSE;
}
/*Drd64_Server_RecvStatus_SetCmdStatus( i_recv_id,