summaryrefslogtreecommitdiffstats
path: root/contrib/openbsm/libbsm/bsm_io.c
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/openbsm/libbsm/bsm_io.c')
-rw-r--r--contrib/openbsm/libbsm/bsm_io.c98
1 files changed, 65 insertions, 33 deletions
diff --git a/contrib/openbsm/libbsm/bsm_io.c b/contrib/openbsm/libbsm/bsm_io.c
index 364532e..5f678fb 100644
--- a/contrib/openbsm/libbsm/bsm_io.c
+++ b/contrib/openbsm/libbsm/bsm_io.c
@@ -31,7 +31,7 @@
* IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*
- * $P4: //depot/projects/trustedbsd/openbsm/libbsm/bsm_io.c#34 $
+ * $P4: //depot/projects/trustedbsd/openbsm/libbsm/bsm_io.c#37 $
*/
#include <sys/types.h>
@@ -893,6 +893,7 @@ fetch_arb_tok(tokenstr_t *tok, char *buf, int len)
*/
switch(tok->tt.arb.bu) {
case AUR_BYTE:
+ /* case AUR_CHAR: */
datasize = AUR_BYTE_SIZE;
break;
@@ -900,8 +901,13 @@ fetch_arb_tok(tokenstr_t *tok, char *buf, int len)
datasize = AUR_SHORT_SIZE;
break;
- case AUR_LONG:
- datasize = AUR_LONG_SIZE;
+ case AUR_INT32:
+ /* case AUR_INT: */
+ datasize = AUR_INT32_SIZE;
+ break;
+
+ case AUR_INT64:
+ datasize = AUR_INT64_SIZE;
break;
default:
@@ -962,6 +968,7 @@ print_arb_tok(FILE *fp, tokenstr_t *tok, char *del, char raw,
print_delim(fp, del);
switch(tok->tt.arb.bu) {
case AUR_BYTE:
+ /* case AUR_CHAR: */
str = "byte";
size = AUR_BYTE_SIZE;
print_string(fp, str, strlen(str));
@@ -979,23 +986,36 @@ print_arb_tok(FILE *fp, tokenstr_t *tok, char *del, char raw,
print_delim(fp, del);
print_1_byte(fp, tok->tt.arb.uc, "%u");
print_delim(fp, del);
- for (i = 0; i<tok->tt.arb.uc; i++)
+ for (i = 0; i < tok->tt.arb.uc; i++)
fprintf(fp, format, *((u_int16_t *)(tok->tt.arb.data +
(size * i))));
break;
- case AUR_LONG:
+ case AUR_INT32:
+ /* case AUR_INT: */
str = "int";
- size = AUR_LONG_SIZE;
+ size = AUR_INT32_SIZE;
print_string(fp, str, strlen(str));
print_delim(fp, del);
print_1_byte(fp, tok->tt.arb.uc, "%u");
print_delim(fp, del);
- for (i = 0; i<tok->tt.arb.uc; i++)
+ for (i = 0; i < tok->tt.arb.uc; i++)
fprintf(fp, format, *((u_int32_t *)(tok->tt.arb.data +
(size * i))));
break;
+ case AUR_INT64:
+ str = "int64";
+ size = AUR_INT64_SIZE;
+ print_string(fp, str, strlen(str));
+ print_delim(fp, del);
+ print_1_byte(fp, tok->tt.arb.uc, "%u");
+ print_delim(fp, del);
+ for (i = 0; i < tok->tt.arb.uc; i++)
+ fprintf(fp, format, *((u_int64_t *)(tok->tt.arb.data +
+ (size * i))));
+ break;
+
default:
return;
}
@@ -1336,7 +1356,8 @@ fetch_inaddr_tok(tokenstr_t *tok, char *buf, int len)
{
int err = 0;
- READ_TOKEN_U_INT32(buf, len, tok->tt.inaddr.addr, tok->len, err);
+ READ_TOKEN_BYTES(buf, len, &tok->tt.inaddr.addr, sizeof(uint32_t),
+ tok->len, err);
if (err)
return (-1);
@@ -1410,15 +1431,18 @@ fetch_ip_tok(tokenstr_t *tok, char *buf, int len)
if (err)
return (-1);
- READ_TOKEN_U_INT16(buf, len, tok->tt.ip.len, tok->len, err);
+ READ_TOKEN_BYTES(buf, len, &tok->tt.ip.len, sizeof(uint16_t),
+ tok->len, err);
if (err)
return (-1);
- READ_TOKEN_U_INT16(buf, len, tok->tt.ip.id, tok->len, err);
+ READ_TOKEN_BYTES(buf, len, &tok->tt.ip.id, sizeof(uint16_t),
+ tok->len, err);
if (err)
return (-1);
- READ_TOKEN_U_INT16(buf, len, tok->tt.ip.offset, tok->len, err);
+ READ_TOKEN_BYTES(buf, len, &tok->tt.ip.offset, sizeof(uint16_t),
+ tok->len, err);
if (err)
return (-1);
@@ -1430,7 +1454,8 @@ fetch_ip_tok(tokenstr_t *tok, char *buf, int len)
if (err)
return (-1);
- READ_TOKEN_U_INT16(buf, len, tok->tt.ip.chksm, tok->len, err);
+ READ_TOKEN_BYTES(buf, len, &tok->tt.ip.chksm, sizeof(uint16_t),
+ tok->len, err);
if (err)
return (-1);
@@ -1458,17 +1483,17 @@ print_ip_tok(FILE *fp, tokenstr_t *tok, char *del, char raw,
print_delim(fp, del);
print_mem(fp, (u_char *)(&tok->tt.ip.tos), sizeof(u_char));
print_delim(fp, del);
- print_2_bytes(fp, tok->tt.ip.len, "%u");
+ print_2_bytes(fp, ntohs(tok->tt.ip.len), "%u");
print_delim(fp, del);
- print_2_bytes(fp, tok->tt.ip.id, "%u");
+ print_2_bytes(fp, ntohs(tok->tt.ip.id), "%u");
print_delim(fp, del);
- print_2_bytes(fp, tok->tt.ip.offset, "%u");
+ print_2_bytes(fp, ntohs(tok->tt.ip.offset), "%u");
print_delim(fp, del);
print_mem(fp, (u_char *)(&tok->tt.ip.ttl), sizeof(u_char));
print_delim(fp, del);
print_mem(fp, (u_char *)(&tok->tt.ip.prot), sizeof(u_char));
print_delim(fp, del);
- print_2_bytes(fp, tok->tt.ip.chksm, "%u");
+ print_2_bytes(fp, ntohs(tok->tt.ip.chksm), "%u");
print_delim(fp, del);
print_ip_address(fp, tok->tt.ip.src);
print_delim(fp, del);
@@ -1582,7 +1607,8 @@ fetch_iport_tok(tokenstr_t *tok, char *buf, int len)
{
int err = 0;
- READ_TOKEN_U_INT16(buf, len, tok->tt.iport.port, tok->len, err);
+ READ_TOKEN_BYTES(buf, len, &tok->tt.iport.port, sizeof(uint16_t),
+ tok->len, err);
if (err)
return (-1);
@@ -1596,7 +1622,7 @@ print_iport_tok(FILE *fp, tokenstr_t *tok, char *del, char raw,
print_tok_type(fp, tok->id, "ip port", raw);
print_delim(fp, del);
- print_2_bytes(fp, tok->tt.iport.port, "%#x");
+ print_2_bytes(fp, ntohs(tok->tt.iport.port), "%#x");
}
/*
@@ -1712,7 +1738,8 @@ fetch_process32_tok(tokenstr_t *tok, char *buf, int len)
if (err)
return (-1);
- READ_TOKEN_U_INT32(buf, len, tok->tt.proc32.tid.addr, tok->len, err);
+ READ_TOKEN_BYTES(buf, len, &tok->tt.proc32.tid.addr,
+ sizeof(tok->tt.proc32.tid.addr), tok->len, err);
if (err)
return (-1);
@@ -1931,7 +1958,8 @@ fetch_sock_inet32_tok(tokenstr_t *tok, char *buf, int len)
if (err)
return (-1);
- READ_TOKEN_U_INT16(buf, len, tok->tt.sockinet32.port, tok->len, err);
+ READ_TOKEN_BYTES(buf, len, &tok->tt.sockinet32.port,
+ sizeof(uint16_t), tok->len, err);
if (err)
return (-1);
@@ -1952,7 +1980,7 @@ print_sock_inet32_tok(FILE *fp, tokenstr_t *tok, char *del, char raw,
print_delim(fp, del);
print_2_bytes(fp, tok->tt.sockinet32.family, "%u");
print_delim(fp, del);
- print_2_bytes(fp, tok->tt.sockinet32.port, "%u");
+ print_2_bytes(fp, ntohs(tok->tt.sockinet32.port), "%u");
print_delim(fp, del);
print_ip_address(fp, tok->tt.sockinet32.addr);
}
@@ -1961,7 +1989,8 @@ print_sock_inet32_tok(FILE *fp, tokenstr_t *tok, char *del, char raw,
* socket family 2 bytes
* path 104 bytes
*/
-static int fetch_sock_unix_tok(tokenstr_t *tok, char *buf, int len)
+static int
+fetch_sock_unix_tok(tokenstr_t *tok, char *buf, int len)
{
int err = 0;
@@ -1997,7 +2026,8 @@ print_sock_unix_tok(FILE *fp, tokenstr_t *tok, char *del, char raw,
* remote port 2 bytes
* remote address 4 bytes
*/
-static int fetch_socket_tok(tokenstr_t *tok, char *buf, int len)
+static int
+fetch_socket_tok(tokenstr_t *tok, char *buf, int len)
{
int err = 0;
@@ -2005,7 +2035,8 @@ static int fetch_socket_tok(tokenstr_t *tok, char *buf, int len)
if (err)
return (-1);
- READ_TOKEN_U_INT16(buf, len, tok->tt.socket.l_port, tok->len, err);
+ READ_TOKEN_BYTES(buf, len, &tok->tt.socket.l_port, sizeof(uint16_t),
+ tok->len, err);
if (err)
return (-1);
@@ -2014,7 +2045,8 @@ static int fetch_socket_tok(tokenstr_t *tok, char *buf, int len)
if (err)
return (-1);
- READ_TOKEN_U_INT16(buf, len, tok->tt.socket.r_port, tok->len, err);
+ READ_TOKEN_BYTES(buf, len, &tok->tt.socket.r_port, sizeof(uint16_t),
+ tok->len, err);
if (err)
return (-1);
@@ -2035,11 +2067,11 @@ print_socket_tok(FILE *fp, tokenstr_t *tok, char *del, char raw,
print_delim(fp, del);
print_2_bytes(fp, tok->tt.socket.type, "%u");
print_delim(fp, del);
- print_2_bytes(fp, tok->tt.socket.l_port, "%u");
+ print_2_bytes(fp, ntohs(tok->tt.socket.l_port), "%u");
print_delim(fp, del);
print_ip_address(fp, tok->tt.socket.l_addr);
print_delim(fp, del);
- print_2_bytes(fp, tok->tt.socket.r_port, "%u");
+ print_2_bytes(fp, ntohs(tok->tt.socket.r_port), "%u");
print_delim(fp, del);
print_ip_address(fp, tok->tt.socket.r_addr);
}
@@ -2359,8 +2391,8 @@ fetch_socketex32_tok(tokenstr_t *tok, char *buf, int len)
if (err)
return (-1);
- READ_TOKEN_U_INT16(buf, len, tok->tt.socket_ex32.l_port, tok->len,
- err);
+ READ_TOKEN_BYTES(buf, len, &tok->tt.socket_ex32.l_port,
+ sizeof(uint16_t), tok->len, err);
if (err)
return (-1);
@@ -2374,8 +2406,8 @@ fetch_socketex32_tok(tokenstr_t *tok, char *buf, int len)
if (err)
return (-1);
- READ_TOKEN_U_INT32(buf, len, tok->tt.socket_ex32.r_port, tok->len,
- err);
+ READ_TOKEN_BYTES(buf, len, &tok->tt.socket_ex32.r_port,
+ sizeof(uint16_t), tok->len, err);
if (err)
return (-1);
@@ -2401,11 +2433,11 @@ print_socketex32_tok(FILE *fp, tokenstr_t *tok, char *del, char raw,
print_delim(fp, del);
print_2_bytes(fp, tok->tt.socket_ex32.type, "%#x");
print_delim(fp, del);
- print_2_bytes(fp, tok->tt.socket_ex32.l_port, "%#x");
+ print_2_bytes(fp, ntohs(tok->tt.socket_ex32.l_port), "%#x");
print_delim(fp, del);
print_ip_address(fp, tok->tt.socket_ex32.l_addr);
print_delim(fp, del);
- print_4_bytes(fp, tok->tt.socket_ex32.r_port, "%#x");
+ print_4_bytes(fp, ntohs(tok->tt.socket_ex32.r_port), "%#x");
print_delim(fp, del);
print_ip_address(fp, tok->tt.socket_ex32.r_addr);
}
OpenPOWER on IntegriCloud