|
|
|
|
@ -26,24 +26,29 @@ static void check_snapshot(struct UTUN_INSTANCE *owner, struct ETCP_SOCKET *sock
|
|
|
|
|
assert(meta && meta->address_profile.evidence_id == socket->address_profile.evidence_id && |
|
|
|
|
meta->address_profile.checked_at == socket->address_profile.checked_at && |
|
|
|
|
meta->address_profile.mapping == socket->address_profile.mapping && |
|
|
|
|
meta->address_profile.inbound == socket->address_profile.inbound); |
|
|
|
|
meta->address_profile.inbound == socket->address_profile.inbound && |
|
|
|
|
meta->address_profile.source == ADDRESS_SOURCE_ETCP); |
|
|
|
|
struct address_profile saved = meta->address_profile; |
|
|
|
|
meta->address_profile.checked_at++; |
|
|
|
|
assert(topo_node_verify(node) < 0); |
|
|
|
|
meta->address_profile = saved; |
|
|
|
|
meta->address_profile.source = ADDRESS_SOURCE_STUN; |
|
|
|
|
assert(topo_node_verify(node) < 0); |
|
|
|
|
meta->address_profile = saved; |
|
|
|
|
meta->address_profile.inbound = ADDRESS_IN_CONTACT; |
|
|
|
|
assert(topo_node_verify(node) < 0); |
|
|
|
|
meta->address_profile = saved; assert(topo_node_verify(node) == 0); |
|
|
|
|
|
|
|
|
|
sqlite3_stmt *statement = NULL; |
|
|
|
|
assert(sqlite3_prepare_v2(owner->topo_sqlite_db, |
|
|
|
|
"SELECT nat_mapping,nat_inbound,nat_evidence,nat_checked FROM node_addresses WHERE node_id=? AND socket_id=?", |
|
|
|
|
"SELECT nat_mapping,nat_inbound,nat_evidence,nat_checked,nat_source FROM node_addresses WHERE node_id=? AND socket_id=?", |
|
|
|
|
-1, &statement, NULL) == SQLITE_OK); |
|
|
|
|
sqlite3_bind_int64(statement, 1, (sqlite3_int64)owner->node_id); sqlite3_bind_int(statement, 2, socket->sock_id); |
|
|
|
|
assert(sqlite3_step(statement) == SQLITE_ROW); |
|
|
|
|
assert(sqlite3_column_int(statement, 0) == saved.mapping && sqlite3_column_int(statement, 1) == saved.inbound); |
|
|
|
|
assert((uint64_t)sqlite3_column_int64(statement, 2) == saved.evidence_id); |
|
|
|
|
assert((uint64_t)sqlite3_column_int64(statement, 3) == saved.checked_at); |
|
|
|
|
assert(sqlite3_column_int(statement, 4) == ADDRESS_SOURCE_ETCP); |
|
|
|
|
sqlite3_finalize(statement); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|