return -2;
}
- Drd64_Server_RecvStatus_InitRecvStatus( p_recv );
+ Drd64_Server_RecvStatus_InitRecvStatus( p_recv, i_socket_new );
Drd64_Server_RecvStatus_AddSocketsChain( p_recv );
return i_socket_new;
p_recv_new = Drd64_Server_RecvStatus_GetRecvStatus( i_fds );
assert( NULL != p_recv_new );
- Drd64_Server_RecvStatus_InitRecvStatus( p_recv_new );
+ Drd64_Server_RecvStatus_InitRecvStatus( p_recv_new, p_recv->i_fds_id );
Drd64_Server_RecvStatus_AddSocketsChain( p_recv_new );
/* Exec Packet by Command-Code */
{
fd_set fds_now;
int i_cnt;
+ int i_socket;
int i_result;
int i_err;
int i_pid;
int i_selects;
int i_resume_flag;
- int i_socket_new;
+ //int i_socket_new;
int i_selects_base;
int i_selects_max;
int i_selects_last;
//int i_socket_server;
Drd64_Server_RecvStatus *p_recv;
- Drd64_Server_RecvStatus *p_recv_resume;
+ //Drd64_Server_RecvStatus *p_recv_resume;
struct timeval tmval;
FD_ZERO( &g_fds_orig );
}
i_resume_flag = 0x00;
- for( i_cnt = 0;
- ((i_cnt < i_selects_max) && (0 < i_selects ));
- i_cnt++ ) {
-
+ p_recv = Drd64_Server_RecvStatus_GetSocketsChainStart();
+ while(( NULL != p_recv ) && ( 0 < i_selects )) {
/* Drd64 Clinet & Marshald => No Judge */
+ /*if(( i_cnt == p_marshald->i_socket_local ) ||
+ ( i_cnt == p_marshald->i_socket_inet ))
+ { continue; }*/
+ i_socket = p_recv->i_fds_id;
+
+ //p_recv = Drd64_Server_RecvStatus_GetRecvStatus( i_cnt );
+ //if( NULL == p_recv ) { continue; }
+
+ if( FD_ISSET( i_socket, &fds_now ) ) {
+ /* Read */
+ assert( DRD64_SERVER_RECVSTATUS_STATUS_READ
+ == p_recv->b_recv_status );
+
+ /*i_err = Drd64_Server_RecvSocket_SocketRead_Cert(
+ i_socket, &i_pid );*/
+ i_err = Drd64_Server_RecvSocket_SocketRead( i_socket );
+ DRD64_DEBUG_PRINT("SocketRead",i_err,"FD",i_socket,"DestPid",i_pid);
+ i_selects--;
+
+ /* Judge Packet */
+ i_result = Drd64_Marshald_Dispatch_JudgePacket(
+ i_socket, i_err, p_recv, &drd64_marshald_info );
+
+ /* 0x00 = Judge 1 : Disconnect ( Others Packet ) */
+ if( DRD64_MARSHALD_DISPATCH_RESULT_CLOSE == i_result ) {
+ Drd64_Marshald_Dispatch_CloseSocket( i_socket );
+ }
+ else if( DRD64_MARSHALD_DISPATCH_RESULT_RESTART
+ == i_result )
+ { i_resume_flag = 0x01; }
+ /* 0x01 = Judge 1 : Reading Next */
+
+ }
+
+ p_recv = (Drd64_Server_RecvStatus *)p_recv->pv_recv_next;
+ }
+
+
+ //for( i_cnt = 0;
+ // ((i_cnt < i_selects_max) && (0 < i_selects ));
+ // i_cnt++ ) {
+ /*
+ // Drd64 Clinet & Marshald => No Judge
if(( i_cnt == p_marshald->i_socket_local ) ||
( i_cnt == p_marshald->i_socket_inet ))
{ continue; }
if( NULL == p_recv ) { continue; }
if( FD_ISSET( i_cnt, &fds_now ) ) {
- /* Read */
+ // Read
assert( DRD64_SERVER_RECVSTATUS_STATUS_READ
== p_recv->b_recv_status );
- /*i_err = Drd64_Server_RecvSocket_SocketRead_Cert(
- i_cnt, &i_pid );*/
i_err = Drd64_Server_RecvSocket_SocketRead( i_cnt );
DRD64_DEBUG_PRINT("SocketRead",i_err,"FD",i_cnt,"DestPid",i_pid);
i_selects--;
- /* Judge Packet */
+ // Judge Packet
i_result = Drd64_Marshald_Dispatch_JudgePacket(
i_cnt, i_err, p_recv, &drd64_marshald_info );
- /* 0x00 = Judge 1 : Disconnect ( Others Packet ) */
+ // 0x00 = Judge 1 : Disconnect ( Others Packet )
if( DRD64_MARSHALD_DISPATCH_RESULT_CLOSE == i_result ) {
Drd64_Marshald_Dispatch_CloseSocket( i_cnt );
}
else if( DRD64_MARSHALD_DISPATCH_RESULT_RESTART
== i_result )
{ i_resume_flag = 0x01; }
- /* 0x01 = Judge 1 : Reading Next */
- }
- }
+ }*/
+ //}
/* Check Restart Packet (RecvStatus) */
if( 0x00 != i_resume_flag ) {