Annotation of libelwix/example/test_pack.c, revision 1.4.2.1
1.2 misho 1: #include <stdio.h>
2: #include <string.h>
3: #include <elwix.h>
4:
5:
6: int
7: main(int argc, char **argv)
8: {
9: rpack_t *rp;
10: register int i;
11: char n8 = '*';
12: short n16 = 0xdeba;
13: int n32 = 0xdeadbeef;
14: long long int n64 = 0x123456789abcdef0;
1.4 misho 15: char *str;
1.2 misho 16:
17: if (argc < 2)
18: return 1;
19:
20: rp = rpack_create(argv[1], strlen(argv[1]) + 1);
21: if (!rp) {
22: printf("#%d - %s\n", elwix_GetErrno(), elwix_GetError());
23: return 2;
24: } else
25: printf("create raw packet %p -> %s(%d)\n", rp, rp->r_buf, rp->r_len);
26:
1.4 misho 27: printf("test rpack_data::\n");
28: for (i = 0; i < RPACK_LEN(rp); i++) {
29: if (i == 4) {
30: str = rpack_data(rp, "F0ST4T4", 8);
31: str[7] = 0;
32: printf("\t%d) %s\n", i, str ? str : NULL);
33: i += 8;
34: } else {
35: str = rpack_data(rp, NULL, 1);
36: printf("\t%d) %c\n", i, str ? *str : 0xff);
37: }
38: e_free(str);
39: }
40: RPACK_REWIND(rp);
41: for (i = 0; i < RPACK_LEN(rp); i++) {
42: str = rpack_data(rp, NULL, 1);
43: printf("\t%d) %c\n", i, str ? *str : 0xff);
44: e_free(str);
45: }
46: RPACK_REWIND(rp);
47:
48: printf("test rpack_raw::\n");
49: for (i = 0; i < RPACK_LEN(rp); i++) {
50: if (i == 4) {
1.4.2.1 ! misho 51: str = rpack_rdata(rp, "F0ST4T4", 8);
1.4 misho 52: str[7] = 0;
53: printf("\t%d) %s\n", i, str ? str : NULL);
54: i += 8;
55: } else {
1.4.2.1 ! misho 56: str = rpack_rdata(rp, NULL, 1);
1.4 misho 57: printf("\t%d) %c\n", i, str ? *str : 0xff);
58: }
59: e_free(str);
60: }
61: RPACK_REWIND(rp);
62: for (i = 0; i < RPACK_LEN(rp); i++) {
1.4.2.1 ! misho 63: str = rpack_rdata(rp, NULL, 1);
1.4 misho 64: printf("\t%d) %c\n", i, str ? *str : 0xff);
65: e_free(str);
66: }
67: RPACK_REWIND(rp);
68:
69:
1.2 misho 70: printf("test rpack_uint8::\n");
71: for (i = 0; i < RPACK_LEN(rp); i++)
72: if (i == 4)
73: printf("\t%d) %c\n", i, rpack_uint8(rp, (uint8_t*) &n8));
74: else
75: printf("\t%d) %c\n", i, rpack_uint8(rp, NULL));
76: RPACK_REWIND(rp);
77: for (i = 0; i < RPACK_LEN(rp); i++)
78: printf("\t%d) %c\n", i, rpack_uint8(rp, NULL));
79: RPACK_REWIND(rp);
80:
81: printf("test rpack_uint16::\n");
82: for (i = 0; i < RPACK_LEN(rp); i++)
83: if (i == 4)
1.3 misho 84: printf("\t%d) %x\n", i, rpack_uint16(rp, (uint16_t*) &n16, 0));
1.2 misho 85: else
1.3 misho 86: printf("\t%d) %x\n", i, rpack_uint16(rp, NULL, 0));
1.2 misho 87: RPACK_REWIND(rp);
88: for (i = 0; i < RPACK_LEN(rp); i++)
1.3 misho 89: printf("\t%d) %x\n", i, rpack_uint16(rp, NULL, 0));
1.2 misho 90: RPACK_REWIND(rp);
91:
1.4.2.1 ! misho 92: printf("test rpack_ruint16::\n");
! 93: for (i = 0; i < RPACK_LEN(rp); i++)
! 94: if (i == 4)
! 95: printf("\t%d) %x\n", i, rpack_ruint16(rp, (uint16_t*) &n16, 0));
! 96: else
! 97: printf("\t%d) %x\n", i, rpack_ruint16(rp, NULL, 0));
! 98: RPACK_REWIND(rp);
! 99: for (i = 0; i < RPACK_LEN(rp); i++)
! 100: printf("\t%d) %x\n", i, rpack_ruint16(rp, NULL, 0));
! 101: RPACK_REWIND(rp);
! 102:
1.2 misho 103: printf("test rpack_uint24::\n");
104: for (i = 0; i < RPACK_LEN(rp); i++)
105: if (i == 4)
1.3 misho 106: printf("\t%d) %x\n", i, rpack_uint24(rp, (uint32_t*) &n32, 0));
1.2 misho 107: else
1.3 misho 108: printf("\t%d) %x\n", i, rpack_uint24(rp, NULL, 0));
1.2 misho 109: RPACK_REWIND(rp);
110: for (i = 0; i < RPACK_LEN(rp); i++)
1.3 misho 111: printf("\t%d) %x\n", i, rpack_uint24(rp, NULL, 0));
1.2 misho 112: RPACK_REWIND(rp);
113:
1.4.2.1 ! misho 114: printf("test rpack_ruint24::\n");
! 115: for (i = 0; i < RPACK_LEN(rp); i++)
! 116: if (i == 4)
! 117: printf("\t%d) %x\n", i, rpack_ruint24(rp, (uint32_t*) &n32, 0));
! 118: else
! 119: printf("\t%d) %x\n", i, rpack_ruint24(rp, NULL, 0));
! 120: RPACK_REWIND(rp);
! 121: for (i = 0; i < RPACK_LEN(rp); i++)
! 122: printf("\t%d) %x\n", i, rpack_ruint24(rp, NULL, 0));
! 123: RPACK_REWIND(rp);
! 124:
1.2 misho 125: printf("test rpack_uint32::\n");
126: for (i = 0; i < RPACK_LEN(rp); i++)
127: if (i == 4)
1.3 misho 128: printf("\t%d) %x\n", i, rpack_uint32(rp, (uint32_t*) &n32, 0));
1.2 misho 129: else
1.3 misho 130: printf("\t%d) %x\n", i, rpack_uint32(rp, NULL, 0));
1.2 misho 131: RPACK_REWIND(rp);
132: for (i = 0; i < RPACK_LEN(rp); i++)
1.3 misho 133: printf("\t%d) %x\n", i, rpack_uint32(rp, NULL, 0));
1.2 misho 134: RPACK_REWIND(rp);
135:
1.4.2.1 ! misho 136: printf("test rpack_ruint32::\n");
! 137: for (i = 0; i < RPACK_LEN(rp); i++)
! 138: if (i == 4)
! 139: printf("\t%d) %x\n", i, rpack_ruint32(rp, (uint32_t*) &n32, 0));
! 140: else
! 141: printf("\t%d) %x\n", i, rpack_ruint32(rp, NULL, 0));
! 142: RPACK_REWIND(rp);
! 143: for (i = 0; i < RPACK_LEN(rp); i++)
! 144: printf("\t%d) %x\n", i, rpack_ruint32(rp, NULL, 0));
! 145: RPACK_REWIND(rp);
! 146:
1.2 misho 147: printf("test rpack_uint64::\n");
148: for (i = 0; i < RPACK_LEN(rp); i++)
149: if (i == 4)
1.3 misho 150: printf("\t%d) %llx\n", i, rpack_uint64(rp, (uint64_t*) &n64, 0));
1.2 misho 151: else
1.3 misho 152: printf("\t%d) %llx\n", i, rpack_uint64(rp, NULL, 0));
1.2 misho 153: RPACK_REWIND(rp);
154: for (i = 0; i < RPACK_LEN(rp); i++)
1.3 misho 155: printf("\t%d) %llx\n", i, rpack_uint64(rp, NULL, 0));
1.2 misho 156: RPACK_REWIND(rp);
157:
1.4.2.1 ! misho 158: printf("test rpack_ruint64::\n");
! 159: for (i = 0; i < RPACK_LEN(rp); i++)
! 160: if (i == 4)
! 161: printf("\t%d) %llx\n", i, rpack_ruint64(rp, (uint64_t*) &n64, 0));
! 162: else
! 163: printf("\t%d) %llx\n", i, rpack_ruint64(rp, NULL, 0));
! 164: RPACK_REWIND(rp);
! 165: for (i = 0; i < RPACK_LEN(rp); i++)
! 166: printf("\t%d) %llx\n", i, rpack_ruint64(rp, NULL, 0));
! 167: RPACK_REWIND(rp);
! 168:
1.2 misho 169: rpack_destroy(&rp);
170: printf("destroy packet %p\n", rp);
171: return 0;
172: }
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>