From owner-p4-projects@FreeBSD.ORG Wed Aug 27 02:57:06 2008 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id EF4E7106567E; Wed, 27 Aug 2008 02:57:05 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id B2DE81065673 for ; Wed, 27 Aug 2008 02:57:05 +0000 (UTC) (envelope-from diego@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 86ADC8FC16 for ; Wed, 27 Aug 2008 02:57:05 +0000 (UTC) (envelope-from diego@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.2/8.14.2) with ESMTP id m7R2v5oR068924 for ; Wed, 27 Aug 2008 02:57:05 GMT (envelope-from diego@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.2/8.14.1/Submit) id m7R2v5Tb068922 for perforce@freebsd.org; Wed, 27 Aug 2008 02:57:05 GMT (envelope-from diego@FreeBSD.org) Date: Wed, 27 Aug 2008 02:57:05 GMT Message-Id: <200808270257.m7R2v5Tb068922@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to diego@FreeBSD.org using -f From: Diego Giagio To: Perforce Change Reviews Cc: Subject: PERFORCE change 148576 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 27 Aug 2008 02:57:06 -0000 http://perforce.freebsd.org/chv.cgi?CH=148576 Change 148576 by diego@diego_black on 2008/08/27 02:56:36 Teach OpenBSM library and utilities about Sun OpenSolaris socket_ex token. Affected files ... .. //depot/projects/soc2008/diego-audit/src/contrib/openbsm/bsm/libbsm.h#2 edit .. //depot/projects/soc2008/diego-audit/src/contrib/openbsm/libbsm/bsm_io.c#2 edit Differences ... ==== //depot/projects/soc2008/diego-audit/src/contrib/openbsm/bsm/libbsm.h#2 (text) ==== @@ -537,21 +537,21 @@ } au_socket_t; /* + * socket domain 2 bytes * socket type 2 bytes + * ip address type 2 bytes * local port 2 bytes - * address type/length 4 bytes - * local Internet address 4 bytes/16 bytes (IPv4/IPv6 address) - * remote port 4 bytes - * address type/length 4 bytes - * remote Internet address 4 bytes/16 bytes (IPv4/IPv6 address) + * local address 4 bytes/16 bytes (IPv4/IPv6 address) + * remote port 2 bytes + * remote address 4 bytes/16 bytes (IPv4/IPv6 address) */ typedef struct { + u_int16_t domain; u_int16_t type; + u_int16_t addr_type; u_int16_t l_port; - u_int32_t l_ad_type; u_int32_t l_addr; - u_int32_t r_port; - u_int32_t r_ad_type; + u_int16_t r_port; u_int32_t r_addr; } au_socket_ex32_t; ==== //depot/projects/soc2008/diego-audit/src/contrib/openbsm/libbsm/bsm_io.c#2 (text) ==== @@ -557,7 +557,7 @@ break; case AUT_SOCKET_EX: - fprintf(fp, "tt.socket_ex32.domain, tok->len, + err); + if (err) + return (-1); + READ_TOKEN_U_INT16(buf, len, tok->tt.socket_ex32.type, tok->len, err); if (err) return (-1); - READ_TOKEN_BYTES(buf, len, &tok->tt.socket_ex32.l_port, - sizeof(uint16_t), tok->len, err); + READ_TOKEN_U_INT16(buf, len, tok->tt.socket_ex32.addr_type, tok->len, + err); if (err) return (-1); - READ_TOKEN_U_INT32(buf, len, tok->tt.socket_ex32.l_ad_type, tok->len, - err); + READ_TOKEN_BYTES(buf, len, &tok->tt.socket_ex32.l_port, + sizeof(uint16_t), tok->len, err); if (err) return (-1); @@ -3784,11 +3789,6 @@ if (err) return (-1); - READ_TOKEN_U_INT32(buf, len, tok->tt.socket_ex32.r_ad_type, tok->len, - err); - if (err) - return (-1); - READ_TOKEN_BYTES(buf, len, &tok->tt.socket_ex32.r_addr, sizeof(tok->tt.socket_ex32.r_addr), tok->len, err); if (err) @@ -3802,8 +3802,11 @@ __unused char sfrm, int xml) { - print_tok_type(fp, tok->id, "socket", raw, xml); + print_tok_type(fp, tok->id, "socket_ex", raw, xml); if (xml) { + open_attr(fp, "sock_domain"); + print_2_bytes(fp, tok->tt.socket_ex32.domain, "%#x"); + close_attr(fp); open_attr(fp, "sock_type"); print_2_bytes(fp, tok->tt.socket_ex32.type, "%#x"); close_attr(fp); @@ -3822,6 +3825,8 @@ close_tag(fp, tok->id); } else { print_delim(fp, del); + print_2_bytes(fp, tok->tt.socket_ex32.domain, "%#x"); + print_delim(fp, del); print_2_bytes(fp, tok->tt.socket_ex32.type, "%#x"); print_delim(fp, del); print_2_bytes(fp, ntohs(tok->tt.socket_ex32.l_port), "%#x");