OSDN Git Service

*** empty log message ***
authorkoinec <>
Thu, 25 Feb 2010 07:26:01 +0000 (07:26 +0000)
committerkoinec <>
Thu, 25 Feb 2010 07:26:01 +0000 (07:26 +0000)
deamon/drd64_debugd_cmd_attach_link.c
deamon/drd64_debugd_dispatch.c
deamon/drd64_debugd_dispatch.h
deamon/drd64_debugd_info.h
deamon/drd64_debugd_main.c
deamon/drd64_marshald_cmd_attach_request.c

index 554ec68..3fc491a 100644 (file)
@@ -53,9 +53,16 @@ int
        assert( NULL != p_recv );
        i_fds   = p_recv->i_fds_id;
 
-       p_phead->w_packettype   |= DRD64_PACKETTYPE_FLAG_ANSWER;
+       if( DRD64_IsPacketTypeFlag(p_phead, DRD64_PACKETTYPE_FLAG_RELAY) )      {
+               p_debugd->i_socket_client = i_fds;
+               p_debugd->i_socket_server = i_fds;
+       }
+       else    {
+               p_debugd->i_socket_client = i_fds;
+               p_debugd->i_socket_server = -1;
+       }
 
-       p_debugd->i_socket_client = i_fds;
+       p_phead->w_packettype   |= DRD64_PACKETTYPE_FLAG_ANSWER;
 
        i_wlen  = send( i_fds, (void *)p_phead, DRD64_PacketSize(p_phead), 0x00);
        DRD64_DEBUG_PRINT("send",i_wlen,"FD",i_fds,"errno",errno);
index cc1c680..f1c64ef 100644 (file)
@@ -318,10 +318,6 @@ int
                                        /* 0x03 = Judge 2 : Restart Flag ON */
                                        else if( DRD64_DEBUGD_DISPATCH_RESULT_RESTART == i_result )
                                                { i_resume_flag = 0x01; }
-                                       /* 0x05 = Judge 3 : from Clinet Connect Request */
-                                       /*else if( DRD64_DEBUGD_DISPATCH_RESULT_SETCLIENT
-                                                                                                       == i_result )
-                                               { p_debugd->i_socket_client = i_socket; } */
                                        /* 0x01 = Judge 1 : Reading Next */
                                }
 
index e06b930..4deed13 100644 (file)
@@ -42,7 +42,7 @@ Comment:
 #define        DRD64_DEBUGD_DISPATCH_RESULT_COMPLETE   0x02
 #define        DRD64_DEBUGD_DISPATCH_RESULT_RESTART    0x03
 #define        DRD64_DEBUGD_DISPATCH_RESULT_POLL               0x04
-#define        DRD64_DEBUGD_DISPATCH_RESULT_SETCLIENT  0x05
+//#define      DRD64_DEBUGD_DISPATCH_RESULT_SETCLIENT  0x05
 
 #endif /* DRD64_HEADER_DEBUGD_DISPATCH */
 
index 745ca20..b220003 100644 (file)
@@ -42,9 +42,12 @@ typedef struct       {
        int             i_attach_mode;
        
        /* Socket Info. ---- */
-       char    str_socketname[ DRD64_MAX_PATH ];
+       char    str_socketname_debugd[ DRD64_MAX_PATH+1 ];
        int             i_socket_debugd;
        int             i_socket_client;
+       int             i_socket_server;
+       // char str_socketname_marshald[ DRD64_MAX_PATH+1 ];
+       // int          i_socket_marshald;
 
        /* Client Info. ---- */
        int             i_client_type;
@@ -55,8 +58,8 @@ typedef struct        {
 
        /* Target Info. ---- */
        int             i_target_pid;
-       char    str_target_file_exec[ DRD64_MAX_PATH ];
-       char    str_target_file_coredump[ DRD64_MAX_PATH ];
+       char    str_target_file_exec[ DRD64_MAX_PATH+1 ];
+       char    str_target_file_coredump[ DRD64_MAX_PATH+1 ];
        char    **ppstr_argv;
        int             i_arg_options;
 
index c5e9433..ede1e60 100644 (file)
@@ -44,8 +44,13 @@ void Drd64_Debugd_SigTerm( siginfo_t *info, ucontext_t *uap)
 
        free( gp_sendbuffer );
 
-       close( drd64_debugd_info.i_socket_debugd );
+       if( drd64_debugd_info.i_socket_client
+                       != drd64_debugd_info.i_socket_server )  {
+               close( drd64_debugd_info.i_socket_server );
+       }
+
        close( drd64_debugd_info.i_socket_client );
+       close( drd64_debugd_info.i_socket_debugd );
 
        DRD64_LOG_INFO("[INFO] Terminate drdebugd. Good-Bye.");
        Drd64_Server_Log_TermLogSystem();
@@ -75,6 +80,8 @@ int
        DRD64_LOG_INFO("[Arch]: INTEL64(amd64/x86-64) / FreeBSD");
        DRD64_LOG_INFO("[INFO]: Booting drdebugd");
 
+       p_debugd->str_socketname_debugd[0] = '\0';
+
        return 0x00;
 }
 
@@ -101,7 +108,7 @@ int
        /* Create Socket from Local Client or Marshald */
        p_debugd->i_socket_debugd =
                Drd64_LibBrownie_Socket_InitSocketServer_Local(
-                       p_debugd->str_socketname );
+                       p_debugd->str_socketname_debugd );
        if( 0 > p_debugd->i_socket_debugd )     {
                return 0x01;
        }
@@ -160,9 +167,15 @@ int
 
                /* "n" : SocketName for Client */
                if( 'n' == i_opt )              {
-                       strncpy( p_debugd->str_socketname, optarg, DRD64_MAX_PATH );
+                       strncpy( p_debugd->str_socketname_debugd,
+                                                               optarg, DRD64_MAX_PATH );
                        i_options++;
                }
+               /* "s" : SocketName for Server */
+               /*else if( 's' == i_opt )               {
+                       strncpy( p_debugd->str_socketname_server,
+                                                               optarg, DRD64_MAX_PATH );
+               }*/
                /* "c" : coredump File Name */
                else if( 'c' == i_opt ) {
                        strncpy( p_debugd->str_target_file_coredump,
index 90bf148..4c44a99 100644 (file)
@@ -309,8 +309,8 @@ int
 
        /* Phase 1 : Generate Debugd Param -----------*/
        /* s : socketname(PF_UNIX) for debugd<=>marshald */
-       strcpy( str_sockname_server, "/tmp/tmpdrd64debugd_server_XXXXXXXXXX" );
-       if( NULL == mktemp( str_sockname_server ))      { return 0x01; }
+       // strcpy( str_sockname_server, "/tmp/tmpdrd64debugd_server_XXXXXXXXXX" );
+       // if( NULL == mktemp( str_sockname_server ))   { return 0x01; }
 
        /* n : socketname(PF_UNIX) for debugd<=>Client */
        strcpy( str_sockname_client, "/tmp/tmpdrd64debugd_client_XXXXXXXXXX" );