int context_create(uint32_t id, char *address, char *netmask, char *serverCert, char *serverPrivkey, char *trustedCert) { (void)address; (void)netmask; context_t *context; context = (context_t*)malloc(sizeof(context_t)); context_table[id] = context; context->id = id; context->passport = pki_passport_load_from_memory(serverCert, serverPrivkey, trustedCert); bitpool_new(&context->bitpool, MAX_NODE); context->linkst = linkst_new(MAX_NODE, TIMEOUT_SEC); context->active_node = 0; context->session_list = NULL; context->access_session = session_new(); context->ftable = ftable_new(MAX_NODE, session_itemdup, session_itemrel); context->ctable = ctable_new(MAX_NODE, session_itemdup, session_itemrel); context->atable = ctable_new(MAX_NODE, session_itemdup, session_itemrel); return 0; }
int main() { int init_matrix_size = 1; linkst_t *linkst = NULL; /* there is 4 active nodee */ int idx_a, idx_b, idx_c, idx_d; idx_a = 1; idx_b = 2; idx_c = 3; idx_d = 100; linkst = linkst_new(100, 3); linkst_join(linkst, idx_a, idx_b); if (linkst_joined(linkst, idx_a, idx_b) != 1) { printf("%d // %d\n", idx_a, idx_b); goto out; } linkst_join(linkst, idx_a, idx_d); if (linkst_joined(linkst, idx_a, idx_d) != 1) { printf("%d // %d\n", idx_a, idx_d); goto out; } int state; int i = 4; while (i--) { state = linkst_joined(linkst, idx_a, idx_b); printf("state [%d] || [%d] %s [%d]\n", state, idx_a, state == 1 ? "<==>": "//", idx_b); state = linkst_joined(linkst, idx_a, idx_c); printf("state [%d] || [%d] %s [%d]\n", state, idx_a, state == 1 ? "<==>": "//", idx_c); printf("\n\n"); sleep(1); } printf("out of loop\n"); linkst_join(linkst, idx_a, idx_b); linkst_join(linkst, idx_a, idx_d); linkst_disjoin(linkst, idx_a); state = linkst_joined(linkst, idx_a, idx_b); printf("state [%d] || [%d] %s [%d]\n", state, idx_a, state == 1 ? "<==>": "//", idx_b); state = linkst_joined(linkst, idx_a, idx_c); printf("state [%d] || [%d] %s [%d]\n", state, idx_a, state == 1 ? "<==>": "//", idx_c); printf("\n\n"); out: linkst_free(linkst); }