OSDN Git Service

*** empty log message ***
authorkoinec <>
Thu, 25 Feb 2010 05:33:39 +0000 (05:33 +0000)
committerkoinec <>
Thu, 25 Feb 2010 05:33:39 +0000 (05:33 +0000)
deamon/drd64_marshald_cinfo.h
deamon/drd64_marshald_cmd_attach_link.c
deamon/drd64_marshald_cmd_attach_request.c

index 679268a..62a9c2f 100644 (file)
@@ -63,14 +63,15 @@ typedef     struct  {
        int                             i_dest_cinfo_id;
 
        int                             i_dest_socket;
+       int                             i_dest_pid;
        char                    str_dest_addr_local[DRD64_MAX_PATH+1];
                                                /* for Local Debugd */
 
        /* Source Info. ( = Singal Info. ) */
        struct  in_addr t_src_addr_inet;
        int                             i_src_cinfo_id;
-
        int                             i_src_socket;
+       int                             i_src_pid;
 
        /* Section 3 : Debuggee Program Info. ========*/
        struct  in_addr t_prog_addr_inet;
@@ -79,7 +80,9 @@ typedef       struct  {
        /* Debugd Info. */
        /*struct in_addr t_debugd_addr_inet; (= t_prog_addr_inet )*/
        int                             i_debugd_pid;
+       int                             i_debugd_pid_real;
        int                             i_debugd_socket;
+       char                    str_debugd_addr_local[DRD64_MAX_PATH+1];
 
        /* Client Info. */
        struct  in_addr t_client_addr_inet;
index 5d584b2..34a9452 100644 (file)
@@ -96,14 +96,12 @@ int
        /* [Phase 0] Init.(Get Debug Connect Info.) ========*/
        p_cinfo_now     = Drd64_Marshald_CInfo_GetConnectInfo( p_phead->i_cid_dest );
        assert( NULL != p_cinfo_now );
-       puts("a");
 
        /* [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 );
-       puts("a");
        
        p_cinfo_now->i_debugd_socket    = p_cinfo_debugd->i_dest_socket;
        p_cinfo_now->i_client_socket
@@ -115,7 +113,6 @@ int
        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;
-       puts("a");
 
        i_err  = send( p_cinfo_debugd->i_dest_socket, (void *)p_phead,
                         DRD64_PacketSize(p_phead), 0x00 );
index b139994..51baac4 100644 (file)
@@ -49,22 +49,36 @@ int
        Drd64_Marshald_Cmd_AttachRequest_Scn5_RecvTranAttachReq(
                int             i_recv_id,
                Drd64_PacketHeader                                      *p_phead,
-               Drd64_PacketData_AttachRequest          *p_attach,
+               Drd64_PacketData_AttachRequest          *p_attachreq,
                Drd64_Marshald_MasterInformation        *p_marshald )
 {
        int             i_wlen;
        //int           i_result;
        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");
 
+       /* Phase 0 : Init ----------------------------*/
        p_cinfo_client  = Drd64_Marshald_CInfo_GetConnectInfo(
                                                                        p_phead->i_cid_client );
        assert( NULL != p_cinfo_client );
 
        i_fds   = p_cinfo_client->i_src_socket;
 
+
+       /* Phase 0 : Init ----------------------------*/
+       p_cinfo_self    = Drd64_Marshald_CInfo_GetConnectInfo(
+                                                                       p_attachreq->i_cid_marshald );
+       
+       p_cinfo_self->i_dest_cinfo_id   = p_attachreq->i_cid_debugd;
+       strncpy( p_cinfo_self->str_dest_addr_local,
+                               p_attachreq->str_debugd_sockname,
+                               DRD64_MAX_PATH );
+
+       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 );
 
@@ -73,11 +87,13 @@ int
        //p_attach->i_cid_debugd                        = p_attach->i_cid_marshald;
        //p_attach->i_cid_marshald              = DRD64_CONNECTID_NONE;
 
+       /* Phase 0 : Init ----------------------------*/
        p_phead->w_packettype                   |= DRD64_PACKETTYPE_FLAG_ANSWER;
        p_phead->i_cid_dest                             = p_phead->i_cid_client;
        p_phead->i_cid_src                              = DRD64_CONNECTID_NONE;
        p_phead->i_cid_client                   = DRD64_CONNECTID_NONE;
 
+       /* Phase 0 : Init ----------------------------*/
        i_wlen  = send( i_fds, (void *)p_phead,
                                                DRD64_PacketSize(p_phead), 0x00 );
        DRD64_DEBUG_PRINT("send",i_wlen,"FD",i_fds,"errno",errno);
@@ -222,8 +238,9 @@ int
                                        &(p_attachreq->t_prog_addr) );
        p_cinfo_now->i_prog_pid                 = p_attachreq->i_prog_pid;
 
-       p_cinfo_now->i_debugd_pid               = -1;   /* Set Value is Scn5 */
-       p_cinfo_now->i_debugd_socket    = -1;   /* Set Value is Scn5 */
+       p_cinfo_now->i_debugd_pid               = p_cinfo_dest->i_dest_pid;
+       p_cinfo_now->i_debugd_pid_real  = -1;   /* Set Value is Scn5 */
+       p_cinfo_now->i_debugd_socket    = p_cinfo_dest->i_dest_socket;
 
        Drd64_LibBrownie_INetAddr_CopyInAddr(
                                        &(p_cinfo_now->t_client_addr_inet),
@@ -359,6 +376,7 @@ int
                p_cinfo_now->i_prog_pid                         = p_attach->i_prog_pid;
 
                p_cinfo_now->i_debugd_pid                       = i_pid_debugd;
+               p_cinfo_now->i_debugd_pid_real          = i_pid_debugd;
                p_cinfo_now->i_debugd_socket            = -1;
                                        /* Set i_debugd_socket Value is AttachReport Phase */
 
@@ -374,12 +392,11 @@ int
                                        str_sockname_client, DRD64_MAX_PATH );
                p_attach->i_debugd_pid          = i_pid_debugd;
 
-               if( DRD64_IsPacketTypeFlag(p_phead,DRD64_PACKETTYPE_FLAG_TRANSPORT) )           {
-                       puts("INet set");
+               if( DRD64_IsPacketTypeFlag(p_phead,
+                                       DRD64_PACKETTYPE_FLAG_TRANSPORT) )              {
                        p_attach->i_cid_debugd          = p_cinfo_now->i_cinfo_id;
                }
                else    {
-                       puts("local set");
                        p_attach->i_cid_debugd          = DRD64_CONNECTID_NONE;
                        p_attach->i_cid_marshald        = p_cinfo_now->i_cinfo_id;
                }