PERFORCE change 167001 for review
Stacey Son
sson at FreeBSD.org
Tue Aug 4 18:23:14 UTC 2009
http://perforce.freebsd.org/chv.cgi?CH=167001
Change 167001 by sson at sson_amd64 on 2009/08/04 18:22:38
Addition of au_write_tok() to au_io(3) API.
We consolidate the 'raw', 'xml', and 'sfrm' (short format)
flag arguments into a single bit field argument for all the
bsm_io.c output formatting functions. This cleans up the
code and makes it much easier to add new formatting flags
in the future.
Affected files ...
.. //depot/projects/trustedbsd/openbsm/bsm/libbsm.h#46 edit
.. //depot/projects/trustedbsd/openbsm/libbsm/au_io.3#6 edit
.. //depot/projects/trustedbsd/openbsm/libbsm/bsm_io.c#64 edit
Differences ...
==== //depot/projects/trustedbsd/openbsm/bsm/libbsm.h#46 (text+ko) ====
@@ -26,7 +26,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/bsm/libbsm.h#45 $
+ * $P4: //depot/projects/trustedbsd/openbsm/bsm/libbsm.h#46 $
*/
#ifndef _LIBBSM_H_
@@ -100,6 +100,14 @@
#define AU_TO_NO_WRITE 0 /* Abandon audit record. */
#define AU_TO_WRITE 1 /* Commit audit record. */
+/*
+ * Output format flags to au_write_tok().
+ */
+#define AU_OFLAG_NONE 0x0000 /* Default form. */
+#define AU_OFLAG_RAW 0x0001 /* Raw, numeric form. */
+#define AU_OFLAG_SHORT 0x0002 /* Short form. */
+#define AU_OFLAG_XML 0x0004 /* XML form. */
+
__BEGIN_DECLS
struct au_event_ent {
au_event_t ae_number;
@@ -823,6 +831,8 @@
char *del, char raw, char sfrm);
void au_print_tok_xml(FILE *outfp, tokenstr_t *tok,
char *del, char raw, char sfrm);
+void au_write_tok(FILE *outfp, tokenstr_t *tok,
+ char *del, int oflags);
/*
* Functions relating to XML output.
==== //depot/projects/trustedbsd/openbsm/libbsm/au_io.3#6 (text+ko) ====
@@ -23,9 +23,9 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
-.\" $P4: //depot/projects/trustedbsd/openbsm/libbsm/au_io.3#5 $
+.\" $P4: //depot/projects/trustedbsd/openbsm/libbsm/au_io.3#6 $
.\"
-.Dd April 19, 2005
+.Dd August 4, 2009
.Dt AU_IO 3
.Os
.Sh NAME
@@ -45,6 +45,10 @@
.Fc
.Ft int
.Fn au_read_rec "FILE *fp" "u_char **buf"
+.Ft void
+.Fo au_write_tok
+.Fa "FILE *outfp" "tokenstr_t *tok" "char *del" "int oflags"
+.Fc
.Sh DESCRIPTION
These interfaces support input and output (I/O) involving audit records,
internalizing an audit record from a byte stream, converting a token to
@@ -73,7 +77,29 @@
The delimiter
.Fa del
is used when printing.
+The
+.Fn au_write_tok
+function is a replacement for
+.Fn au_print_tok .
+The
+.Fa oflags
+controls how the output should be formatted and is specified by
+or'ing the following flags:
.Pp
+.Bl -tag -width AU_OFLAG_SHORT -compact -offset indent
+.It Li AU_OFLAG_NONE
+Use the default form.
+.It Li AU_OFLAG_RAW
+Use the raw, numeric form.
+.It Li AU_OFLAG_SHORT
+Use the short form.
+.It Li AU_OFLAG_XML
+Use the XML form.
+.El
+.Pp
+The flags options AU_OFLAG_SHORT and AU_OFLAG_RAW are exclusive and
+should not be used together.
+.Pp
The
.Fn au_read_rec
function
@@ -92,7 +118,7 @@
calls to
.Fn au_fetch_tok
on the buffer, and then invoking
-.Fn au_print_tok
+.Fn au_write_tok
to print each token to an output stream such as
.Dv stdout .
On completion of the processing of each record, a call to
==== //depot/projects/trustedbsd/openbsm/libbsm/bsm_io.c#64 (text+ko) ====
@@ -1,5 +1,5 @@
/*-
- * Copyright (c) 2004-2008 Apple Inc.
+ * Copyright (c) 2004-2009 Apple Inc.
* Copyright (c) 2005 SPARTA, Inc.
* Copyright (c) 2006 Robert N. M. Watson
* Copyright (c) 2006 Martin Voros
@@ -32,7 +32,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#63 $
+ * $P4: //depot/projects/trustedbsd/openbsm/libbsm/bsm_io.c#64 $
*/
#include <sys/types.h>
@@ -407,10 +407,10 @@
* Prints the token type in either the raw or the default form.
*/
static void
-print_tok_type(FILE *fp, u_char type, const char *tokname, char raw, int xml)
+print_tok_type(FILE *fp, u_char type, const char *tokname, int oflags)
{
- if (xml) {
+ if (oflags & AU_OFLAG_XML) {
switch(type) {
case AUT_HEADER32:
fprintf(fp, "<record ");
@@ -576,7 +576,7 @@
break;
}
} else {
- if (raw)
+ if (oflags & AU_OFLAG_RAW)
fprintf(fp, "%u", type);
else
fprintf(fp, "%s", tokname);
@@ -587,11 +587,11 @@
* Prints a user value.
*/
static void
-print_user(FILE *fp, u_int32_t usr, char raw)
+print_user(FILE *fp, u_int32_t usr, int oflags)
{
struct passwd *pwent;
- if (raw)
+ if (oflags & AU_OFLAG_RAW)
fprintf(fp, "%d", usr);
else {
pwent = getpwuid(usr);
@@ -606,11 +606,11 @@
* Prints a group value.
*/
static void
-print_group(FILE *fp, u_int32_t grp, char raw)
+print_group(FILE *fp, u_int32_t grp, int oflags)
{
struct group *grpent;
- if (raw)
+ if (oflags & AU_OFLAG_RAW)
fprintf(fp, "%d", grp);
else {
grpent = getgrgid(grp);
@@ -626,7 +626,7 @@
* form.
*/
static void
-print_event(FILE *fp, u_int16_t ev, char raw, char sfrm)
+print_event(FILE *fp, u_int16_t ev, int oflags)
{
char event_ent_name[AU_EVENT_NAME_MAX];
char event_ent_desc[AU_EVENT_DESC_MAX];
@@ -644,9 +644,9 @@
return;
}
- if (raw)
+ if (oflags & AU_OFLAG_RAW)
fprintf(fp, "%u", ev);
- else if (sfrm)
+ else if (oflags & AU_OFLAG_SHORT)
fprintf(fp, "%s", e.ae_name);
else
fprintf(fp, "%s", e.ae_desc);
@@ -658,9 +658,9 @@
* raw form.
*/
static void
-print_evmod(FILE *fp, u_int16_t evmod, char raw)
+print_evmod(FILE *fp, u_int16_t evmod, int oflags)
{
- if (raw)
+ if (oflags & AU_OFLAG_RAW)
fprintf(fp, "%u", evmod);
else
fprintf(fp, "%u", evmod);
@@ -670,12 +670,12 @@
* Prints seconds in the ctime format.
*/
static void
-print_sec32(FILE *fp, u_int32_t sec, char raw)
+print_sec32(FILE *fp, u_int32_t sec, int oflags)
{
time_t timestamp;
char timestr[26];
- if (raw)
+ if (oflags & AU_OFLAG_RAW)
fprintf(fp, "%u", sec);
else {
timestamp = (time_t)sec;
@@ -690,12 +690,12 @@
* assume a 32-bit time_t, we simply truncate for now.
*/
static void
-print_sec64(FILE *fp, u_int64_t sec, char raw)
+print_sec64(FILE *fp, u_int64_t sec, int oflags)
{
time_t timestamp;
char timestr[26];
- if (raw)
+ if (oflags & AU_OFLAG_RAW)
fprintf(fp, "%u", (u_int32_t)sec);
else {
timestamp = (time_t)sec;
@@ -709,9 +709,9 @@
* Prints the excess milliseconds.
*/
static void
-print_msec32(FILE *fp, u_int32_t msec, char raw)
+print_msec32(FILE *fp, u_int32_t msec, int oflags)
{
- if (raw)
+ if (oflags & AU_OFLAG_RAW)
fprintf(fp, "%u", msec);
else
fprintf(fp, " + %u msec", msec);
@@ -722,11 +722,11 @@
* a 32-bit msec, we simply truncate for now.
*/
static void
-print_msec64(FILE *fp, u_int64_t msec, char raw)
+print_msec64(FILE *fp, u_int64_t msec, int oflags)
{
msec &= 0xffffffff;
- if (raw)
+ if (oflags & AU_OFLAG_RAW)
fprintf(fp, "%u", (u_int32_t)msec);
else
fprintf(fp, " + %u msec", (u_int32_t)msec);
@@ -776,11 +776,11 @@
* Prints return value as success or failure.
*/
static void
-print_retval(FILE *fp, u_char status, char raw)
+print_retval(FILE *fp, u_char status, int oflags)
{
int error;
- if (raw)
+ if (oflags & AU_OFLAG_RAW)
fprintf(fp, "%u", status);
else {
/*
@@ -813,9 +813,9 @@
* Prints IPC type.
*/
static void
-print_ipctype(FILE *fp, u_char type, char raw)
+print_ipctype(FILE *fp, u_char type, int oflags)
{
- if (raw)
+ if (oflags & AU_OFLAG_RAW)
fprintf(fp, "%u", type);
else {
if (type == AT_IPC_MSG)
@@ -891,26 +891,25 @@
}
static void
-print_header32_tok(FILE *fp, tokenstr_t *tok, char *del, char raw, char sfrm,
- int xml)
+print_header32_tok(FILE *fp, tokenstr_t *tok, char *del, int oflags)
{
- print_tok_type(fp, tok->id, "header", raw, xml);
- if (xml) {
+ print_tok_type(fp, tok->id, "header", oflags);
+ if (oflags & AU_OFLAG_RAW) {
open_attr(fp, "version");
print_1_byte(fp, tok->tt.hdr32.version, "%u");
close_attr(fp);
open_attr(fp, "event");
- print_event(fp, tok->tt.hdr32.e_type, raw, sfrm);
+ print_event(fp, tok->tt.hdr32.e_type, oflags);
close_attr(fp);
open_attr(fp, "modifier");
- print_evmod(fp, tok->tt.hdr32.e_mod, raw);
+ print_evmod(fp, tok->tt.hdr32.e_mod, oflags);
close_attr(fp);
open_attr(fp, "time");
- print_sec32(fp, tok->tt.hdr32.s, raw);
+ print_sec32(fp, tok->tt.hdr32.s, oflags);
close_attr(fp);
open_attr(fp, "msec");
- print_msec32(fp, tok->tt.hdr32.ms, 1);
+ print_msec32(fp, tok->tt.hdr32.ms, oflags);
close_attr(fp);
close_tag(fp, tok->id);
} else {
@@ -919,13 +918,13 @@
print_delim(fp, del);
print_1_byte(fp, tok->tt.hdr32.version, "%u");
print_delim(fp, del);
- print_event(fp, tok->tt.hdr32.e_type, raw, sfrm);
+ print_event(fp, tok->tt.hdr32.e_type, oflags);
print_delim(fp, del);
- print_evmod(fp, tok->tt.hdr32.e_mod, raw);
+ print_evmod(fp, tok->tt.hdr32.e_mod, oflags);
print_delim(fp, del);
- print_sec32(fp, tok->tt.hdr32.s, raw);
+ print_sec32(fp, tok->tt.hdr32.s, oflags);
print_delim(fp, del);
- print_msec32(fp, tok->tt.hdr32.ms, raw);
+ print_msec32(fp, tok->tt.hdr32.ms, oflags);
}
}
@@ -999,30 +998,29 @@
}
static void
-print_header32_ex_tok(FILE *fp, tokenstr_t *tok, char *del, char raw,
- char sfrm, int xml)
+print_header32_ex_tok(FILE *fp, tokenstr_t *tok, char *del, int oflags)
{
- print_tok_type(fp, tok->id, "header_ex", raw, xml);
- if (xml) {
+ print_tok_type(fp, tok->id, "header_ex", oflags);
+ if (oflags & AU_OFLAG_RAW) {
open_attr(fp, "version");
print_1_byte(fp, tok->tt.hdr32_ex.version, "%u");
close_attr(fp);
open_attr(fp, "event");
- print_event(fp, tok->tt.hdr32_ex.e_type, raw, sfrm);
+ print_event(fp, tok->tt.hdr32_ex.e_type, oflags);
close_attr(fp);
open_attr(fp, "modifier");
- print_evmod(fp, tok->tt.hdr32_ex.e_mod, raw);
+ print_evmod(fp, tok->tt.hdr32_ex.e_mod, oflags);
close_attr(fp);
open_attr(fp, "host");
print_ip_ex_address(fp, tok->tt.hdr32_ex.ad_type,
tok->tt.hdr32_ex.addr);
close_attr(fp);
open_attr(fp, "time");
- print_sec32(fp, tok->tt.hdr32_ex.s, raw);
+ print_sec32(fp, tok->tt.hdr32_ex.s, oflags);
close_attr(fp);
open_attr(fp, "msec");
- print_msec32(fp, tok->tt.hdr32_ex.ms, raw);
+ print_msec32(fp, tok->tt.hdr32_ex.ms, oflags);
close_attr(fp);
close_tag(fp, tok->id);
} else {
@@ -1031,16 +1029,16 @@
print_delim(fp, del);
print_1_byte(fp, tok->tt.hdr32_ex.version, "%u");
print_delim(fp, del);
- print_event(fp, tok->tt.hdr32_ex.e_type, raw, sfrm);
+ print_event(fp, tok->tt.hdr32_ex.e_type, oflags);
print_delim(fp, del);
- print_evmod(fp, tok->tt.hdr32_ex.e_mod, raw);
+ print_evmod(fp, tok->tt.hdr32_ex.e_mod, oflags);
print_delim(fp, del);
print_ip_ex_address(fp, tok->tt.hdr32_ex.ad_type,
tok->tt.hdr32_ex.addr);
print_delim(fp, del);
- print_sec32(fp, tok->tt.hdr32_ex.s, raw);
+ print_sec32(fp, tok->tt.hdr32_ex.s, oflags);
print_delim(fp, del);
- print_msec32(fp, tok->tt.hdr32_ex.ms, raw);
+ print_msec32(fp, tok->tt.hdr32_ex.ms, oflags);
}
}
@@ -1085,26 +1083,25 @@
}
static void
-print_header64_tok(FILE *fp, tokenstr_t *tok, char *del, char raw, char sfrm,
- int xml)
+print_header64_tok(FILE *fp, tokenstr_t *tok, char *del, int oflags)
{
- print_tok_type(fp, tok->id, "header", raw, xml);
- if (xml) {
+ print_tok_type(fp, tok->id, "header", oflags);
+ if (oflags & AU_OFLAG_XML) {
open_attr(fp, "version");
print_1_byte(fp, tok->tt.hdr64.version, "%u");
close_attr(fp);
open_attr(fp, "event");
- print_event(fp, tok->tt.hdr64.e_type, raw, sfrm);
+ print_event(fp, tok->tt.hdr64.e_type, oflags);
close_attr(fp);
open_attr(fp, "modifier");
- print_evmod(fp, tok->tt.hdr64.e_mod, raw);
+ print_evmod(fp, tok->tt.hdr64.e_mod, oflags);
close_attr(fp);
open_attr(fp, "time");
- print_sec64(fp, tok->tt.hdr64.s, raw);
+ print_sec64(fp, tok->tt.hdr64.s, oflags);
close_attr(fp);
open_attr(fp, "msec");
- print_msec64(fp, tok->tt.hdr64.ms, raw);
+ print_msec64(fp, tok->tt.hdr64.ms, oflags);
close_attr(fp);
close_tag(fp, tok->id);
} else {
@@ -1113,13 +1110,13 @@
print_delim(fp, del);
print_1_byte(fp, tok->tt.hdr64.version, "%u");
print_delim(fp, del);
- print_event(fp, tok->tt.hdr64.e_type, raw, sfrm);
+ print_event(fp, tok->tt.hdr64.e_type, oflags);
print_delim(fp, del);
- print_evmod(fp, tok->tt.hdr64.e_mod, raw);
+ print_evmod(fp, tok->tt.hdr64.e_mod, oflags);
print_delim(fp, del);
- print_sec64(fp, tok->tt.hdr64.s, raw);
+ print_sec64(fp, tok->tt.hdr64.s, oflags);
print_delim(fp, del);
- print_msec64(fp, tok->tt.hdr64.ms, raw);
+ print_msec64(fp, tok->tt.hdr64.ms, oflags);
}
}
@@ -1189,30 +1186,29 @@
}
static void
-print_header64_ex_tok(FILE *fp, tokenstr_t *tok, char *del, char raw,
- char sfrm, int xml)
+print_header64_ex_tok(FILE *fp, tokenstr_t *tok, char *del, int oflags)
{
- print_tok_type(fp, tok->id, "header_ex", raw, xml);
- if (xml) {
+ print_tok_type(fp, tok->id, "header_ex", oflags);
+ if (oflags & AU_OFLAG_XML) {
open_attr(fp, "version");
print_1_byte(fp, tok->tt.hdr64_ex.version, "%u");
close_attr(fp);
open_attr(fp, "event");
- print_event(fp, tok->tt.hdr64_ex.e_type, raw, sfrm);
+ print_event(fp, tok->tt.hdr64_ex.e_type, oflags);
close_attr(fp);
open_attr(fp, "modifier");
- print_evmod(fp, tok->tt.hdr64_ex.e_mod, raw);
+ print_evmod(fp, tok->tt.hdr64_ex.e_mod, oflags);
close_attr(fp);
open_attr(fp, "host");
print_ip_ex_address(fp, tok->tt.hdr64_ex.ad_type,
tok->tt.hdr64_ex.addr);
close_attr(fp);
open_attr(fp, "time");
- print_sec64(fp, tok->tt.hdr64_ex.s, raw);
+ print_sec64(fp, tok->tt.hdr64_ex.s, oflags);
close_attr(fp);
open_attr(fp, "msec");
- print_msec64(fp, tok->tt.hdr64_ex.ms, raw);
+ print_msec64(fp, tok->tt.hdr64_ex.ms, oflags);
close_attr(fp);
close_tag(fp, tok->id);
} else {
@@ -1221,16 +1217,16 @@
print_delim(fp, del);
print_1_byte(fp, tok->tt.hdr64_ex.version, "%u");
print_delim(fp, del);
- print_event(fp, tok->tt.hdr64_ex.e_type, raw, sfrm);
+ print_event(fp, tok->tt.hdr64_ex.e_type, oflags);
print_delim(fp, del);
- print_evmod(fp, tok->tt.hdr64_ex.e_mod, raw);
+ print_evmod(fp, tok->tt.hdr64_ex.e_mod, oflags);
print_delim(fp, del);
print_ip_ex_address(fp, tok->tt.hdr64_ex.ad_type,
tok->tt.hdr64_ex.addr);
print_delim(fp, del);
- print_sec64(fp, tok->tt.hdr64_ex.s, raw);
+ print_sec64(fp, tok->tt.hdr64_ex.s, oflags);
print_delim(fp, del);
- print_msec64(fp, tok->tt.hdr64_ex.ms, raw);
+ print_msec64(fp, tok->tt.hdr64_ex.ms, oflags);
}
}
@@ -1255,12 +1251,11 @@
}
static void
-print_trailer_tok(FILE *fp, tokenstr_t *tok, char *del, char raw,
- __unused char sfrm, int xml)
+print_trailer_tok(FILE *fp, tokenstr_t *tok, char *del, int oflags)
{
- print_tok_type(fp, tok->id, "trailer", raw, xml);
- if (!xml) {
+ print_tok_type(fp, tok->id, "trailer", oflags);
+ if (!(oflags & AU_OFLAG_XML)) {
print_delim(fp, del);
print_4_bytes(fp, tok->tt.trail.count, "%u");
}
@@ -1298,12 +1293,11 @@
}
static void
-print_arg32_tok(FILE *fp, tokenstr_t *tok, char *del, char raw,
- __unused char sfrm, int xml)
+print_arg32_tok(FILE *fp, tokenstr_t *tok, char *del, int oflags)
{
- print_tok_type(fp, tok->id, "argument", raw, xml);
- if (xml) {
+ print_tok_type(fp, tok->id, "argument", oflags);
+ if (oflags & AU_OFLAG_XML) {
open_attr(fp, "arg-num");
print_1_byte(fp, tok->tt.arg32.no, "%u");
close_attr(fp);
@@ -1350,12 +1344,11 @@
}
static void
-print_arg64_tok(FILE *fp, tokenstr_t *tok, char *del, char raw,
- __unused char sfrm, int xml)
+print_arg64_tok(FILE *fp, tokenstr_t *tok, char *del, int oflags)
{
- print_tok_type(fp, tok->id, "argument", raw, xml);
- if (xml) {
+ print_tok_type(fp, tok->id, "argument", oflags);
+ if (oflags & AU_OFLAG_XML) {
open_attr(fp, "arg-num");
print_1_byte(fp, tok->tt.arg64.no, "%u");
close_attr(fp);
@@ -1435,16 +1428,15 @@
}
static void
-print_arb_tok(FILE *fp, tokenstr_t *tok, char *del, char raw,
- __unused char sfrm, int xml)
+print_arb_tok(FILE *fp, tokenstr_t *tok, char *del, int oflags)
{
char *str;
char *format;
size_t size;
int i;
- print_tok_type(fp, tok->id, "arbitrary", raw, xml);
- if (!xml)
+ print_tok_type(fp, tok->id, "arbitrary", oflags);
+ if (!(oflags & AU_OFLAG_XML))
print_delim(fp, del);
switch(tok->tt.arb.howtopr) {
@@ -1477,7 +1469,7 @@
return;
}
- if (xml) {
+ if (oflags & AU_OFLAG_XML) {
open_attr(fp, "print");
fprintf(fp, "%s",str);
close_attr(fp);
@@ -1490,7 +1482,7 @@
/* case AUR_CHAR: */
str = "byte";
size = AUR_BYTE_SIZE;
- if (xml) {
+ if (oflags & AU_OFLAG_XML) {
open_attr(fp, "type");
fprintf(fp, "%zu", size);
close_attr(fp);
@@ -1516,7 +1508,7 @@
case AUR_SHORT:
str = "short";
size = AUR_SHORT_SIZE;
- if (xml) {
+ if (oflags & AU_OFLAG_XML) {
open_attr(fp, "type");
fprintf(fp, "%zu", size);
close_attr(fp);
@@ -1545,7 +1537,7 @@
/* case AUR_INT: */
str = "int";
size = AUR_INT32_SIZE;
- if (xml) {
+ if (oflags & AU_OFLAG_XML) {
open_attr(fp, "type");
fprintf(fp, "%zu", size);
close_attr(fp);
@@ -1573,7 +1565,7 @@
case AUR_INT64:
str = "int64";
size = AUR_INT64_SIZE;
- if (xml) {
+ if (oflags & AU_OFLAG_XML) {
open_attr(fp, "type");
fprintf(fp, "%zu", size);
close_attr(fp);
@@ -1644,20 +1636,19 @@
}
static void
-print_attr32_tok(FILE *fp, tokenstr_t *tok, char *del, char raw,
- __unused char sfrm, int xml)
+print_attr32_tok(FILE *fp, tokenstr_t *tok, char *del, int oflags)
{
- print_tok_type(fp, tok->id, "attribute", raw, xml);
- if (xml) {
+ print_tok_type(fp, tok->id, "attribute", oflags);
+ if (oflags & AU_OFLAG_XML) {
open_attr(fp, "mode");
print_4_bytes(fp, tok->tt.attr32.mode, "%o");
close_attr(fp);
open_attr(fp, "uid");
- print_user(fp, tok->tt.attr32.uid, raw);
+ print_user(fp, tok->tt.attr32.uid, oflags);
close_attr(fp);
open_attr(fp, "gid");
- print_group(fp, tok->tt.attr32.gid, raw);
+ print_group(fp, tok->tt.attr32.gid, oflags);
close_attr(fp);
open_attr(fp, "fsid");
print_4_bytes(fp, tok->tt.attr32.fsid, "%u");
@@ -1673,9 +1664,9 @@
print_delim(fp, del);
print_4_bytes(fp, tok->tt.attr32.mode, "%o");
print_delim(fp, del);
- print_user(fp, tok->tt.attr32.uid, raw);
+ print_user(fp, tok->tt.attr32.uid, oflags);
print_delim(fp, del);
- print_group(fp, tok->tt.attr32.gid, raw);
+ print_group(fp, tok->tt.attr32.gid, oflags);
print_delim(fp, del);
print_4_bytes(fp, tok->tt.attr32.fsid, "%u");
print_delim(fp, del);
@@ -1726,20 +1717,19 @@
}
static void
-print_attr64_tok(FILE *fp, tokenstr_t *tok, char *del, char raw,
- __unused char sfrm, int xml)
+print_attr64_tok(FILE *fp, tokenstr_t *tok, char *del, int oflags)
{
- print_tok_type(fp, tok->id, "attribute", raw, xml);
- if (xml) {
+ print_tok_type(fp, tok->id, "attribute", oflags);
+ if (oflags & AU_OFLAG_XML) {
open_attr(fp, "mode");
print_4_bytes(fp, tok->tt.attr64.mode, "%o");
close_attr(fp);
open_attr(fp, "uid");
- print_user(fp, tok->tt.attr64.uid, raw);
+ print_user(fp, tok->tt.attr64.uid, oflags);
close_attr(fp);
open_attr(fp, "gid");
- print_group(fp, tok->tt.attr64.gid, raw);
+ print_group(fp, tok->tt.attr64.gid, oflags);
close_attr(fp);
open_attr(fp, "fsid");
print_4_bytes(fp, tok->tt.attr64.fsid, "%u");
@@ -1755,9 +1745,9 @@
print_delim(fp, del);
print_4_bytes(fp, tok->tt.attr64.mode, "%o");
print_delim(fp, del);
- print_user(fp, tok->tt.attr64.uid, raw);
+ print_user(fp, tok->tt.attr64.uid, oflags);
print_delim(fp, del);
- print_group(fp, tok->tt.attr64.gid, raw);
+ print_group(fp, tok->tt.attr64.gid, oflags);
print_delim(fp, del);
print_4_bytes(fp, tok->tt.attr64.fsid, "%u");
print_delim(fp, del);
@@ -1788,12 +1778,11 @@
}
static void
-print_exit_tok(FILE *fp, tokenstr_t *tok, char *del, char raw,
- __unused char sfrm, int xml)
+print_exit_tok(FILE *fp, tokenstr_t *tok, char *del, int oflags)
{
- print_tok_type(fp, tok->id, "exit", raw, xml);
- if (xml) {
+ print_tok_type(fp, tok->id, "exit", oflags);
+ if (oflags & AU_OFLAG_XML) {
open_attr(fp, "errval");
print_errval(fp, tok->tt.exit.status);
close_attr(fp);
@@ -1846,14 +1835,13 @@
}
static void
-print_execarg_tok(FILE *fp, tokenstr_t *tok, char *del, char raw,
- __unused char sfrm, int xml)
+print_execarg_tok(FILE *fp, tokenstr_t *tok, char *del, int oflags)
{
u_int32_t i;
- print_tok_type(fp, tok->id, "exec arg", raw, xml);
+ print_tok_type(fp, tok->id, "exec arg", oflags);
for (i = 0; i < tok->tt.execarg.count; i++) {
- if (xml) {
+ if (oflags & AU_OFLAG_XML) {
fprintf(fp, "<arg>");
print_string(fp, tok->tt.execarg.text[i],
strlen(tok->tt.execarg.text[i]));
@@ -1864,7 +1852,7 @@
strlen(tok->tt.execarg.text[i]));
}
}
- if (xml)
+ if (oflags & AU_OFLAG_XML)
close_tag(fp, tok->id);
}
@@ -1905,14 +1893,13 @@
}
static void
-print_execenv_tok(FILE *fp, tokenstr_t *tok, char *del, char raw,
- __unused char sfrm, int xml)
+print_execenv_tok(FILE *fp, tokenstr_t *tok, char *del, int oflags)
{
u_int32_t i;
- print_tok_type(fp, tok->id, "exec env", raw, xml);
+ print_tok_type(fp, tok->id, "exec env", oflags);
for (i = 0; i< tok->tt.execenv.count; i++) {
- if (xml) {
+ if (oflags & AU_OFLAG_XML) {
fprintf(fp, "<env>");
print_string(fp, tok->tt.execenv.text[i],
strlen(tok->tt.execenv.text[i]));
@@ -1923,7 +1910,7 @@
strlen(tok->tt.execenv.text[i]));
}
}
- if (xml)
+ if (oflags & AU_OFLAG_XML)
close_tag(fp, tok->id);
}
@@ -1959,26 +1946,25 @@
}
static void
-print_file_tok(FILE *fp, tokenstr_t *tok, char *del, char raw,
- __unused char sfrm, int xml)
+print_file_tok(FILE *fp, tokenstr_t *tok, char *del, int oflags)
{
- print_tok_type(fp, tok->id, "file", raw, xml);
- if (xml) {
+ print_tok_type(fp, tok->id, "file", oflags);
+ if (oflags & AU_OFLAG_XML) {
open_attr(fp, "time");
- print_sec32(fp, tok->tt.file.s, raw);
+ print_sec32(fp, tok->tt.file.s, oflags);
close_attr(fp);
open_attr(fp, "msec");
- print_msec32(fp, tok->tt.file.ms, raw);
+ print_msec32(fp, tok->tt.file.ms, oflags);
close_attr(fp);
fprintf(fp, ">");
print_string(fp, tok->tt.file.name, tok->tt.file.len);
close_tag(fp, tok->id);
} else {
print_delim(fp, del);
- print_sec32(fp, tok->tt.file.s, raw);
+ print_sec32(fp, tok->tt.file.s, oflags);
print_delim(fp, del);
- print_msec32(fp, tok->tt.file.ms, raw);
+ print_msec32(fp, tok->tt.file.ms, oflags);
print_delim(fp, del);
print_string(fp, tok->tt.file.name, tok->tt.file.len);
}
@@ -2009,21 +1995,20 @@
}
static void
-print_newgroups_tok(FILE *fp, tokenstr_t *tok, char *del, char raw,
- __unused char sfrm, int xml)
+print_newgroups_tok(FILE *fp, tokenstr_t *tok, char *del, int oflags)
{
int i;
- print_tok_type(fp, tok->id, "group", raw, xml);
+ print_tok_type(fp, tok->id, "group", oflags);
for (i = 0; i < tok->tt.grps.no; i++) {
- if (xml) {
+ if (oflags & AU_OFLAG_XML) {
fprintf(fp, "<gid>");
- print_group(fp, tok->tt.grps.list[i], raw);
+ print_group(fp, tok->tt.grps.list[i], oflags);
fprintf(fp, "</gid>");
close_tag(fp, tok->id);
} else {
print_delim(fp, del);
- print_group(fp, tok->tt.grps.list[i], raw);
+ print_group(fp, tok->tt.grps.list[i], oflags);
}
}
}
@@ -2046,12 +2031,11 @@
}
static void
-print_inaddr_tok(FILE *fp, tokenstr_t *tok, char *del, char raw,
- __unused char sfrm, int xml)
+print_inaddr_tok(FILE *fp, tokenstr_t *tok, char *del, int oflags)
{
- print_tok_type(fp, tok->id, "ip addr", raw, xml);
- if (xml) {
+ print_tok_type(fp, tok->id, "ip addr", oflags);
+ if (oflags & AU_OFLAG_XML) {
print_ip_address(fp, tok->tt.inaddr.addr);
close_tag(fp, tok->id);
} else {
@@ -2090,12 +2074,11 @@
}
static void
-print_inaddr_ex_tok(FILE *fp, tokenstr_t *tok, char *del, char raw,
- __unused char sfrm, int xml)
+print_inaddr_ex_tok(FILE *fp, tokenstr_t *tok, char *del, int oflags)
{
- print_tok_type(fp, tok->id, "ip addr ex", raw, xml);
- if (xml) {
+ print_tok_type(fp, tok->id, "ip addr ex", oflags);
+ if (oflags & AU_OFLAG_XML) {
print_ip_ex_address(fp, tok->tt.inaddr_ex.type,
tok->tt.inaddr_ex.addr);
close_tag(fp, tok->id);
@@ -2164,12 +2147,11 @@
}
static void
-print_ip_tok(FILE *fp, tokenstr_t *tok, char *del, char raw,
- __unused char sfrm, int xml)
+print_ip_tok(FILE *fp, tokenstr_t *tok, char *del, int oflags)
{
- print_tok_type(fp, tok->id, "ip", raw, xml);
- if (xml) {
+ print_tok_type(fp, tok->id, "ip", oflags);
+ if (oflags & AU_OFLAG_XML) {
open_attr(fp, "version");
print_mem(fp, (u_char *)(&tok->tt.ip.version),
sizeof(u_char));
@@ -2248,14 +2230,13 @@
}
static void
-print_ipc_tok(FILE *fp, tokenstr_t *tok, char *del, char raw,
- __unused char sfrm, int xml)
+print_ipc_tok(FILE *fp, tokenstr_t *tok, char *del, int oflags)
{
- print_tok_type(fp, tok->id, "IPC", raw, xml);
- if (xml) {
+ print_tok_type(fp, tok->id, "IPC", oflags);
+ if (oflags & AU_OFLAG_XML) {
open_attr(fp, "ipc-type");
- print_ipctype(fp, tok->tt.ipc.type, raw);
+ print_ipctype(fp, tok->tt.ipc.type, oflags);
close_attr(fp);
open_attr(fp, "ipc-id");
print_4_bytes(fp, tok->tt.ipc.id, "%u");
@@ -2263,7 +2244,7 @@
close_tag(fp, tok->id);
} else {
print_delim(fp, del);
- print_ipctype(fp, tok->tt.ipc.type, raw);
+ print_ipctype(fp, tok->tt.ipc.type, oflags);
print_delim(fp, del);
print_4_bytes(fp, tok->tt.ipc.id, "%u");
}
@@ -2315,23 +2296,22 @@
}
static void
-print_ipcperm_tok(FILE *fp, tokenstr_t *tok, char *del, char raw,
- __unused char sfrm, int xml)
+print_ipcperm_tok(FILE *fp, tokenstr_t *tok, char *del, int oflags)
{
- print_tok_type(fp, tok->id, "IPC perm", raw, xml);
- if (xml) {
+ print_tok_type(fp, tok->id, "IPC perm", oflags);
+ if (oflags & AU_OFLAG_XML) {
open_attr(fp, "uid");
- print_user(fp, tok->tt.ipcperm.uid, raw);
+ print_user(fp, tok->tt.ipcperm.uid, oflags);
close_attr(fp);
open_attr(fp, "gid");
- print_group(fp, tok->tt.ipcperm.gid, raw);
+ print_group(fp, tok->tt.ipcperm.gid, oflags);
close_attr(fp);
open_attr(fp, "creator-uid");
- print_user(fp, tok->tt.ipcperm.puid, raw);
+ print_user(fp, tok->tt.ipcperm.puid, oflags);
close_attr(fp);
open_attr(fp, "creator-gid");
- print_group(fp, tok->tt.ipcperm.pgid, raw);
+ print_group(fp, tok->tt.ipcperm.pgid, oflags);
close_attr(fp);
open_attr(fp, "mode");
print_4_bytes(fp, tok->tt.ipcperm.mode, "%o");
@@ -2345,13 +2325,13 @@
close_tag(fp, tok->id);
} else {
print_delim(fp, del);
- print_user(fp, tok->tt.ipcperm.uid, raw);
+ print_user(fp, tok->tt.ipcperm.uid, oflags);
print_delim(fp, del);
- print_group(fp, tok->tt.ipcperm.gid, raw);
+ print_group(fp, tok->tt.ipcperm.gid, oflags);
print_delim(fp, del);
- print_user(fp, tok->tt.ipcperm.puid, raw);
+ print_user(fp, tok->tt.ipcperm.puid, oflags);
print_delim(fp, del);
- print_group(fp, tok->tt.ipcperm.pgid, raw);
+ print_group(fp, tok->tt.ipcperm.pgid, oflags);
print_delim(fp, del);
print_4_bytes(fp, tok->tt.ipcperm.mode, "%o");
print_delim(fp, del);
@@ -2378,12 +2358,11 @@
}
static void
-print_iport_tok(FILE *fp, tokenstr_t *tok, char *del, char raw,
- __unused char sfrm, int xml)
+print_iport_tok(FILE *fp, tokenstr_t *tok, char *del, int oflags)
{
- print_tok_type(fp, tok->id, "ip port", raw, xml);
- if (xml) {
+ print_tok_type(fp, tok->id, "ip port", oflags);
+ if (oflags & AU_OFLAG_XML) {
print_2_bytes(fp, ntohs(tok->tt.iport.port), "%#x");
close_tag(fp, tok->id);
} else {
@@ -2414,12 +2393,11 @@
}
static void
-print_opaque_tok(FILE *fp, tokenstr_t *tok, char *del, char raw,
- __unused char sfrm, int xml)
+print_opaque_tok(FILE *fp, tokenstr_t *tok, char *del, int oflags)
{
- print_tok_type(fp, tok->id, "opaque", raw, xml);
- if (xml) {
+ print_tok_type(fp, tok->id, "opaque", oflags);
+ if (oflags & AU_OFLAG_XML) {
print_mem(fp, (u_char*)tok->tt.opaque.data,
tok->tt.opaque.size);
>>> TRUNCATED FOR MAIL (1000 lines) <<<
More information about the p4-projects
mailing list