OSDN Git Service

*** empty log message ***
authorkoinec <>
Sun, 14 Mar 2010 05:38:04 +0000 (05:38 +0000)
committerkoinec <>
Sun, 14 Mar 2010 05:38:04 +0000 (05:38 +0000)
deamon/drd64_marshald_cmd_disconnect.c
libdrd64/drd64_libdrd64_cmd_attach.c
libdrd64/drd64_libdrd64_cmd_detach.c

index a8e311f..f2c2eb9 100644 (file)
@@ -61,12 +61,13 @@ int
 
        /* XXX : Check UnExit/UnDetach Process? */
 
-       Drd64_Marshald_Cinfo_FreeConnectInfo( p_cinfo );
+
+       p_cinfo->i_cinfo_refcount--;
+       assert( 0 == p_cinfo->i_cinfo_refcount );
+
+       // Connection Lock!
 
        p_phead->w_packettype   |= DRD64_PACKETTYPE_FLAG_ANSWER;
-       p_phead->i_result               = 0x00;
-       p_phead->i_error                = 0x00;
-       p_phead->i_datalen              = 0;
 
        i_wlen  = send( i_fds, (void *)p_phead, DRD64_PacketSize(p_phead), 0x00 );
        if( i_wlen != DRD64_PacketSize(p_phead) )
index ae2ea66..caf95ce 100644 (file)
@@ -125,6 +125,8 @@ int
                                                0x00 );
        if( 0 > i_err )         { return -2; }
 
+       p_cinfo->i_debugd_socket        = i_socket;
+
        return 0x00;
 }
 
index 4d3f3b3..4dfb5db 100644 (file)
@@ -53,6 +53,9 @@ int
        p_cinfo = Drd64_LibDrd64_CInfo_GetConnectInfo( i_cid );
        if( NULL == p_cinfo )   { return -1; }
 
+       close( p_cinfo->i_debugd_socket );
+       p_cinfo->i_debugd_socket        = -1;
+
        /* Phase 1 : Set Packet Data --- */
        p_phead = (Drd64_PacketHeader *)gp_buffer;
        /*p_areport
@@ -76,6 +79,8 @@ int
                return -2;
        }
 
+       Drd64_LibDrd64_FreeConnectInfo( p_cinfo );
+
        return 0x00;
 }