--- libelwix/example/test_pack.c 2014/02/10 22:50:44 1.3 +++ libelwix/example/test_pack.c 2014/02/11 00:43:41 1.4 @@ -12,6 +12,7 @@ main(int argc, char **argv) short n16 = 0xdeba; int n32 = 0xdeadbeef; long long int n64 = 0x123456789abcdef0; + char *str; if (argc < 2) return 1; @@ -22,6 +23,49 @@ main(int argc, char **argv) return 2; } else printf("create raw packet %p -> %s(%d)\n", rp, rp->r_buf, rp->r_len); + + printf("test rpack_data::\n"); + for (i = 0; i < RPACK_LEN(rp); i++) { + if (i == 4) { + str = rpack_data(rp, "F0ST4T4", 8); + str[7] = 0; + printf("\t%d) %s\n", i, str ? str : NULL); + i += 8; + } else { + str = rpack_data(rp, NULL, 1); + printf("\t%d) %c\n", i, str ? *str : 0xff); + } + e_free(str); + } + RPACK_REWIND(rp); + for (i = 0; i < RPACK_LEN(rp); i++) { + str = rpack_data(rp, NULL, 1); + printf("\t%d) %c\n", i, str ? *str : 0xff); + e_free(str); + } + RPACK_REWIND(rp); + + printf("test rpack_raw::\n"); + for (i = 0; i < RPACK_LEN(rp); i++) { + if (i == 4) { + str = rpack_raw(rp, "F0ST4T4", 8); + str[7] = 0; + printf("\t%d) %s\n", i, str ? str : NULL); + i += 8; + } else { + str = rpack_raw(rp, NULL, 1); + printf("\t%d) %c\n", i, str ? *str : 0xff); + } + e_free(str); + } + RPACK_REWIND(rp); + for (i = 0; i < RPACK_LEN(rp); i++) { + str = rpack_raw(rp, NULL, 1); + printf("\t%d) %c\n", i, str ? *str : 0xff); + e_free(str); + } + RPACK_REWIND(rp); + printf("test rpack_uint8::\n"); for (i = 0; i < RPACK_LEN(rp); i++)