More testing and compat fixes for ipfs
This commit is contained in:
parent
f9d836ef6f
commit
407f85bc89
6 changed files with 16 additions and 6 deletions
|
@ -1,5 +1,6 @@
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
|
|
||||||
|
#include "libp2p/net/multistream.h"
|
||||||
#include "libp2p/utils/vector.h"
|
#include "libp2p/utils/vector.h"
|
||||||
#include "libp2p/secio/secio.h"
|
#include "libp2p/secio/secio.h"
|
||||||
#include "libp2p/routing/dht_protocol.h"
|
#include "libp2p/routing/dht_protocol.h"
|
||||||
|
@ -18,6 +19,8 @@ struct Libp2pVector* ipfs_node_online_build_protocol_handlers(struct IpfsNode* n
|
||||||
libp2p_utils_vector_add(retVal, libp2p_routing_dht_build_protocol_handler(node->peerstore, node->providerstore));
|
libp2p_utils_vector_add(retVal, libp2p_routing_dht_build_protocol_handler(node->peerstore, node->providerstore));
|
||||||
// bitswap
|
// bitswap
|
||||||
libp2p_utils_vector_add(retVal, ipfs_bitswap_build_protocol_handler(node));
|
libp2p_utils_vector_add(retVal, ipfs_bitswap_build_protocol_handler(node));
|
||||||
|
// multistream
|
||||||
|
libp2p_utils_vector_add(retVal, libp2p_net_multistream_build_protocol_handler(node));
|
||||||
}
|
}
|
||||||
return retVal;
|
return retVal;
|
||||||
}
|
}
|
||||||
|
|
|
@ -159,7 +159,7 @@ int ipfs_null_do_maintenance(struct IpfsNode* local_node, struct Libp2pPeer* pee
|
||||||
} else {
|
} else {
|
||||||
if (peer->sessionContext != NULL && os_utils_gmtime() - peer->sessionContext->last_comm_epoch > 180) {
|
if (peer->sessionContext != NULL && os_utils_gmtime() - peer->sessionContext->last_comm_epoch > 180) {
|
||||||
// try a ping, but only if we're connected
|
// try a ping, but only if we're connected
|
||||||
libp2p_logger_debug("null", "Attempting ping of %s.\n", peer->id);
|
libp2p_logger_debug("null", "Attempting ping of %s.\n", libp2p_peer_id_to_string(peer));
|
||||||
if (peer->connection_type == CONNECTION_TYPE_CONNECTED && !local_node->routing->Ping(local_node->routing, peer)) {
|
if (peer->connection_type == CONNECTION_TYPE_CONNECTED && !local_node->routing->Ping(local_node->routing, peer)) {
|
||||||
libp2p_logger_debug("null", "Attempted ping of %s failed.\n", peer->id);
|
libp2p_logger_debug("null", "Attempted ping of %s failed.\n", peer->id);
|
||||||
peer->connection_type = CONNECTION_TYPE_NOT_CONNECTED;
|
peer->connection_type = CONNECTION_TYPE_NOT_CONNECTED;
|
||||||
|
|
|
@ -85,13 +85,13 @@ void* ipfs_bitswap_engine_peer_request_processor_start(void* ctx) {
|
||||||
if (current_peer_entry->sessionContext == NULL || current_peer_entry->sessionContext->default_stream == NULL) {
|
if (current_peer_entry->sessionContext == NULL || current_peer_entry->sessionContext->default_stream == NULL) {
|
||||||
current_peer_entry->connection_type = CONNECTION_TYPE_NOT_CONNECTED;
|
current_peer_entry->connection_type = CONNECTION_TYPE_NOT_CONNECTED;
|
||||||
} else {
|
} else {
|
||||||
libp2p_logger_debug("bitswap_engine", "We're connected to %s. Lets see if there is a message waiting for us.\n", current_peer_entry->id);
|
libp2p_logger_debug("bitswap_engine", "We're connected to %s. Lets see if there is a message waiting for us.\n", libp2p_peer_id_to_string(current_peer_entry));
|
||||||
int retVal = current_peer_entry->sessionContext->default_stream->peek(current_peer_entry->sessionContext);
|
int retVal = current_peer_entry->sessionContext->default_stream->peek(current_peer_entry->sessionContext);
|
||||||
if (retVal < 0) {
|
if (retVal < 0) {
|
||||||
libp2p_logger_debug("bitswap_engine", "We thought we were connected, but Peek reported an error.\n");
|
libp2p_logger_debug("bitswap_engine", "We thought we were connected, but Peek reported an error.\n");
|
||||||
libp2p_peer_handle_connection_error(current_peer_entry);
|
libp2p_peer_handle_connection_error(current_peer_entry);
|
||||||
} else if (retVal > 0) {
|
} else if (retVal > 0) {
|
||||||
libp2p_logger_debug("bitswap_engine", "%d bytes waiting on network for peer %s.\n", retVal, current_peer_entry->id);
|
libp2p_logger_debug("bitswap_engine", "%d bytes waiting on network for peer %s.\n", retVal, libp2p_peer_id_to_string(current_peer_entry));
|
||||||
unsigned char* buffer = NULL;
|
unsigned char* buffer = NULL;
|
||||||
size_t buffer_len = 0;
|
size_t buffer_len = 0;
|
||||||
if (current_peer_entry->sessionContext->default_stream->read(current_peer_entry->sessionContext, &buffer, &buffer_len, 1)) {
|
if (current_peer_entry->sessionContext->default_stream->read(current_peer_entry->sessionContext, &buffer, &buffer_len, 1)) {
|
||||||
|
|
|
@ -75,7 +75,8 @@ int repo_fsrepo_lmdb_build_record(MDB_val *key, MDB_val *value, struct Datastore
|
||||||
*record = NULL;
|
*record = NULL;
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
memcpy(rec->value, &value->mv_data[varint_size], rec->value_size);
|
uint8_t *val = (uint8_t*) value->mv_data;
|
||||||
|
memcpy(rec->value, &val[varint_size], rec->value_size);
|
||||||
}
|
}
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
|
@ -140,7 +140,8 @@ int repo_journalstore_cursor_get(struct Datastore* datastore, void* crsr, enum D
|
||||||
rec->pin = ((uint8_t*)mdb_value.mv_data)[0];
|
rec->pin = ((uint8_t*)mdb_value.mv_data)[0];
|
||||||
rec->hash_size = mdb_value.mv_size - 1;
|
rec->hash_size = mdb_value.mv_size - 1;
|
||||||
rec->hash = malloc(rec->hash_size);
|
rec->hash = malloc(rec->hash_size);
|
||||||
memcpy(rec->hash, &mdb_value.mv_data[1], rec->hash_size);
|
uint8_t *val = (uint8_t*)mdb_value.mv_data;
|
||||||
|
memcpy(rec->hash, &val[1], rec->hash_size);
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
|
|
|
@ -269,7 +269,7 @@ int test_bitswap_retrieve_file_known_remote() {
|
||||||
*/
|
*/
|
||||||
int remote_port = 4001;
|
int remote_port = 4001;
|
||||||
// mac
|
// mac
|
||||||
char* remote_peer_id = "QmZVoAZGFfinB7MQQiDzB84kWaDPQ95GLuXdemJFM2r9b4";
|
char* remote_peer_id = "QmPTDqsHMn3GkLBUHBofB5M6wBGzLwHAxqZpLvcda6hF6Q";
|
||||||
char* remote_ip = "10.211.55.2";
|
char* remote_ip = "10.211.55.2";
|
||||||
// linux
|
// linux
|
||||||
//char* remote_peer_id = "QmRKm1d9kSCRpMFtLYpfhhCQ3DKuSSPJa3qn9wWXfwnWnY";
|
//char* remote_peer_id = "QmRKm1d9kSCRpMFtLYpfhhCQ3DKuSSPJa3qn9wWXfwnWnY";
|
||||||
|
@ -288,6 +288,9 @@ int test_bitswap_retrieve_file_known_remote() {
|
||||||
libp2p_logger_add_class("online");
|
libp2p_logger_add_class("online");
|
||||||
libp2p_logger_add_class("multistream");
|
libp2p_logger_add_class("multistream");
|
||||||
libp2p_logger_add_class("secio");
|
libp2p_logger_add_class("secio");
|
||||||
|
libp2p_logger_add_class("bitswap");
|
||||||
|
libp2p_logger_add_class("bitswap_engine");
|
||||||
|
libp2p_logger_add_class("bitswap_network");
|
||||||
|
|
||||||
char* ipfs_path = "/tmp/test1";
|
char* ipfs_path = "/tmp/test1";
|
||||||
char* peer_id_1 = NULL, *peer_id_2 = NULL;
|
char* peer_id_1 = NULL, *peer_id_2 = NULL;
|
||||||
|
@ -314,6 +317,8 @@ int test_bitswap_retrieve_file_known_remote() {
|
||||||
if (!ipfs_cid_decode_hash_from_base58((unsigned char*)hello_world_hash, strlen(hello_world_hash), &cid))
|
if (!ipfs_cid_decode_hash_from_base58((unsigned char*)hello_world_hash, strlen(hello_world_hash), &cid))
|
||||||
goto exit;
|
goto exit;
|
||||||
|
|
||||||
|
sleep(300);
|
||||||
|
|
||||||
// this does the heavy lifting...
|
// this does the heavy lifting...
|
||||||
if (!ipfs_node2->exchange->GetBlock(ipfs_node2->exchange, cid, &result)) {
|
if (!ipfs_node2->exchange->GetBlock(ipfs_node2->exchange, cid, &result)) {
|
||||||
libp2p_logger_error("test_bitswap", "GetBlock returned false\n");
|
libp2p_logger_error("test_bitswap", "GetBlock returned false\n");
|
||||||
|
|
Loading…
Reference in a new issue