Patches to argus-clients-3.0.0.rc.15 andargus-clients-2.0.6.fixes.1
carter at qosient.com
carter at qosient.com
Sun Jul 9 11:56:03 EDT 2006
Hey Peter,
Thanks for the patches!!! I am not doing anything with the Argus 2.x code, so if you would/could ablidge, and send a tar file that is your current image, I'll put it one the server as the last 2.x update, when we're done with this effort!!!
OK, we are providing the info you're interested in, with regard to the window going to 0 ( flag indicators 'S/R' and filter support ' shut ') and the 'Idle' interpacket arrival numbers have the stats on how long the TCP was flow controlled.
Carter
Carter Bullard
QoSient LLC
150 E. 57th Street Suite 12D
New York, New York 10022
+1 212 588-9133 Phone
+1 212 588-9134 Fax
-----Original Message-----
From: Peter Van Epp <vanepp at sfu.ca>
Date: Wed, 5 Jul 2006 19:53:55
To:argus-info at lists.andrew.cmu.edu
Subject: [ARGUS] Patches to argus-clients-3.0.0.rc.15 and
argus-clients-2.0.6.fixes.1
Below are a pair of patch sets one each for (argus-clients-2.0.6.fixes.1
and argus-clients-3.0.0.rc.15) that almost fix most of the errors that occur
when comparing 2.0.6 ra output to 3.0 ra output. The user data stuff is still
broken (looks like thats a Carter task :-)) because I can't quite figure out
what its supposed to do :-).
While fixing the tcp window code, the thought struck that it would be
interesting to know that a window hit 0 (indicating host buffer conjestion) and
for how long.
Peter Van Epp / Operations and Technical Support
Simon Fraser University, Burnaby, B.C. Canada
argus-clients-3.0.0.rc.15
*** common/argus_util.c.orig Sun Jul 2 15:24:45 2006
--- common/argus_util.c Wed Jul 5 19:33:14 2006
***************
*** 2869,2887 ****
case IPPROTO_ICMP: {
char type[32];
! sprintf (type, "%d", flow->flow_un.icmp.type);
if ((parser->RaFieldDelimiter != ' ') && (parser->RaFieldDelimiter != '\0')) {
switch (parser->RaFieldWidth) {
case RA_FIXED_WIDTH:
sprintf (&buf[strlen(buf)], "%-*.*s%c", len, len, type, parser->RaFieldDelimiter);
break;
default:
! sprintf (&buf[strlen(buf)], "%d%c", flow->flow_un.icmp.type, parser->RaFieldDelimiter);
break;
}
} else {
! sprintf (&buf[strlen(buf)], "%-*.*s ", len, len, type);
! }
done++;
break;
}
--- 2869,2887 ----
case IPPROTO_ICMP: {
char type[32];
! type[0] = '\0';
if ((parser->RaFieldDelimiter != ' ') && (parser->RaFieldDelimiter != '\0')) {
switch (parser->RaFieldWidth) {
case RA_FIXED_WIDTH:
sprintf (&buf[strlen(buf)], "%-*.*s%c", len, len, type, parser->RaFieldDelimiter);
break;
default:
! sprintf (&buf[strlen(buf)], "%s%c", type, parser->RaFieldDelimiter);
break;
}
} else {
! sprintf (&buf[strlen(buf)], "%-*.*s ", len, len, type);
! }
done++;
break;
}
***************
*** 2988,2994 ****
case IPPROTO_ICMP: {
char code[32];
! sprintf (code, "%d", flow->flow_un.icmp.code);
if ((parser->RaFieldDelimiter != ' ') && (parser->RaFieldDelimiter != '\0')) {
switch (parser->RaFieldWidth) {
--- 2988,2994 ----
case IPPROTO_ICMP: {
char code[32];
! code[0] = '\0';
if ((parser->RaFieldDelimiter != ' ') && (parser->RaFieldDelimiter != '\0')) {
switch (parser->RaFieldWidth) {
***************
*** 2996,3002 ****
sprintf (&buf[strlen(buf)], "%-*.*s%c", len, len, code, parser->RaFieldDelimiter);
break;
default:
! sprintf (&buf[strlen(buf)], "%d%c", flow->flow_un.icmp.code, parser->RaFieldDelimiter);
break;
}
} else {
--- 2996,3002 ----
sprintf (&buf[strlen(buf)], "%-*.*s%c", len, len, code, parser->RaFieldDelimiter);
break;
default:
! sprintf (&buf[strlen(buf)], "%s%c", code, parser->RaFieldDelimiter);
break;
}
} else {
***************
*** 4724,4733 ****
} else {
char value[32];
! bzero(value, 4);
if (argus && ((jitter = &argus->canon.jitter) != NULL)) {
! double stdev = 0, sumsqrd1 = 0.0, sumsqrd2 = 0.0, sumsqrd;
unsigned int n;
float meanval;
--- 4724,4733 ----
} else {
char value[32];
! bzero(value, 32);
if (argus && ((jitter = &argus->canon.jitter) != NULL)) {
! double stdev = 0.0, sumsqrd1 = 0.0, sumsqrd2 = 0.0, sumsqrd;
unsigned int n;
float meanval;
***************
*** 4811,4821 ****
}
} else {
! double stdev = 0, sumsqrd1 = 0.0, sumsqrd2 = 0.0, sumsqrd;
unsigned int n;
float meanval;
char sbuf[32];
! bzero(sbuf, 4);
if (argus && ((jitter = &argus->canon.jitter) != NULL)) {
if ((n = (jitter->act.dst.n + jitter->idle.dst.n)) > 0) {
--- 4811,4821 ----
}
} else {
! double stdev = 0.0, sumsqrd1 = 0.0, sumsqrd2 = 0.0, sumsqrd;
unsigned int n;
float meanval;
char sbuf[32];
! bzero(sbuf, 32);
if (argus && ((jitter = &argus->canon.jitter) != NULL)) {
if ((n = (jitter->act.dst.n + jitter->idle.dst.n)) > 0) {
***************
*** 5927,5933 ****
bzero(vlanbuf, sizeof(vlanbuf));
if (vlan != NULL)
! if ((vlan->hdr.argus_dsrvl8.qual & ARGUS_SRC_VLAN) || (vlan->sid > 0))
sprintf (vlanbuf, "%d", (vlan->sid & 0x0FFF));
if ((parser->RaFieldDelimiter != ' ') && (parser->RaFieldDelimiter != '\0')) {
--- 5927,5933 ----
bzero(vlanbuf, sizeof(vlanbuf));
if (vlan != NULL)
! if (vlan->hdr.argus_dsrvl8.qual & ARGUS_SRC_VLAN)
sprintf (vlanbuf, "%d", (vlan->sid & 0x0FFF));
if ((parser->RaFieldDelimiter != ' ') && (parser->RaFieldDelimiter != '\0')) {
***************
*** 6027,6033 ****
bzero(vstr, sizeof(vstr));
if (vlan != NULL)
! if ((vlan->hdr.argus_dsrvl8.qual & ARGUS_SRC_VLAN) || (vlan->sid > 0))
sprintf (vstr, "0x%04x", vlan->sid);
if ((parser->RaFieldDelimiter != ' ') && (parser->RaFieldDelimiter != '\0')) {
--- 6027,6033 ----
bzero(vstr, sizeof(vstr));
if (vlan != NULL)
! if (vlan->hdr.argus_dsrvl8.qual & ARGUS_SRC_VLAN)
sprintf (vstr, "0x%04x", vlan->sid);
if ((parser->RaFieldDelimiter != ' ') && (parser->RaFieldDelimiter != '\0')) {
***************
*** 6056,6062 ****
bzero(vstr, sizeof(vstr));
if (vlan != NULL)
! if ((vlan->hdr.argus_dsrvl8.qual & ARGUS_DST_VLAN) || (vlan->did > 0))
sprintf (vstr, "0x%04x", vlan->did);
if ((parser->RaFieldDelimiter != ' ') && (parser->RaFieldDelimiter != '\0')) {
--- 6056,6062 ----
bzero(vstr, sizeof(vstr));
if (vlan != NULL)
! if (vlan->hdr.argus_dsrvl8.qual & ARGUS_DST_VLAN)
sprintf (vstr, "0x%04x", vlan->did);
if ((parser->RaFieldDelimiter != ' ') && (parser->RaFieldDelimiter != '\0')) {
***************
*** 6240,6246 ****
switch (flow->ip_flow.ip_p) {
case IPPROTO_TCP: {
int win = tcp->src.win << tcp->src.winshift;
! sprintf (winbuf, "%d", win);
break;
}
default:
--- 6240,6246 ----
switch (flow->ip_flow.ip_p) {
case IPPROTO_TCP: {
int win = tcp->src.win << tcp->src.winshift;
! sprintf (winbuf, "%u", win);
break;
}
default:
***************
*** 6252,6258 ****
switch (flow->ipv6_flow.ip_p) {
case IPPROTO_TCP: {
int win = tcp->src.win << tcp->src.winshift;
! sprintf (winbuf, "%d", win);
break;
}
default:
--- 6252,6258 ----
switch (flow->ipv6_flow.ip_p) {
case IPPROTO_TCP: {
int win = tcp->src.win << tcp->src.winshift;
! sprintf (winbuf, "%u", win);
break;
}
default:
***************
*** 6301,6308 ****
case ARGUS_TYPE_IPV4:
switch (flow->ip_flow.ip_p) {
case IPPROTO_TCP: {
! int win = tcp->dst.win << tcp->src.winshift;
! sprintf (winbuf, "%d", win);
break;
}
default:
--- 6301,6308 ----
case ARGUS_TYPE_IPV4:
switch (flow->ip_flow.ip_p) {
case IPPROTO_TCP: {
! int win = tcp->dst.win << tcp->dst.winshift;
! sprintf (winbuf, "%u", win);
break;
}
default:
***************
*** 6314,6320 ****
switch (flow->ipv6_flow.ip_p) {
case IPPROTO_TCP: {
int win = tcp->dst.win << tcp->src.winshift;
! sprintf (winbuf, "%d", win);
break;
}
default:
--- 6314,6320 ----
switch (flow->ipv6_flow.ip_p) {
case IPPROTO_TCP: {
int win = tcp->dst.win << tcp->src.winshift;
! sprintf (winbuf, "%u", win);
break;
}
default:
***************
*** 8106,8112 ****
break;
}
exlen += 8;
! if (len > 10) exlen++;
if ((user = (struct ArgusDataStruct *)argus->dsrs[ARGUS_SRCUSERDATA_INDEX]) != NULL) {
unsigned short *sptr = &user->hdr.argus_dsrvl16.len;
--- 8106,8118 ----
break;
}
exlen += 8;
!
! /* Assuming this compensates for the extra digit in the s[%d], it needs
! to start at 10 and occur again at 100+ other than that this still
! doesn't work correctly :-) */
!
! if (len >= 10) exlen++;
! if (len >= 100) exlen++;
if ((user = (struct ArgusDataStruct *)argus->dsrs[ARGUS_SRCUSERDATA_INDEX]) != NULL) {
unsigned short *sptr = &user->hdr.argus_dsrvl16.len;
***************
*** 12765,12770 ****
--- 12771,12777 ----
tcp->src.bytes = nv2tcp->src.bytes;
tcp->src.retrans = nv2tcp->src.rpkts;
tcp->src.win = nv2tcp->src.win;
+ tcp->src.winshift = 0;
tcp->src.flags = nv2tcp->src.flags;
tcp->src.status = 0; tcp->src.seq = 0;
tcp->src.ack = 0; tcp->src.winnum = 0;
***************
*** 12774,12779 ****
--- 12781,12787 ----
tcp->dst.bytes = nv2tcp->dst.bytes;
tcp->dst.retrans = nv2tcp->dst.rpkts;
tcp->dst.win = nv2tcp->dst.win;
+ tcp->dst.winshift = 0;
tcp->dst.flags = nv2tcp->dst.flags;
tcp->dst.status = 0; tcp->dst.seq = 0;
tcp->dst.ack = 0; tcp->dst.winnum = 0;
***************
*** 12825,12831 ****
user->hdr.subtype = ARGUS_LEN_16BITS | ARGUS_SRC_DATA;
user->hdr.argus_dsrvl16.len = nv2user->length + 1;
user->size = nv2user->length * 4;
! user->count = user->size;
bcopy (&nv2user->data, &user->array, (nv2user->length - 1) * 4);
dsr += user->hdr.argus_dsrvl16.len;
--- 12833,12839 ----
user->hdr.subtype = ARGUS_LEN_16BITS | ARGUS_SRC_DATA;
user->hdr.argus_dsrvl16.len = nv2user->length + 1;
user->size = nv2user->length * 4;
! user->count = user->hdr.argus_dsrvl16.len + 1;
bcopy (&nv2user->data, &user->array, (nv2user->length - 1) * 4);
dsr += user->hdr.argus_dsrvl16.len;
***************
*** 12840,12846 ****
user->hdr.subtype = ARGUS_LEN_16BITS | ARGUS_DST_DATA;
user->hdr.argus_dsrvl16.len = nv2user->length + 1;
user->size = nv2user->length * 4;
! user->count = user->size;
bcopy (&nv2user->data, &user->array, (nv2user->length - 1) * 4);
dsr += user->hdr.argus_dsrvl16.len;
--- 12848,12854 ----
user->hdr.subtype = ARGUS_LEN_16BITS | ARGUS_DST_DATA;
user->hdr.argus_dsrvl16.len = nv2user->length + 1;
user->size = nv2user->length * 4;
! user->count = user->hdr.argus_dsrvl16.len + 1;
bcopy (&nv2user->data, &user->array, (nv2user->length - 1) * 4);
dsr += user->hdr.argus_dsrvl16.len;
***************
*** 12924,12929 ****
--- 12932,12945 ----
vlan->hdr.type = ARGUS_VLAN_DSR;
vlan->hdr.subtype = 0;
vlan->hdr.argus_dsrvl8.len = sizeof(*vlan)/4;
+ if (nv2vlan->status & ARGUS_SRC_VLAN)
+ vlan->hdr.argus_dsrvl8.qual |= ARGUS_SRC_VLAN;
+ else
+ vlan->hdr.argus_dsrvl8.qual &= ~ARGUS_SRC_VLAN;
+ if (nv2vlan->status & ARGUS_DST_VLAN)
+ vlan->hdr.argus_dsrvl8.qual |= ARGUS_DST_VLAN;
+ else
+ vlan->hdr.argus_dsrvl8.qual &= ~ARGUS_DST_VLAN;
vlan->sid = nv2vlan->sid;
vlan->did = nv2vlan->did;
argus-clients-2.0.6.fixes.1
*** common/argus_util.c.orig Sat Dec 6 09:43:56 2003
--- common/argus_util.c Wed Jul 5 18:20:13 2006
***************
*** 909,915 ****
void
ArgusPrintStartDate (char *date, struct ArgusRecord *ptr)
{
- char delim = ' ';
struct timeval *tvp = NULL;
if (ptr->ahdr.type & ARGUS_MAR)
--- 909,914 ----
***************
*** 917,932 ****
else
tvp = &ptr->argus_far.time.start;
! if ((RaFieldDelimiter != ' ') && (RaFieldDelimiter != '\0'))
! delim = RaFieldDelimiter;
!
! sprintf (&date[strlen(date)], "%s%c", print_time(tvp), delim);
}
void
ArgusPrintLastDate (char *date, struct ArgusRecord *ptr)
{
- char delim = ' ';
struct timeval *tvp = NULL;
if (ptr->ahdr.type & ARGUS_MAR)
--- 916,927 ----
else
tvp = &ptr->argus_far.time.start;
! sprintf (&date[strlen(date)], "%s", print_time(tvp));
}
void
ArgusPrintLastDate (char *date, struct ArgusRecord *ptr)
{
struct timeval *tvp = NULL;
if (ptr->ahdr.type & ARGUS_MAR)
***************
*** 934,943 ****
else
tvp = &ptr->argus_far.time.last;
! if ((RaFieldDelimiter != ' ') && (RaFieldDelimiter != '\0'))
! delim = RaFieldDelimiter;
!
! sprintf (&date[strlen(date)], "%s%c", print_time(tvp), delim);
}
void
--- 929,935 ----
else
tvp = &ptr->argus_far.time.last;
! sprintf (&date[strlen(date)], "%s", print_time(tvp));
}
void
***************
*** 967,973 ****
sprintf (&date[strlen(date)], " ");
if (RaPrintLastTime)
! sprintf (&date[strlen(date)], "%s%c", print_time(last), delim);
}
void ArgusPrintSrcRate (char *, struct ArgusRecord *);
--- 959,965 ----
sprintf (&date[strlen(date)], " ");
if (RaPrintLastTime)
! sprintf (&date[strlen(date)], "%s", print_time(last));
}
void ArgusPrintSrcRate (char *, struct ArgusRecord *);
***************
*** 1003,1009 ****
if (ArgusThisAgr && (ArgusThisAgr->type == ARGUS_AGR_DSR))
hits = ArgusThisAgr->count;
! sprintf(&buf[strlen(buf)], "%5d ", hits);
}
}
--- 995,1001 ----
if (ArgusThisAgr && (ArgusThisAgr->type == ARGUS_AGR_DSR))
hits = ArgusThisAgr->count;
! sprintf(&buf[strlen(buf)], "%5d", hits);
}
}
***************
*** 1013,1019 ****
ArgusPrintAvgDuration (char *date, struct ArgusRecord *ptr)
{
struct ArgusAGRStruct *ArgusThisAgr = NULL;
! char *sptr, *iptr, delim = ' ';
struct timeval *start = NULL, *last = NULL;
struct timeval buf, *time = &buf;
--- 1005,1011 ----
ArgusPrintAvgDuration (char *date, struct ArgusRecord *ptr)
{
struct ArgusAGRStruct *ArgusThisAgr = NULL;
! char *sptr, *iptr;
struct timeval *start = NULL, *last = NULL;
struct timeval buf, *time = &buf;
***************
*** 1065,1081 ****
sprintf(sptr, ".%06d", (int) time->tv_usec);
sptr[pflag + 1] = '\0';
}
-
- if ((RaFieldDelimiter != ' ') && (RaFieldDelimiter != '\0'))
- sprintf(&date[strlen(date)], "%c", delim);
- else
- sprintf(&date[strlen(date)], "%c", ' ');
}
void
ArgusPrintDuration (char *date, struct ArgusRecord *ptr)
{
! char *sptr, *iptr, delim = ' ';
struct timeval *start = NULL, *last = NULL;
struct timeval buf, *time = &buf;
--- 1057,1068 ----
sprintf(sptr, ".%06d", (int) time->tv_usec);
sptr[pflag + 1] = '\0';
}
}
void
ArgusPrintDuration (char *date, struct ArgusRecord *ptr)
{
! char *sptr, *iptr;
struct timeval *start = NULL, *last = NULL;
struct timeval buf, *time = &buf;
***************
*** 1115,1125 ****
sprintf(sptr, ".%06d", (int) time->tv_usec);
sptr[pflag + 1] = '\0';
}
-
- if ((RaFieldDelimiter != ' ') && (RaFieldDelimiter != '\0'))
- sprintf(&date[strlen(date)], "%c", delim);
- else
- sprintf(&date[strlen(date)], "%c", ' ');
}
void ArgusGetIndicatorString (struct ArgusRecord *, char *);
--- 1102,1107 ----
***************
*** 1215,1222 ****
}
}
- *ptr = RaFieldDelimiter;
-
} else {
int encdone = 0;
--- 1197,1202 ----
***************
*** 1386,1392 ****
else
sprintf (argusIDStr, "%u", argus->ahdr.argusid);
! sprintf(buf, "%-15.15s ", argusIDStr);
}
void ArgusPrintBinNumber (char *, struct ArgusRecord *);
--- 1366,1372 ----
else
sprintf (argusIDStr, "%u", argus->ahdr.argusid);
! sprintf(buf, "%-15.15s", argusIDStr);
}
void ArgusPrintBinNumber (char *, struct ArgusRecord *);
***************
*** 1404,1410 ****
void
ArgusPrintSequenceNumber (char *buf, struct ArgusRecord *argus) {
! sprintf(buf, "%d ", argus->ahdr.seqNumber);
}
--- 1384,1390 ----
void
ArgusPrintSequenceNumber (char *buf, struct ArgusRecord *argus) {
! sprintf(buf, "%d", argus->ahdr.seqNumber);
}
***************
*** 1424,1433 ****
esrcString = etheraddr_string ((u_char *)&mac->phys_union.ether.ethersrc);
edstString = etheraddr_string ((u_char *)&mac->phys_union.ether.etherdst);
! sprintf (buf, "%17.17s %17.17s ", esrcString, edstString);
! } else
! sprintf (buf, "%17.17s %17.17s ", blankStr, blankStr);
}
void
--- 1404,1424 ----
esrcString = etheraddr_string ((u_char *)&mac->phys_union.ether.ethersrc);
edstString = etheraddr_string ((u_char *)&mac->phys_union.ether.etherdst);
! sprintf (buf, "%17.17s", esrcString);
! if ((RaFieldDelimiter != ' ') && (RaFieldDelimiter != '\0'))
! sprintf(&buf[strlen(buf)], "%c", RaFieldDelimiter);
! else
! sprintf(&buf[strlen(buf)], "%c", ' ');
! sprintf (&buf[strlen(buf)], "%17.17s", edstString);
! } else {
! sprintf (buf, "%17.17s", blankStr);
! if ((RaFieldDelimiter != ' ') && (RaFieldDelimiter != '\0'))
! sprintf(&buf[strlen(buf)], "%c", RaFieldDelimiter);
! else
! sprintf(&buf[strlen(buf)], "%c", ' ');
! sprintf (&buf[strlen(buf)], "%17.17s", blankStr);
! }
}
void
***************
*** 1468,1474 ****
}
if (protoStr != NULL)
! sprintf (buf, "%4.4s ", protoStr);
}
int ArgusPrintNet = 0;
--- 1459,1465 ----
}
if (protoStr != NULL)
! sprintf (buf, "%4.4s", protoStr);
}
int ArgusPrintNet = 0;
***************
*** 1537,1543 ****
struct ArgusFlow *flow;
if (argus->ahdr.type & ARGUS_MAR) {
! sprintf (&buf[strlen(buf)], "%*d ", hfield, argus->argus_mar.nextMrSequenceNum);
} else {
flow = &argus->argus_far.flow;
--- 1528,1534 ----
struct ArgusFlow *flow;
if (argus->ahdr.type & ARGUS_MAR) {
! sprintf (&buf[strlen(buf)], "%*u ", hfield, argus->argus_mar.nextMrSequenceNum);
} else {
flow = &argus->argus_far.flow;
***************
*** 1595,1603 ****
}
if (addr != NULL)
! sprintf (buf, "%*.*s ", thishfield, thishfield, addrstr);
else
! sprintf (buf, "%*.*s ", thishfield, thishfield, " ");
}
--- 1586,1595 ----
}
if (addr != NULL)
! sprintf (buf, "%*.*s", thishfield, thishfield, addrstr);
else
! sprintf (buf, "%*.*s", thishfield, thishfield, " ");
!
}
***************
*** 1631,1638 ****
case ETHERTYPE_REVARP:
case ETHERTYPE_ARP:
sprintf (&buf[strlen(buf)], "%*s", pfield - 1, " ");
- if ((RaFieldDelimiter != ' ') && (RaFieldDelimiter != '\0'))
- sprintf (buf, "%c", RaFieldDelimiter);
break;
default:
--- 1623,1628 ----
***************
*** 1650,1656 ****
ArgusPrintDstPort (char *buf, struct ArgusRecord *argus)
{
if (argus->ahdr.type & ARGUS_MAR) {
! sprintf (&buf[strlen(buf)], "%-*d", pfield + 1, argus->argus_mar.flows);
} else {
struct ArgusFlow *flow = &argus->argus_far.flow;
--- 1640,1646 ----
ArgusPrintDstPort (char *buf, struct ArgusRecord *argus)
{
if (argus->ahdr.type & ARGUS_MAR) {
! sprintf (&buf[strlen(buf)], "%-*u", pfield + 1, argus->argus_mar.flows);
} else {
struct ArgusFlow *flow = &argus->argus_far.flow;
***************
*** 1673,1681 ****
} else
sprintf (&buf[strlen(buf)], "%*s", pfield - 1, " ");
- if ((RaFieldDelimiter != ' ') && (RaFieldDelimiter != '\0'))
- sprintf (buf, "%c", RaFieldDelimiter);
-
break;
default:
--- 1663,1668 ----
***************
*** 1699,1769 ****
switch (proto) {
case IPPROTO_TCP:
case IPPROTO_UDP:
! if (RaPrintIndex > 0)
if ((RaPrintAlgorithms[RaPrintIndex - 1] == ArgusPrintSrcAddr) ||
(RaPrintAlgorithms[RaPrintIndex - 1] == ArgusPrintDstAddr))
if (RaFieldDelimiter == '\0')
if (buf[strlen(buf) - 1] == ' ')
buf[strlen(buf) - 1] = '.';
- sprintf (buf, "%-*d ", thispfield, port);
break;
default:
- if ((RaFieldDelimiter != ' ') && (RaFieldDelimiter != '\0'))
- sprintf (&buf[strlen(buf)], "%c", RaFieldDelimiter);
- else
- sprintf (buf, "%-*.*s ", thispfield, thispfield, " ");
break;
}
} else {
switch (proto) {
case IPPROTO_TCP:
case IPPROTO_UDP:
! if (RaPrintIndex > 0)
if ((RaPrintAlgorithms[RaPrintIndex - 1] == ArgusPrintSrcAddr) ||
(RaPrintAlgorithms[RaPrintIndex - 1] == ArgusPrintDstAddr))
if (RaFieldDelimiter == '\0')
if (buf[strlen(buf) - 1] == ' ')
buf[strlen(buf) - 1] = '.';
if (proto == IPPROTO_TCP)
! sprintf (buf, "%-*.*s ", thispfield, thispfield, tcpport_string(port));
else
! sprintf (buf, "%-*.*s ", thispfield, thispfield, udpport_string(port));
break;
default:
! if ((RaFieldDelimiter != ' ') && (RaFieldDelimiter != '\0'))
! sprintf (&buf[strlen(buf)], "%c", RaFieldDelimiter);
! else
! sprintf (buf, "%-*.*s ", thispfield, thispfield, " ");
break;
}
}
} else {
if ((RaFieldDelimiter != ' ') && (RaFieldDelimiter != '\0')) {
- sprintf (buf, "%c", RaFieldDelimiter);
} else {
switch (proto) {
default:
! sprintf (buf, "%-*.*s ", thispfield, thispfield, " ");
break;
case IPPROTO_TCP:
case IPPROTO_UDP:
! if (RaPrintIndex > 0)
if ((RaPrintAlgorithms[RaPrintIndex - 1] == ArgusPrintSrcAddr) ||
(RaPrintAlgorithms[RaPrintIndex - 1] == ArgusPrintDstAddr))
if (RaFieldDelimiter == '\0')
if (buf[strlen(buf) - 1] == ' ')
buf[strlen(buf) - 1] = '.';
!
if (argus->ahdr.status & ARGUS_MERGED)
sprintf (buf, "%-*.*s ", thispfield, thispfield, "*");
else
! sprintf (buf, "%-*d ", thispfield, port);
break;
}
}
--- 1686,1762 ----
switch (proto) {
case IPPROTO_TCP:
case IPPROTO_UDP:
! if ((RaPrintIndex > 0) && ((RaFieldDelimiter == ' ') ||
! (RaFieldDelimiter == '\0'))) {
if ((RaPrintAlgorithms[RaPrintIndex - 1] == ArgusPrintSrcAddr) ||
(RaPrintAlgorithms[RaPrintIndex - 1] == ArgusPrintDstAddr))
if (RaFieldDelimiter == '\0')
if (buf[strlen(buf) - 1] == ' ')
buf[strlen(buf) - 1] = '.';
+ }
+
+ sprintf (buf, "%-*d", thispfield, port);
break;
default:
break;
}
} else {
switch (proto) {
case IPPROTO_TCP:
case IPPROTO_UDP:
! if ((RaPrintIndex > 0) && ((RaFieldDelimiter == ' ') ||
! (RaFieldDelimiter == '\0'))) {
if ((RaPrintAlgorithms[RaPrintIndex - 1] == ArgusPrintSrcAddr) ||
(RaPrintAlgorithms[RaPrintIndex - 1] == ArgusPrintDstAddr))
if (RaFieldDelimiter == '\0')
if (buf[strlen(buf) - 1] == ' ')
buf[strlen(buf) - 1] = '.';
+ }
if (proto == IPPROTO_TCP)
! sprintf (buf, "%-*.*s", thispfield, thispfield, tcpport_string(port));
else
! sprintf (buf, "%-*.*s", thispfield, thispfield, udpport_string(port));
break;
default:
!
break;
}
}
} else {
if ((RaFieldDelimiter != ' ') && (RaFieldDelimiter != '\0')) {
} else {
switch (proto) {
default:
! sprintf (buf, "%-*.*s", thispfield, thispfield, " ");
! if ((RaFieldDelimiter != ' ') && (RaFieldDelimiter != '\0'))
! sprintf (&buf[strlen(buf)], "%c", RaFieldDelimiter);
! else
! sprintf (buf, "%-*.*s ", thispfield, thispfield, " ");
break;
case IPPROTO_TCP:
case IPPROTO_UDP:
! if ((RaPrintIndex > 0) && ((RaFieldDelimiter == ' ') ||
! (RaFieldDelimiter == '\0'))) {
if ((RaPrintAlgorithms[RaPrintIndex - 1] == ArgusPrintSrcAddr) ||
(RaPrintAlgorithms[RaPrintIndex - 1] == ArgusPrintDstAddr))
if (RaFieldDelimiter == '\0')
if (buf[strlen(buf) - 1] == ' ')
buf[strlen(buf) - 1] = '.';
! }
if (argus->ahdr.status & ARGUS_MERGED)
sprintf (buf, "%-*.*s ", thispfield, thispfield, "*");
else
! sprintf (buf, "%-*d", thispfield, port);
! if ((RaFieldDelimiter != ' ') && (RaFieldDelimiter != '\0'))
! sprintf (&buf[strlen(buf)], "%c", RaFieldDelimiter);
! else
! sprintf (buf, "%-*.*s ", thispfield, thispfield, " ");
break;
}
}
***************
*** 1775,1790 ****
default:
thispfield -= 2;
! if ((ArgusThisProto == 0) && (proto != 0)) {
! sprintf (buf, "%-*.*s ", thispfield, thispfield, llcsap_string((unsigned char) port));
! } else {
- if ((RaFieldDelimiter != ' ') && (RaFieldDelimiter != '\0')) {
- sprintf (buf, "%c", RaFieldDelimiter);
- } else {
- sprintf (buf, "%-*.*s ", thispfield, thispfield, " ");
- }
- }
}
}
--- 1768,1776 ----
default:
thispfield -= 2;
! if ((ArgusThisProto == 0) && (proto != 0))
! sprintf (buf, "%-*.*s", thispfield, thispfield, llcsap_string((unsigned char) port));
}
}
***************
*** 1969,1975 ****
}
}
! sprintf (buf, "%s ", dirStr);
}
void
--- 1955,1961 ----
}
}
! sprintf (buf, "%s", dirStr);
}
void
***************
*** 1986,1992 ****
dst_count = argus->argus_far.dst.count;
}
! sprintf (buf, "%-8u %-8u ", src_count, dst_count);
}
void
--- 1972,1978 ----
dst_count = argus->argus_far.dst.count;
}
! sprintf (buf, "%-8u%c%-8u", src_count,RaFieldDelimiter, dst_count);
}
void
***************
*** 2001,2007 ****
src_count = argus->argus_far.src.count;
}
! sprintf (buf, "%-8u ", src_count);
}
void
--- 1987,1993 ----
src_count = argus->argus_far.src.count;
}
! sprintf (buf, "%-8u", src_count);
}
void
***************
*** 2016,2022 ****
dst_count = argus->argus_far.dst.count;
}
! sprintf (buf, "%-8u ", dst_count);
}
void
--- 2002,2008 ----
dst_count = argus->argus_far.dst.count;
}
! sprintf (buf, "%-8u", dst_count);
}
void
***************
*** 2038,2044 ****
}
}
! sprintf (buf, "%-12u %-12u", src_bytes, dst_bytes);
}
void
--- 2024,2030 ----
}
}
! sprintf (buf, "%-12u%c%-12u", src_bytes, RaFieldDelimiter, dst_bytes);
}
void
***************
*** 2077,2084 ****
sprintf (buf, "%-12u", dst_bytes);
}
-
-
#include <math.h>
void
--- 2063,2068 ----
***************
*** 2092,2099 ****
void
ArgusPrintDstJitter (char *buf, struct ArgusRecord *argus)
{
! RaPrintSrcTime = 1;
! RaPrintDstTime = 0;
ArgusPrintJitter (buf, argus);
}
--- 2076,2083 ----
void
ArgusPrintDstJitter (char *buf, struct ArgusRecord *argus)
{
! RaPrintSrcTime = 0;
! RaPrintDstTime = 1;
ArgusPrintJitter (buf, argus);
}
***************
*** 2102,2110 ****
{
struct ArgusTimeStruct *time = NULL;
char stdstr[128], jitterstr[128];
! int maxval = 0, minval = 0x7FFFFFFF, n, meanval = 0;
long long sumtime = 0, tmpsumtime = 0;
! double sumsqrd = 0.0, stdev = 0.0;
ArgusThisFarStatus = ArgusIndexRecord(argus, ArgusThisFarHdrs);
time = (struct ArgusTimeStruct *) ArgusThisFarHdrs[ARGUS_TIME_DSR_INDEX];
--- 2086,2096 ----
{
struct ArgusTimeStruct *time = NULL;
char stdstr[128], jitterstr[128];
! unsigned int n;
! int maxval = 0, minval = 0x7FFFFFFF;
long long sumtime = 0, tmpsumtime = 0;
! double stdev = 0.0, sumsqrd1 = 0.0, sumsqrd2 = 0.0, sumsqrd;
! float meanval;
ArgusThisFarStatus = ArgusIndexRecord(argus, ArgusThisFarHdrs);
time = (struct ArgusTimeStruct *) ArgusThisFarHdrs[ARGUS_TIME_DSR_INDEX];
***************
*** 2117,2157 ****
n = 0;
if (time != NULL) {
! if (RaPrintActTime && time->src.act.n) {
! n += time->src.act.n;
! tmpsumtime = (time->src.act.meanval * time->src.act.n);
! sumtime += tmpsumtime;
! sumsqrd += (time->src.act.n * pow(time->src.act.stdev, 2.0)) + pow(tmpsumtime, 2.0)/time->src.act.n;
! maxval = (maxval < time->src.act.maxval) ? time->src.act.maxval : maxval;
! minval = (minval > time->src.act.minval) ? time->src.act.minval : minval;
! }
!
! if (RaPrintIdleTime && time->src.idle.n) {
! n += time->src.idle.n;
! tmpsumtime = (time->src.idle.meanval * time->src.idle.n);
! sumtime += tmpsumtime;
! sumsqrd += (time->src.idle.n * pow(time->src.idle.stdev, 2.0)) + pow(tmpsumtime, 2.0)/time->src.idle.n;
! maxval = (maxval < time->src.idle.maxval) ? time->src.idle.maxval : maxval;
! minval = (minval > time->src.idle.minval) ? time->src.idle.minval : minval;
! }
! }
!
! if (n > 0) {
! meanval = sumtime/n;
! /*
! stdev = sqrt (sumsqrd/n - pow (meanval, 2.0));
! istdev = (stdev) * 1;
!
! sprintf (stdstr, "%d.%03d", istdev/1000, istdev%1000);
! stdstr[6] = '\0';
! sprintf (jitterstr, "%6d.%03d (%6s)", meanval/1000, meanval%1000, stdstr);
! */
! sprintf (jitterstr, "%6d.%03d", meanval/1000, meanval%1000);
! sprintf (&buf[strlen(buf)], "%-12s ", jitterstr);
!
! } else {
! sprintf (jitterstr, "%6d.%03d", meanval/1000, meanval%1000);
! sprintf (&buf[strlen(buf)], "%-12s ", jitterstr);
}
}
--- 2103,2138 ----
n = 0;
if (time != NULL) {
! if ((RaPrintActTime) && ((n = (time->src.act.n + time->dst.idle.n)) > 0)) {
! if (time->src.act.n && time->dst.act.n) {
! meanval = ((time->src.act.meanval * time->src.act.n) +
! (time->dst.idle.meanval * time->dst.act.n)) / n;
! if (time->src.act.n) {
! stdev = time->src.act.stdev;
! sumsqrd1 = (time->src.act.n * pow(stdev, 2.0)) +
! pow((time->src.act.meanval * time->src.act.n), 2.0)/time->src.act.n;
! }
!
! if (time->dst.act.n) {
! stdev = time->dst.act.meanval;
! sumsqrd2 = (time->dst.act.n * pow(stdev, 2.0)) +
! pow((time->dst.act.meanval * time->dst.act.n), 2.0)/time->dst.act.n;
! }
!
! sumsqrd = sumsqrd1 + sumsqrd2;
! stdev = ((sqrt ((sumsqrd/n) - pow (meanval, 2.0))) * 1);
! } else
! stdev = (time->src.act.n) ? time->src.act.stdev : time->dst.act.stdev;
!
! sprintf (&buf[strlen(buf)], "%f", stdev);
! }
! }
!
! if (RaPrintDstTime) {
! if ((RaFieldDelimiter != ' ') && (RaFieldDelimiter != '\0'))
! sprintf(&buf[strlen(buf)], "%c", RaFieldDelimiter);
! else
! sprintf(&buf[strlen(buf)], "%c", ' ');
}
}
***************
*** 2160,2207 ****
bzero (jitterstr, 128);
sumtime = 0;
sumsqrd = 0.0;
! meanval = 0;
stdev = 0.0;
maxval = 0;
minval = 0x7FFFFFFF;
n = 0;
if (time != NULL) {
! if (RaPrintActTime && time->dst.act.n) {
! n += time->dst.act.n;
! tmpsumtime = (time->dst.act.meanval * time->dst.act.n);
! sumtime += tmpsumtime;
! sumsqrd += (time->dst.act.n * pow(time->dst.act.stdev, 2.0)) + pow(tmpsumtime, 2.0)/time->dst.act.n;
! maxval = (maxval < time->dst.act.maxval) ? time->dst.act.maxval : maxval;
! minval = (minval > time->dst.act.minval) ? time->dst.act.minval : minval;
! }
!
! if (RaPrintIdleTime && time->dst.idle.n) {
! n += time->dst.idle.n;
! tmpsumtime = (time->dst.idle.meanval * time->dst.idle.n);
! sumtime += tmpsumtime;
! sumsqrd += (time->dst.idle.n * pow(time->dst.idle.stdev, 2.0)) + pow(tmpsumtime, 2.0)/time->dst.idle.n;
! maxval = (maxval < time->dst.idle.maxval) ? time->dst.idle.maxval : maxval;
! minval = (minval > time->dst.idle.minval) ? time->dst.idle.minval : minval;
! }
! }
!
! if (n > 0) {
! meanval = sumtime/n;
! /*
! stdev = sqrt (sumsqrd/n - pow (meanval, 2.0));
! istdev = (stdev)*1;
! sprintf (stdstr, "%d.%03d", istdev/1000, istdev%1000);
! stdstr[6] = '\0';
! sprintf (jitterstr, "%6d.%03d (%s)", meanval/1000, meanval%1000, stdstr);
! */
! sprintf (jitterstr, "%6d.%03d", meanval/1000, meanval%1000);
! sprintf (&buf[strlen(buf)], "%-12s", jitterstr);
!
! } else {
! sprintf (jitterstr, "%6d.%03d", meanval/1000, meanval%1000);
! sprintf (&buf[strlen(buf)], "%-12s", jitterstr);
}
}
}
--- 2141,2179 ----
bzero (jitterstr, 128);
sumtime = 0;
sumsqrd = 0.0;
! meanval = 0.0;
stdev = 0.0;
maxval = 0;
minval = 0x7FFFFFFF;
+ stdev = 0.0;
+ sumsqrd1 = 0.0;
+ sumsqrd2 = 0.0;
n = 0;
if (time != NULL) {
! if ((RaPrintDstTime) && ((n = (time->src.idle.n + time->dst.idle.n)) > 0)) {
! if (time->src.idle.n && time->dst.idle.n) {
! meanval = ((time->src.idle.meanval * time->src.idle.n) +
! (time->dst.idle.meanval * time->dst.idle.n)) / n;
! if (time->src.idle.n) {
! stdev = time->src.idle.stdev;
! sumsqrd1 = (time->src.idle.n * pow(stdev, 2.0)) +
! pow((time->src.idle.meanval * time->src.idle.n), 2.0)/time->src.idle.n;
! }
!
! if (time->dst.idle.n) {
! stdev = time->dst.idle.stdev;
! sumsqrd2 = (time->dst.idle.n * pow(time->dst.idle.stdev, 2.0)) +
! pow((time->dst.idle.meanval * time->dst.idle.n), 2.0)/time->dst.idle.n;
! }
!
! sumsqrd = sumsqrd1 + sumsqrd2;
! stdev = ((sqrt ((sumsqrd/n) - pow (meanval, 2.0))) * 1);
! } else
! stdev = (time->src.idle.n) ? time->src.idle.stdev : time->dst.idle.stdev;
! sprintf (&buf[strlen(buf)], "%f", stdev);
! }
}
}
}
***************
*** 2209,2215 ****
void
ArgusPrintSrcRate (char *buf, struct ArgusRecord *argus)
{
! int src_count = 0;
struct timeval *start = NULL, *last = NULL;
struct timeval timebuf, *time = &timebuf;
char tmpbuf[128], *ptr = tmpbuf;
--- 2181,2187 ----
void
ArgusPrintSrcRate (char *buf, struct ArgusRecord *argus)
{
! uint src_count = 0;
struct timeval *start = NULL, *last = NULL;
struct timeval timebuf, *time = &timebuf;
char tmpbuf[128], *ptr = tmpbuf;
***************
*** 2236,2242 ****
src_count = argus->argus_far.src.count;
! if (src_count > 1)
sprintf (ptr, "%.2f", ((double)(src_count)/seconds));
else
sprintf (ptr, "%.2f", 0.0);
--- 2208,2214 ----
src_count = argus->argus_far.src.count;
! if (src_count > 0)
sprintf (ptr, "%.2f", ((double)(src_count)/seconds));
else
sprintf (ptr, "%.2f", 0.0);
***************
*** 2247,2253 ****
void
ArgusPrintDstRate (char *buf, struct ArgusRecord *argus)
{
! int dst_count = 0;
struct timeval *start = NULL, *last = NULL;
struct timeval timebuf, *time = &timebuf;
char tmpbuf[128], *ptr = tmpbuf;
--- 2219,2225 ----
void
ArgusPrintDstRate (char *buf, struct ArgusRecord *argus)
{
! uint dst_count = 0;
struct timeval *start = NULL, *last = NULL;
struct timeval timebuf, *time = &timebuf;
char tmpbuf[128], *ptr = tmpbuf;
***************
*** 2274,2280 ****
dst_count = argus->argus_far.dst.count;
! if (dst_count > 1)
sprintf (ptr, "%.2f", ((double)(dst_count)/seconds));
else
sprintf (ptr, "%.2f", 0.0);
--- 2246,2252 ----
dst_count = argus->argus_far.dst.count;
! if (dst_count > 0)
sprintf (ptr, "%.2f", ((double)(dst_count)/seconds));
else
sprintf (ptr, "%.2f", 0.0);
***************
*** 2285,2291 ****
void
ArgusPrintRate (char *buf, struct ArgusRecord *argus)
{
! int src_count = 0, dst_count = 0;
struct timeval *start = NULL, *last = NULL;
struct timeval timebuf, *time = &timebuf;
char tmpbuf[128], *ptr = tmpbuf;
--- 2257,2263 ----
void
ArgusPrintRate (char *buf, struct ArgusRecord *argus)
{
! uint src_count = 0, dst_count = 0;
struct timeval *start = NULL, *last = NULL;
struct timeval timebuf, *time = &timebuf;
char tmpbuf[128], *ptr = tmpbuf;
***************
*** 2313,2331 ****
src_count = argus->argus_far.src.count;
dst_count = argus->argus_far.dst.count;
! if (src_count > 1)
sprintf (ptr, "%.2f", ((double)(src_count)/seconds));
else
sprintf (ptr, "%.2f", 0.0);
sprintf (buf, "%10s", ptr);
! if (dst_count > 1)
sprintf (ptr, "%.2f", ((double)(dst_count)/seconds));
else
sprintf (ptr, "%.2f", 0.0);
! sprintf (&buf[strlen(buf)], "%10s ", ptr);
}
/*
--- 2285,2308 ----
src_count = argus->argus_far.src.count;
dst_count = argus->argus_far.dst.count;
! if (src_count > 0)
sprintf (ptr, "%.2f", ((double)(src_count)/seconds));
else
sprintf (ptr, "%.2f", 0.0);
sprintf (buf, "%10s", ptr);
! if ((RaFieldDelimiter != ' ') && (RaFieldDelimiter != '\0'))
! sprintf(&buf[strlen(buf)], "%c", RaFieldDelimiter);
! else
! sprintf(&buf[strlen(buf)], "%c", ' ');
!
! if (dst_count > 0)
sprintf (ptr, "%.2f", ((double)(dst_count)/seconds));
else
sprintf (ptr, "%.2f", 0.0);
! sprintf (&buf[strlen(buf)], "%10s", ptr);
}
/*
***************
*** 2443,2453 ****
if (seconds) {
sprintf (ptr, "%.4f", ((double)srcLossPkts));
sprintf (buf, "%10s", ptr);
sprintf (ptr, "%.4f", ((double)dstLossPkts));
! sprintf (&buf[strlen(buf)], "%10s ", ptr);
} else {
sprintf (ptr, "%.4f", 0.0);
sprintf (buf, "%10s", ptr);
sprintf (ptr, "%.4f", 0.0);
sprintf (&buf[strlen(buf)], "%10s ", ptr);
}
--- 2420,2438 ----
if (seconds) {
sprintf (ptr, "%.4f", ((double)srcLossPkts));
sprintf (buf, "%10s", ptr);
+ if ((RaFieldDelimiter != ' ') && (RaFieldDelimiter != '\0'))
+ sprintf(&buf[strlen(buf)], "%c", RaFieldDelimiter);
+ else
+ sprintf(&buf[strlen(buf)], "%c", ' ');
sprintf (ptr, "%.4f", ((double)dstLossPkts));
! sprintf (&buf[strlen(buf)], "%10s", ptr);
} else {
sprintf (ptr, "%.4f", 0.0);
sprintf (buf, "%10s", ptr);
+ if ((RaFieldDelimiter != ' ') && (RaFieldDelimiter != '\0'))
+ sprintf(&buf[strlen(buf)], "%c", RaFieldDelimiter);
+ else
+ sprintf(&buf[strlen(buf)], "%c", ' ');
sprintf (ptr, "%.4f", 0.0);
sprintf (&buf[strlen(buf)], "%10s ", ptr);
}
***************
*** 2492,2501 ****
if (seconds) {
sprintf (ptr, "%.2f", ((double)(src_bytes * 8.0))/seconds);
! sprintf (&buf[strlen(buf)], "%11s ", ptr);
} else {
sprintf (ptr, "%.2f", 0.0);
! sprintf (&buf[strlen(buf)], "%11s ", ptr);
}
}
--- 2477,2486 ----
if (seconds) {
sprintf (ptr, "%.2f", ((double)(src_bytes * 8.0))/seconds);
! sprintf (&buf[strlen(buf)], "%11s", ptr);
} else {
sprintf (ptr, "%.2f", 0.0);
! sprintf (&buf[strlen(buf)], "%11s", ptr);
}
}
***************
*** 2538,2557 ****
if (seconds) {
sprintf (ptr, "%.2f", ((double)(dst_bytes * 8.0))/seconds);
! sprintf (&buf[strlen(buf)], "%13s ", ptr);
} else {
sprintf (ptr, "%.2f", 0.0);
! sprintf (&buf[strlen(buf)], "%13s ", ptr);
}
}
void
ArgusPrintLoad (char *buf, struct ArgusRecord *argus)
{
! int src_count = 0, dst_count = 0, src_bytes = 0, dst_bytes = 0;
struct timeval *start = NULL, *last = NULL;
struct timeval timebuf, *time = &timebuf;
! char tmpbuf[128], *ptr = tmpbuf;
double seconds;
start = &argus->argus_far.time.start;
--- 2523,2542 ----
if (seconds) {
sprintf (ptr, "%.2f", ((double)(dst_bytes * 8.0))/seconds);
! sprintf (&buf[strlen(buf)], "%13s", ptr);
} else {
sprintf (ptr, "%.2f", 0.0);
! sprintf (&buf[strlen(buf)], "%13s", ptr);
}
}
void
ArgusPrintLoad (char *buf, struct ArgusRecord *argus)
{
! uint src_count = 0, dst_count = 0, src_bytes = 0, dst_bytes = 0;
struct timeval *start = NULL, *last = NULL;
struct timeval timebuf, *time = &timebuf;
! char tmpbuf[128], *ptr = tmpbuf, delim = ' ';
double seconds;
start = &argus->argus_far.time.start;
***************
*** 2583,2599 ****
src_bytes = argus->argus_far.src.bytes;
dst_bytes = argus->argus_far.dst.bytes;
}
if (seconds) {
sprintf (ptr, "%.2f", ((double)(src_bytes * 8.0))/seconds);
! sprintf (buf, "%13s", ptr);
sprintf (ptr, "%.2f", ((double)(dst_bytes * 8.0))/seconds);
! sprintf (&buf[strlen(buf)], "%13s ", ptr);
} else {
sprintf (ptr, "%.2f", 0.0);
! sprintf (buf, "%13s", ptr);
sprintf (ptr, "%.2f", 0.0);
! sprintf (&buf[strlen(buf)], "%13s ", ptr);
}
}
--- 2568,2587 ----
src_bytes = argus->argus_far.src.bytes;
dst_bytes = argus->argus_far.dst.bytes;
}
+
+ if ((RaFieldDelimiter != ' ') && (RaFieldDelimiter != '\0'))
+ delim = RaFieldDelimiter;
if (seconds) {
sprintf (ptr, "%.2f", ((double)(src_bytes * 8.0))/seconds);
! sprintf (buf, "%13s%c", ptr, delim);
sprintf (ptr, "%.2f", ((double)(dst_bytes * 8.0))/seconds);
! sprintf (&buf[strlen(buf)], "%13s", ptr);
} else {
sprintf (ptr, "%.2f", 0.0);
! sprintf (buf, "%13s%c", ptr, delim);
sprintf (ptr, "%.2f", 0.0);
! sprintf (&buf[strlen(buf)], "%13s", ptr);
}
}
***************
*** 2608,2616 ****
sdis = i - argus->argus_far.attr_ip.sttl;
}
}
! sprintf (&buf[strlen(buf)], " %3d ", sdis);
} else
! sprintf (&buf[strlen(buf)], " %3d ", argus->argus_far.attr_ip.sttl);
}
void
--- 2596,2604 ----
sdis = i - argus->argus_far.attr_ip.sttl;
}
}
! sprintf (&buf[strlen(buf)], " %3d", sdis);
} else
! sprintf (&buf[strlen(buf)], " %3d", argus->argus_far.attr_ip.sttl);
}
void
***************
*** 2624,2633 ****
ddis = i - argus->argus_far.attr_ip.dttl;
}
}
! sprintf (&buf[strlen(buf)], " %3d ", ddis);
} else
! sprintf (&buf[strlen(buf)], " %3d ", argus->argus_far.attr_ip.dttl);
}
void
--- 2612,2621 ----
ddis = i - argus->argus_far.attr_ip.dttl;
}
}
! sprintf (&buf[strlen(buf)], " %3d", ddis);
} else
! sprintf (&buf[strlen(buf)], " %3d", argus->argus_far.attr_ip.dttl);
}
void
***************
*** 2637,2651 ****
struct ArgusVlanStruct *vlan = (struct ArgusVlanStruct *) ArgusThisFarHdrs[ARGUS_VLAN_DSR_INDEX];
if (vlan->status & ARGUS_SRC_VLAN)
! sprintf (&buf[strlen(buf)], "0x%04x ", vlan->sid);
else
! sprintf(&buf[strlen(buf)], " ");
if (vlan->status & ARGUS_DST_VLAN)
! sprintf (&buf[strlen(buf)], "0x%04x ", vlan->did);
else
! sprintf(&buf[strlen(buf)], " ");
} else
! sprintf (&buf[strlen(buf)], " ");
}
void
--- 2625,2646 ----
struct ArgusVlanStruct *vlan = (struct ArgusVlanStruct *) ArgusThisFarHdrs[ARGUS_VLAN_DSR_INDEX];
if (vlan->status & ARGUS_SRC_VLAN)
! sprintf (&buf[strlen(buf)], "0x%04x%c", vlan->sid, RaFieldDelimiter);
else
! if (RaFieldDelimiter == ' ')
! sprintf(&buf[strlen(buf)], " ");
! else
! sprintf(&buf[strlen(buf)], "%c", RaFieldDelimiter);
if (vlan->status & ARGUS_DST_VLAN)
! sprintf (&buf[strlen(buf)], "0x%04x", vlan->did);
else
! if (RaFieldDelimiter == ' ')
! sprintf(&buf[strlen(buf)], " ");
} else
! if (RaFieldDelimiter == ' ')
! sprintf (&buf[strlen(buf)], " ");
! else
! sprintf(&buf[strlen(buf)], "%c", RaFieldDelimiter);
}
void
***************
*** 2655,2682 ****
struct ArgusMplsStruct *mpls = (struct ArgusMplsStruct *) ArgusThisFarHdrs[ARGUS_MPLS_DSR_INDEX];
if (mpls->status & ARGUS_SRC_MPLS)
! sprintf (&buf[strlen(buf)], " %5x ", mpls->slabel);
else
! sprintf(&buf[strlen(buf)], " ");
if (mpls->status & ARGUS_DST_MPLS)
! sprintf (&buf[strlen(buf)], " %5x ", mpls->dlabel);
else
! sprintf(&buf[strlen(buf)], " ");
} else
! sprintf (&buf[strlen(buf)], " ");
}
void
ArgusPrintSrcTOS (char *buf, struct ArgusRecord *argus)
{
! sprintf (&buf[strlen(buf)], " %3d ", argus->argus_far.attr_ip.stos);
}
void
ArgusPrintDstTOS (char *buf, struct ArgusRecord *argus)
{
! sprintf (&buf[strlen(buf)], " %3d ", argus->argus_far.attr_ip.dtos);
}
--- 2650,2681 ----
struct ArgusMplsStruct *mpls = (struct ArgusMplsStruct *) ArgusThisFarHdrs[ARGUS_MPLS_DSR_INDEX];
if (mpls->status & ARGUS_SRC_MPLS)
! sprintf (&buf[strlen(buf)], "%5x%c", mpls->slabel, RaFieldDelimiter);
else
! sprintf(&buf[strlen(buf)], " %c", RaFieldDelimiter);
if (mpls->status & ARGUS_DST_MPLS)
! sprintf (&buf[strlen(buf)], "%5x", mpls->dlabel);
else
! if (RaFieldDelimiter == ' ')
! sprintf(&buf[strlen(buf)], " ");
} else
! if (RaFieldDelimiter == ' ')
! sprintf(&buf[strlen(buf)], " ");
! else
! sprintf (&buf[strlen(buf)], "%c", RaFieldDelimiter);
}
void
ArgusPrintSrcTOS (char *buf, struct ArgusRecord *argus)
{
! sprintf (&buf[strlen(buf)], " %3d ", argus->argus_far.attr_ip.stos);
}
void
ArgusPrintDstTOS (char *buf, struct ArgusRecord *argus)
{
! sprintf (&buf[strlen(buf)], " %3d" , argus->argus_far.attr_ip.dtos);
}
***************
*** 2694,2708 ****
if (tcp != NULL) {
srcwin = tcp->src.win;
dstwin = tcp->dst.win;
! sprintf (&buf[strlen(buf)], "%-5d %-5d ", srcwin, dstwin);
} else {
! sprintf (&buf[strlen(buf)], "%14s", " ");
}
break;
}
default:
! sprintf (&buf[strlen(buf)], "%14s", " ");
}
}
--- 2693,2707 ----
if (tcp != NULL) {
srcwin = tcp->src.win;
dstwin = tcp->dst.win;
! sprintf (&buf[strlen(buf)], "%-5d%c%-5d", srcwin, RaFieldDelimiter, dstwin);
} else {
! sprintf (&buf[strlen(buf)], "%5s%c%5s", " ", RaFieldDelimiter, " ");
}
break;
}
default:
! sprintf (&buf[strlen(buf)], "%5s%c%5s", " ", RaFieldDelimiter, " ");
}
}
***************
*** 2850,2858 ****
bzero (tmpbuf, MAXSTRLEN);
for (RaPrintIndex = 0; RaPrintIndex < MAX_PRINT_ALG_TYPES; RaPrintIndex++) {
! if (RaPrintAlgorithms[RaPrintIndex] != NULL)
RaPrintAlgorithms[RaPrintIndex](&argus_strbuf[strlen(argus_strbuf)], argus);
! else
break;
}
--- 2849,2861 ----
bzero (tmpbuf, MAXSTRLEN);
for (RaPrintIndex = 0; RaPrintIndex < MAX_PRINT_ALG_TYPES; RaPrintIndex++) {
! if (RaPrintAlgorithms[RaPrintIndex] != NULL) {
RaPrintAlgorithms[RaPrintIndex](&argus_strbuf[strlen(argus_strbuf)], argus);
! if ((RaFieldDelimiter != ' ') && (RaFieldDelimiter != '\0'))
! sprintf(&argus_strbuf[strlen(argus_strbuf)], "%c", RaFieldDelimiter);
! else
! sprintf(&argus_strbuf[strlen(argus_strbuf)], "%c", ' ');
! } else
break;
}
***************
*** 2882,2894 ****
}
while (*str) {
! if (*str == ' ') {
! if (lastchr != RaFieldDelimiter)
! *ptr++ = RaFieldDelimiter;
while (isspace((int)*str)) str++;
- }
- lastchr = *str;
-
*ptr++ = *str++;
}
--- 2885,2892 ----
}
while (*str) {
! if (*str == ' ')
while (isspace((int)*str)) str++;
*ptr++ = *str++;
}
***************
*** 3227,3233 ****
if ((RaFieldDelimiter != ' ') && (RaFieldDelimiter != '\0'))
delim = RaFieldDelimiter;
! if ((ArgusSrcUserDataLen > 0) || (ArgusDstUserDataLen)) {
if (ArgusSrcUserDataLen > 0) {
switch (eflag) {
case ARGUS_ENCODE_ASCII:
--- 3225,3231 ----
if ((RaFieldDelimiter != ' ') && (RaFieldDelimiter != '\0'))
delim = RaFieldDelimiter;
! if ((ArgusSrcUserDataLen > 0) || (ArgusDstUserDataLen > 0)) {
if (ArgusSrcUserDataLen > 0) {
switch (eflag) {
case ARGUS_ENCODE_ASCII:
***************
*** 3253,3274 ****
bzero (strbuf, sizeof(strbuf));
bzero (conbuf, sizeof(conbuf));
if ((len = ArgusEncode (&user->data, NULL, len, str, sizeof(strbuf))) > 0)
! sprintf (con, "%cs[%d]=%s", delim, len, str);
else
sprintf (con, " ");
if (delim == ' ')
! sprintf (&RaUserDataStr[strlen(RaUserDataStr)], "%-*s ", exlen, con);
else
! sprintf (&RaUserDataStr[strlen(RaUserDataStr)], "%-s ", con);
- } else {
- if (delim != ' ')
- sprintf (&RaUserDataStr[strlen(RaUserDataStr)], "%c", delim);
- else
- sprintf (&RaUserDataStr[strlen(RaUserDataStr)], "%-*s ", exlen, " ");
}
}
if (ArgusDstUserDataLen > 0) {
switch (eflag) {
--- 3251,3271 ----
bzero (strbuf, sizeof(strbuf));
bzero (conbuf, sizeof(conbuf));
if ((len = ArgusEncode (&user->data, NULL, len, str, sizeof(strbuf))) > 0)
! sprintf (con, "s[%d]=%s", len, str);
else
sprintf (con, " ");
if (delim == ' ')
! sprintf (&RaUserDataStr[strlen(RaUserDataStr)], "%-*s", exlen, con);
else
! sprintf (&RaUserDataStr[strlen(RaUserDataStr)], "%-s", con);
}
}
+ if (delim != ' ')
+ sprintf (&RaUserDataStr[strlen(RaUserDataStr)], "%c", delim);
+ else
+ sprintf (&RaUserDataStr[strlen(RaUserDataStr)], "%-*s ", exlen, " ");
if (ArgusDstUserDataLen > 0) {
switch (eflag) {
***************
*** 3296,3318 ****
bzero (strbuf, sizeof(strbuf));
bzero (conbuf, sizeof(conbuf));
if ((len = ArgusEncode (&user->data, NULL, len, str, sizeof(strbuf))) > 0)
! sprintf (con, "%cd[%d]=%s", delim, len, str);
else
sprintf (con, " ");
if (delim == ' ')
sprintf (&RaUserDataStr[strlen(RaUserDataStr)], "%-*s ", exlen, con);
else
! sprintf (&RaUserDataStr[strlen(RaUserDataStr)], "%-s ", con);
! } else
! if (delim != ' ')
! sprintf (&RaUserDataStr[strlen(RaUserDataStr)], "%c", delim);
! else
! sprintf (&RaUserDataStr[strlen(RaUserDataStr)], "%-*s ", exlen, " ");
}
!
! sprintf (&RaUserDataStr[strlen(RaUserDataStr)], " ");
}
}
--- 3293,3314 ----
bzero (strbuf, sizeof(strbuf));
bzero (conbuf, sizeof(conbuf));
if ((len = ArgusEncode (&user->data, NULL, len, str, sizeof(strbuf))) > 0)
! sprintf (con, "d[%d]=%s", len, str);
else
sprintf (con, " ");
if (delim == ' ')
sprintf (&RaUserDataStr[strlen(RaUserDataStr)], "%-*s ", exlen, con);
else
! sprintf (&RaUserDataStr[strlen(RaUserDataStr)], "%-s", con);
! }
}
! } else {
! if (delim != ' ')
! sprintf (&RaUserDataStr[strlen(RaUserDataStr)], "%c", delim);
! else
! sprintf (&RaUserDataStr[strlen(RaUserDataStr)], "%-*s %-*s ", exlen, " ", exlen, " ");
}
}
More information about the argus
mailing list