File:  [ELWIX - Embedded LightWeight unIX -] / libelwix / example / test_pack.c
Revision 1.5: download - view: text, annotated - select for diffs - revision graph
Tue Feb 11 01:06:19 2014 UTC (10 years, 3 months ago) by misho
Branches: MAIN
CVS tags: elwix5_9, elwix5_8, elwix5_7, elwix5_6, elwix5_5, elwix5_4, elwix5_3, elwix5_2, elwix5_11, elwix5_10, elwix5_1, elwix5_0, elwix4_9, elwix4_8, elwix4_7, elwix4_6, elwix4_5, elwix4_4, elwix4_3, elwix4_26, elwix4_25, elwix4_24, elwix4_23, elwix4_22, elwix4_21, elwix4_20, elwix4_2, elwix4_19, elwix4_18, elwix4_17, elwix4_16, elwix4_15, elwix4_14, elwix4_13, elwix4_12, elwix4_11, elwix4_10, elwix4_1, elwix3_9, elwix3_8, elwix3_7, elwix3_6, elwix3_5, elwix3_4, elwix3_3, HEAD, ELWIX5_9, ELWIX5_8, ELWIX5_7, ELWIX5_6, ELWIX5_5, ELWIX5_4, ELWIX5_3, ELWIX5_2, ELWIX5_10, ELWIX5_1, ELWIX5_0, ELWIX4_9, ELWIX4_8, ELWIX4_7, ELWIX4_6, ELWIX4_5, ELWIX4_4, ELWIX4_3, ELWIX4_26, ELWIX4_25, ELWIX4_24, ELWIX4_23, ELWIX4_22, ELWIX4_21, ELWIX4_20, ELWIX4_2, ELWIX4_19, ELWIX4_18, ELWIX4_17, ELWIX4_16, ELWIX4_15, ELWIX4_14, ELWIX4_13, ELWIX4_12, ELWIX4_11, ELWIX4_10, ELWIX4_1, ELWIX4_0, ELWIX3_8, ELWIX3_7, ELWIX3_6, ELWIX3_5, ELWIX3_4, ELWIX3_3, ELWIX3_2
version 3.2

    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;
   15: 	char *str;
   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: 
   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) {
   51: 			str = rpack_rdata(rp, "F0ST4T4", 8);
   52: 			str[7] = 0;
   53: 			printf("\t%d) %s\n", i, str ? str : NULL);
   54: 			i += 8;
   55: 		} else {
   56: 			str = rpack_rdata(rp, NULL, 1);
   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++) {
   63: 		str = rpack_rdata(rp, NULL, 1);
   64: 		printf("\t%d) %c\n", i, str ? *str : 0xff);
   65: 		e_free(str);
   66: 	}
   67: 	RPACK_REWIND(rp);
   68: 
   69: 
   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)
   84: 			printf("\t%d) %x\n", i, rpack_uint16(rp, (uint16_t*) &n16, 0));
   85: 		else
   86: 			printf("\t%d) %x\n", i, rpack_uint16(rp, NULL, 0));
   87: 	RPACK_REWIND(rp);
   88: 	for (i = 0; i < RPACK_LEN(rp); i++)
   89: 		printf("\t%d) %x\n", i, rpack_uint16(rp, NULL, 0));
   90: 	RPACK_REWIND(rp);
   91: 
   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: 
  103: 	printf("test rpack_uint24::\n");
  104: 	for (i = 0; i < RPACK_LEN(rp); i++)
  105: 		if (i == 4)
  106: 			printf("\t%d) %x\n", i, rpack_uint24(rp, (uint32_t*) &n32, 0));
  107: 		else
  108: 			printf("\t%d) %x\n", i, rpack_uint24(rp, NULL, 0));
  109: 	RPACK_REWIND(rp);
  110: 	for (i = 0; i < RPACK_LEN(rp); i++)
  111: 		printf("\t%d) %x\n", i, rpack_uint24(rp, NULL, 0));
  112: 	RPACK_REWIND(rp);
  113: 
  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: 
  125: 	printf("test rpack_uint32::\n");
  126: 	for (i = 0; i < RPACK_LEN(rp); i++)
  127: 		if (i == 4)
  128: 			printf("\t%d) %x\n", i, rpack_uint32(rp, (uint32_t*) &n32, 0));
  129: 		else
  130: 			printf("\t%d) %x\n", i, rpack_uint32(rp, NULL, 0));
  131: 	RPACK_REWIND(rp);
  132: 	for (i = 0; i < RPACK_LEN(rp); i++)
  133: 		printf("\t%d) %x\n", i, rpack_uint32(rp, NULL, 0));
  134: 	RPACK_REWIND(rp);
  135: 
  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: 
  147: 	printf("test rpack_uint64::\n");
  148: 	for (i = 0; i < RPACK_LEN(rp); i++)
  149: 		if (i == 4)
  150: 			printf("\t%d) %llx\n", i, rpack_uint64(rp, (uint64_t*) &n64, 0));
  151: 		else
  152: 			printf("\t%d) %llx\n", i, rpack_uint64(rp, NULL, 0));
  153: 	RPACK_REWIND(rp);
  154: 	for (i = 0; i < RPACK_LEN(rp); i++)
  155: 		printf("\t%d) %llx\n", i, rpack_uint64(rp, NULL, 0));
  156: 	RPACK_REWIND(rp);
  157: 
  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: 
  169: 	rpack_destroy(&rp);
  170: 	printf("destroy packet %p\n", rp);
  171: 	return 0;
  172: }

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>