1 /*
2 * CDDL HEADER START
3 *
4 * The contents of this file are subject to the terms of the
5 * Common Development and Distribution License, Version 1.0 only
6 * (the "License"). You may not use this file except in compliance
7 * with the License.
8 *
9 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
10 * or http://www.opensolaris.org/os/licensing.
11 * See the License for the specific language governing permissions
12 * and limitations under the License.
13 *
14 * When distributing Covered Code, include this CDDL HEADER in each
15 * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
16 * If applicable, add the following below this CDDL HEADER, with the
17 * fields enclosed by brackets "[]" replaced with your own identifying
18 * information: Portions Copyright [yyyy] [name of copyright owner]
19 *
20 * CDDL HEADER END
21 */
22 /*
23 * Copyright 1996 Sun Microsystems, Inc. All rights reserved.
24 * Use is subject to license terms.
25 */
26 #pragma ident "%Z%%M% %I% %E% SMI"
27
28 #include <stdio.h>
29 #include <sys/types.h>
30 #include <netinet/in.h>
31
32 #include "asn1.h"
33 #include "error.h"
34 #include "pdu.h"
35
36
37 #define BUFFER_SZ 10
38
39 static u_char static_buffer[] = { 0x41, 0x03, 0xF5, 0x1E, 0x5C };
40
41 static void second_test(long value, u_char asn_type);
42 static void third_test();
43
44
main()45 main()
46 {
47 u_char *p;
48 int len;
49 long integer = 0;
50 u_char type = 0;
51
52
53 /* 1st test */
54
55 len = sizeof(static_buffer);
56 integer = 0;
57 type = 0;
58 p = asn_parse_int(static_buffer, &len, &type, &integer, sizeof(long), error_label);
59 if(p == NULL)
60 {
61 fprintf(stderr, "asn_parse_int() failed: %s\n", error_label);
62 exit(1);
63 }
64 printf("type: 0x%x\n", type);
65 printf("integer: %ld\n", integer);
66 printf("\n");
67
68
69 /* 2nd test */
70
71 second_test(0xFF, COUNTER);
72 second_test(-0xFF, COUNTER);
73
74 second_test(0xFFFF, COUNTER);
75 second_test(-0xFFFF, COUNTER);
76
77 second_test(0xFFFFFF, COUNTER);
78 second_test(-0xFFFFFF, COUNTER);
79
80 second_test(16523569, COUNTER);
81 second_test(-1363058786, COUNTER);
82
83
84 /* 3rd test */
85
86 third_test();
87
88
89 exit(0);
90
91 }
92
93
second_test(long value,u_char asn_type)94 static void second_test(long value, u_char asn_type)
95 {
96 u_char *p;
97 int len;
98 long integer = 0;
99 u_char type = 0;
100 u_char buffer[BUFFER_SZ];
101 int i;
102
103
104 printf("VALUE: %ld - TYPE: 0x%x\n\n", value, asn_type);
105
106 integer = value;
107 type = asn_type;
108 memset(buffer, 0, sizeof(buffer));
109 len = BUFFER_SZ;
110 p = asn_build_int(buffer, &len, type, &integer, sizeof(long), error_label);
111 if(p == NULL)
112 {
113 fprintf(stderr, "asn_build_int() failed: %s\n", error_label);
114 exit(1);
115 }
116 printf("len: %d\n", len);
117 printf("buffer: ");
118 for(i = 0; i < BUFFER_SZ; i++)
119 {
120 printf(" %02x", buffer[i]);
121 }
122 printf("\n");
123
124 integer = 0;
125 type = 0;
126 len = BUFFER_SZ;
127 p = asn_parse_int(buffer, &len, &type, &integer, sizeof(long), error_label);
128 if(p == NULL)
129 {
130 fprintf(stderr, "asn_parse_int() failed: %s\n", error_label);
131 exit(1);
132 }
133 printf("type: 0x%x\n", type);
134 printf("integer: %ld\n", integer);
135 printf("\n");
136 }
137
138
third_test()139 static void third_test()
140 {
141 SNMP_pdu *pdu;
142
143 pdu = snmp_pdu_new(error_label);
144 }
145