pig_target_addr_ctx *add_target_addr_to_pig_target_addr(pig_target_addr_ctx *addrs, const char *range) { pig_target_addr_ctx *head = addrs, *p = NULL; if (head == NULL) { new_pig_target_addr(head); p = head; } else { p = get_pig_target_addr_tail(head); new_pig_target_addr(p->next); p = p->next; } p->type = get_range_type(range); switch (p->type) { case kAddr: p->addr = to_ipv4(range); break; case kWild: p->addr = to_ipv4_mask(range); break; case kCidr: p->addr = to_ipv4_cidr(range, &p->cidr_range); break; default: break; } p->v = 4; p->asize = sizeof(int); return head; }
void *ipv4_to_voidp(const char *data, size_t *dsize) { void *retval = NULL; if (data == NULL || dsize == NULL) { return NULL; } if (strcmp(data, "south-american-ip") != 0 && strcmp(data, "north-american-ip") != 0 && strcmp(data, "european-ip") != 0 && strcmp(data, "asian-ip") != 0 && strcmp(data, "user-defined-ip") != 0) { retval = pig_newseg(sizeof(unsigned int)); retval = to_ipv4(data); *dsize = sizeof(unsigned int); } else { *dsize = strlen(data); retval = pig_newseg(*dsize + 1); memset(retval, 0, *dsize + 1); memcpy(retval, data, *dsize); } return retval; }
CUTE_CHECK("to_str() != \"abc\"", strcmp(retval, "abc") == 0); free(retval); retval = to_str("\"\x61\x62\x6362\""); CUTE_CHECK("to_str() != \"abb\"", strcmp(retval, "abb") == 0); free(retval); retval = to_str("\"\x9tab!\""); CUTE_CHECK("to_str() != \"\\ttab!\"", strcmp(retval, "\ttab!") == 0); free(retval); retval = to_str("\"well behaved string.\""); CUTE_CHECK("to_str() != \"well behaved string.\"", strcmp(retval, "well behaved string.") == 0); free(retval); CUTE_TEST_CASE_END CUTE_TEST_CASE(to_ipv4_tests) unsigned int *retval = NULL; retval = to_ipv4(NULL); CUTE_CHECK("retval != NULL", retval == NULL); retval = to_ipv4("127.0.0.1"); CUTE_CHECK("retval == NULL", retval != NULL); CUTE_CHECK("retval != 0x7f000001", *retval == 0x7f000001); free(retval); CUTE_TEST_CASE_END CUTE_TEST_CASE(pigsty_entry_ctx_tests) pigsty_entry_ctx *pigsty = NULL, *p; pigsty = add_signature_to_pigsty_entry(pigsty, "oink"); pigsty = add_signature_to_pigsty_entry(pigsty, "roc!"); CUTE_CHECK("pigsty == NULL", pigsty != NULL); CUTE_CHECK("pigsty->signature_name != oink", strcmp(pigsty->signature_name, "oink") == 0); CUTE_CHECK("pigsty->next == NULL", pigsty->next != NULL); CUTE_CHECK("pigsty->next->signature_name != roc!", strcmp(pigsty->next->signature_name, "roc!") == 0);