@ -762,6 +762,31 @@ void chat_core_connect_auto(uint64_t node_id,
return ;
return ;
}
}
/* ── DB state diagnostics ── */
DEBUG_INFO ( DEBUG_CATEGORY_DEBUG , " %s: auto_connect DIAG: looking for node=0x%016llx " , CC_ID , ( unsigned long long ) node_id ) ;
{
sqlite3_stmt * diag = NULL ;
if ( sqlite3_prepare_v2 ( g_cc . db , " SELECT COUNT(*) FROM node_addresses " , - 1 , & diag , NULL ) = = SQLITE_OK ) {
if ( sqlite3_step ( diag ) = = SQLITE_ROW )
DEBUG_INFO ( DEBUG_CATEGORY_DEBUG , " %s: auto_connect DIAG: node_addresses total=%d " , CC_ID , sqlite3_column_int ( diag , 0 ) ) ;
sqlite3_finalize ( diag ) ;
}
if ( sqlite3_prepare_v2 ( g_cc . db , " SELECT node_id, COUNT(*) FROM node_addresses GROUP BY node_id " , - 1 , & diag , NULL ) = = SQLITE_OK ) {
while ( sqlite3_step ( diag ) = = SQLITE_ROW )
DEBUG_INFO ( DEBUG_CATEGORY_DEBUG , " %s: auto_connect DIAG: node_addresses node=0x%016llx cnt=%d " ,
CC_ID , ( unsigned long long ) sqlite3_column_int64 ( diag , 0 ) , sqlite3_column_int ( diag , 1 ) ) ;
sqlite3_finalize ( diag ) ;
}
if ( sqlite3_prepare_v2 ( g_cc . db , " SELECT node_id, name FROM nodes WHERE node_id=? " , - 1 , & diag , NULL ) = = SQLITE_OK ) {
sqlite3_bind_int64 ( diag , 1 , ( sqlite3_int64 ) node_id ) ;
if ( sqlite3_step ( diag ) = = SQLITE_ROW )
DEBUG_INFO ( DEBUG_CATEGORY_DEBUG , " %s: auto_connect DIAG: node found in nodes table name=%s " ,
CC_ID , sqlite3_column_text ( diag , 1 ) ) ;
else
DEBUG_INFO ( DEBUG_CATEGORY_DEBUG , " %s: auto_connect DIAG: node NOT found in nodes table " , CC_ID ) ;
sqlite3_finalize ( diag ) ;
}
}
/* collect IPv4 addresses */
/* collect IPv4 addresses */
struct { uint8_t addr [ 4 ] ; uint16_t port ; } addrs [ 16 ] ;
struct { uint8_t addr [ 4 ] ; uint16_t port ; } addrs [ 16 ] ;
int addr_count = 0 ;
int addr_count = 0 ;