for( i_cnt = 0; i_cnt < gi_marshald_cinfo_now; i_cnt++ ) {
p_cinfo = (gp_marshald_cinfo + i_cnt);
+ if( -1 == p_cinfo->i_cinfo_id ) { continue; }
+
/* host = client */
if( DRD64_MARSHALD_CINFOTYPE_CLIENT
== p_cinfo->b_cinfo_type ) {
for( i_cnt = 0; i_cnt < gi_marshald_cinfo_now; i_cnt++ ) {
p_cinfo = (gp_marshald_cinfo + i_cnt);
+ if( -1 == p_cinfo->i_cinfo_id ) { continue; }
+
if( DRD64_MARSHALD_CINFOTYPE_DEBUGD
== p_cinfo->b_cinfo_type ) {
if( i_prog_pid == p_cinfo->i_prog_pid )
Drd64_Marshald_Cinfo_FreeConnectInfo(
Drd64_Marshald_ConnectInfo *p_cinfo )
{
+ int i_cnt;
+ Drd64_Marshald_ConnectInfo *p_cinfo_temp;
+
if( NULL == p_cinfo ) { return 0x01; }
- if( p_cinfo->i_cinfo_id + 1 == gi_marshald_cinfo_now )
- { gi_marshald_cinfo_now--; }
+ //if( p_cinfo->i_cinfo_id + 1 == gi_marshald_cinfo_now )
+ //{ gi_marshald_cinfo_now--; }
+ for( i_cnt = gi_marshald_cinfo_now - 1; i_cnt >= 0 ; i_cnt-- ) {
+ p_cinfo_temp = (gp_marshald_cinfo + i_cnt);
+ assert( NULL != p_cinfo_temp );
+
+ if( -1 < p_cinfo_temp->i_cinfo_id ) { break; }
+ }
+ gi_marshald_cinfo_now = i_cnt + 1;
p_cinfo->i_cinfo_id = -1;
return 0x00;