From ffa22a82e56b75df22f7dfe27f8a9a88ae612fc3 Mon Sep 17 00:00:00 2001 From: koinec <> Date: Thu, 25 Feb 2010 07:26:01 +0000 Subject: [PATCH] *** empty log message *** --- deamon/drd64_debugd_cmd_attach_link.c | 11 +++++++++-- deamon/drd64_debugd_dispatch.c | 4 ---- deamon/drd64_debugd_dispatch.h | 2 +- deamon/drd64_debugd_info.h | 9 ++++++--- deamon/drd64_debugd_main.c | 19 ++++++++++++++++--- deamon/drd64_marshald_cmd_attach_request.c | 4 ++-- 6 files changed, 34 insertions(+), 15 deletions(-) diff --git a/deamon/drd64_debugd_cmd_attach_link.c b/deamon/drd64_debugd_cmd_attach_link.c index 554ec68..3fc491a 100644 --- a/deamon/drd64_debugd_cmd_attach_link.c +++ b/deamon/drd64_debugd_cmd_attach_link.c @@ -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); diff --git a/deamon/drd64_debugd_dispatch.c b/deamon/drd64_debugd_dispatch.c index cc1c680..f1c64ef 100644 --- a/deamon/drd64_debugd_dispatch.c +++ b/deamon/drd64_debugd_dispatch.c @@ -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 */ } diff --git a/deamon/drd64_debugd_dispatch.h b/deamon/drd64_debugd_dispatch.h index e06b930..4deed13 100644 --- a/deamon/drd64_debugd_dispatch.h +++ b/deamon/drd64_debugd_dispatch.h @@ -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 */ diff --git a/deamon/drd64_debugd_info.h b/deamon/drd64_debugd_info.h index 745ca20..b220003 100644 --- a/deamon/drd64_debugd_info.h +++ b/deamon/drd64_debugd_info.h @@ -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; diff --git a/deamon/drd64_debugd_main.c b/deamon/drd64_debugd_main.c index c5e9433..ede1e60 100644 --- a/deamon/drd64_debugd_main.c +++ b/deamon/drd64_debugd_main.c @@ -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, diff --git a/deamon/drd64_marshald_cmd_attach_request.c b/deamon/drd64_marshald_cmd_attach_request.c index 90bf148..4c44a99 100644 --- a/deamon/drd64_marshald_cmd_attach_request.c +++ b/deamon/drd64_marshald_cmd_attach_request.c @@ -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" ); -- 2.11.0