OSDN Git Service

*** empty log message ***
authorkoinec <>
Sat, 12 Dec 2009 12:16:21 +0000 (12:16 +0000)
committerkoinec <>
Sat, 12 Dec 2009 12:16:21 +0000 (12:16 +0000)
deamon/drd64_debugd_dispatch.c
deamon/drd64_marshald_dispatch.c

index d13664c..0081e15 100644 (file)
@@ -168,7 +168,7 @@ int
        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 );
 
        /* Exec Packet by Command-Code */
        i_result = Drd64_Debugd_Dispatch_ExecPacket( i_recv_id, p_recv, p_debugd );
@@ -264,7 +264,8 @@ int
                                                        i_socket_new, DRD64_DEBUGD_RECVSTATUS_UNITS );
 
                                if( NULL != p_recv )
-                                       { Drd64_Server_RecvStatus_InitRecvStatus( p_recv ); }
+                                       { Drd64_Server_RecvStatus_InitRecvStatus(
+                                                                                       p_recv, i_socket_new ); }
 
                                /* XXX : Error Proc. 
                                else {
index f7bc903..be6381e 100644 (file)
@@ -92,7 +92,7 @@ int
                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;
@@ -228,7 +228,7 @@ int
        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 */
@@ -281,18 +281,19 @@ int
 {
        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 );
@@ -331,11 +332,52 @@ int
                        }
 
                        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; }
@@ -344,30 +386,27 @@ int
                                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 )             {