SF.net SVN: gar:[25962] csw/mgar/pkg/dnstop/trunk
bonivart at users.sourceforge.net
bonivart at users.sourceforge.net
Fri Sep 30 16:10:33 CEST 2016
Revision: 25962
http://sourceforge.net/p/gar/code/25962
Author: bonivart
Date: 2016-09-30 14:10:33 +0000 (Fri, 30 Sep 2016)
Log Message:
-----------
dnstop/trunk: update to 20140915
Modified Paths:
--------------
csw/mgar/pkg/dnstop/trunk/Makefile
csw/mgar/pkg/dnstop/trunk/checksums
csw/mgar/pkg/dnstop/trunk/files/Makefile.i386.p
csw/mgar/pkg/dnstop/trunk/files/Makefile.sparc.p
csw/mgar/pkg/dnstop/trunk/files/dnstop.8
Modified: csw/mgar/pkg/dnstop/trunk/Makefile
===================================================================
--- csw/mgar/pkg/dnstop/trunk/Makefile 2016-09-29 19:33:12 UTC (rev 25961)
+++ csw/mgar/pkg/dnstop/trunk/Makefile 2016-09-30 14:10:33 UTC (rev 25962)
@@ -1,5 +1,5 @@
NAME = dnstop
-VERSION = 20110502
+VERSION = 20140915
GARTYPE = v2
DESCRIPTION = Displays various tables of DNS traffic
Modified: csw/mgar/pkg/dnstop/trunk/checksums
===================================================================
--- csw/mgar/pkg/dnstop/trunk/checksums 2016-09-29 19:33:12 UTC (rev 25961)
+++ csw/mgar/pkg/dnstop/trunk/checksums 2016-09-30 14:10:33 UTC (rev 25962)
@@ -1 +1 @@
-28cb54f3780b27e15df8924235e4e37b dnstop-20110502.tar.gz
+f0fe1690b114e076196a51d63266eadc dnstop-20140915.tar.gz
Modified: csw/mgar/pkg/dnstop/trunk/files/Makefile.i386.p
===================================================================
--- csw/mgar/pkg/dnstop/trunk/files/Makefile.i386.p 2016-09-29 19:33:12 UTC (rev 25961)
+++ csw/mgar/pkg/dnstop/trunk/files/Makefile.i386.p 2016-09-30 14:10:33 UTC (rev 25962)
@@ -4,10 +4,10 @@
OPTFLAGS= -DUSE_IPV6=1
CC=/opt/SUNWspro/bin/cc
--CFLAGS=-xO3 -m32 -xarch=386 ${OPTFLAGS}
+-CFLAGS=-xO3 -m32 -xarch=pentium_pro -xchip=pentium_pro ${OPTFLAGS}
-LIBS=-lresolv -lnsl -lsocket -lpcap -lncurses
-+CFLAGS=-xO3 -m32 -xarch=386 ${OPTFLAGS} -I/opt/csw/include
++CFLAGS=-xO3 -m32 -xarch=pentium_pro -xchip=pentium_pro ${OPTFLAGS} -I/opt/csw/include
+LIBS=-lresolv -lnsl -lsocket -lpcap -lcurses
- LDFLAGS=-m32 -xarch=386 -L/opt/csw/lib
+ LDFLAGS=-m32 -xarch=pentium_pro -xchip=pentium_pro -L/opt/csw/lib
prefix=/opt/csw
Modified: csw/mgar/pkg/dnstop/trunk/files/Makefile.sparc.p
===================================================================
--- csw/mgar/pkg/dnstop/trunk/files/Makefile.sparc.p 2016-09-29 19:33:12 UTC (rev 25961)
+++ csw/mgar/pkg/dnstop/trunk/files/Makefile.sparc.p 2016-09-30 14:10:33 UTC (rev 25962)
@@ -4,10 +4,10 @@
OPTFLAGS= -DUSE_IPV6=1
CC=/opt/SUNWspro/bin/cc
--CFLAGS=-xO3 -m32 -xarch=v8 ${OPTFLAGS}
+-CFLAGS=-xO3 -m32 -xarch=sparc ${OPTFLAGS}
-LIBS=-lresolv -lnsl -lsocket -lpcap -lncurses
-+CFLAGS=-xO3 -m32 -xarch=v8 ${OPTFLAGS} -I/opt/csw/include
++CFLAGS=-xO3 -m32 -xarch=sparc ${OPTFLAGS} -I/opt/csw/include
+LIBS=-lresolv -lnsl -lsocket -lpcap -lcurses
- LDFLAGS=-m32 -xarch=v8 -L/opt/csw/lib
+ LDFLAGS=-m32 -xarch=sparc -L/opt/csw/lib
prefix=/opt/csw
Modified: csw/mgar/pkg/dnstop/trunk/files/dnstop.8
===================================================================
--- csw/mgar/pkg/dnstop/trunk/files/dnstop.8 2016-09-29 19:33:12 UTC (rev 25961)
+++ csw/mgar/pkg/dnstop/trunk/files/dnstop.8 2016-09-30 14:10:33 UTC (rev 25962)
@@ -1,347 +1,229 @@
-.\" Automatically generated by Pod::Man v1.37, Pod::Parser v1.32
+.\" $Id: dnstop.8,v 1.29 2014/09/12 22:01:56 wessels Exp $
+.\"
+.\" manpage written by jose at monkey.org
.\"
-.\" Standard preamble:
-.\" ========================================================================
-.de Sh \" Subsection heading
+.Dd 21 March, 2008
+.Dt DNSTOP 8
+.Os
+.Sh NAME
+.Nm dnstop
+.Nd displays various tables of DNS traffic on your network
+.Sh SYNOPSIS
+.Nm
+.Op Fl 46apsQR
+.Op Fl b Ar expression
+.Op Fl i Ar address
+.Op Fl f Ar filter
+.Op Fl r Ar interval
+.Op Ar device
+.Op Ar savefile
+.Sh DESCRIPTION
+.Nm
+is a small tool to listen on
+.Ar device
+or to parse the file
+.Ar savefile
+and collect and print statistics on the local network's DNS traffic. You
+must have read access to
+.Pa /dev/bpf\&* .
+.Sh COMMAND LINE OPTIONS
+.Pp
+The options are as follows:
+.Bl -tag -width Ds
+.It Fl 4
+count only messages with IPv4 addresses
+.It Fl 6
+count only messages with IPv6 addresses
+.It Fl Q
+count only DNS query messages
+.It Fl R
+count only DNS reply messages
+.It Fl a
+anonymize addresses
+.It Fl b Ar expression
+BPF filter expression
.br
-.if t .Sp
-.ne 5
-.PP
-\fB\\$1\fR
-.PP
-..
-.de Sp \" Vertical space (when we can't use .PP)
-.if t .sp .5v
-.if n .sp
-..
-.de Vb \" Begin verbatim text
-.ft CW
-.nf
-.ne \\$1
-..
-.de Ve \" End verbatim text
-.ft R
-.fi
-..
-.\" Set up some character translations and predefined strings. \*(-- will
-.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
-.\" double quote, and \*(R" will give a right double quote. | will give a
-.\" real vertical bar. \*(C+ will give a nicer C++. Capital omega is used to
-.\" do unbreakable dashes and therefore won't be available. \*(C` and \*(C'
-.\" expand to `' in nroff, nothing in troff, for use with C<>.
-.tr \(*W-|\(bv\*(Tr
-.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
-.ie n \{\
-. ds -- \(*W-
-. ds PI pi
-. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
-. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch
-. ds L" ""
-. ds R" ""
-. ds C` ""
-. ds C' ""
-'br\}
-.el\{\
-. ds -- \|\(em\|
-. ds PI \(*p
-. ds L" ``
-. ds R" ''
-'br\}
+(default: udp port 53)
+.It Fl i Ar address
+ignore select addresses
+.It Fl p
+Do not put the interface into promiscuous mode.
+.It Fl r
+Redraw interval (seconds).
+.It Fl l Ar level
+keep counts on names up to
+.Pa level
+domain name levels.
+.Pp
+For example, with -l 2 (the default),
+.Nm
+will keep two tables: one with top-level domain names, and another
+with second-level domain names. Increasing the
+.Pa level
+provides more details, but also requires more memory and CPU.
.\"
-.\" If the F register is turned on, we'll generate index entries on stderr for
-.\" titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index
-.\" entries marked with X<> in POD. Of course, you'll have to process the
-.\" output yourself in some meaningful fashion.
-.if \nF \{\
-. de IX
-. tm Index:\\$1\t\\n%\t"\\$2"
-..
-. nr % 0
-. rr F
-.\}
+.It Fl f
+input filter name
+.Pp
+The "unknown-tlds" filter
+includes only queries for TLDs that are
+bogus. Useful for identifying hosts/servers
+that leak queries for things like "localhost"
+or "workgroup."
+.Pp
+The "new-gtlds" filter includes only queries for the
+new gTLD program of 2013/2014. Useful for identifying
+hosts/servers that use names which may result in future
+collisions and problems when new gTLDs become active.
+.Pp
+The "A-for-A" filter
+includes only A queries for names that are
+already IP addresses. Certain Microsoft
+Windows DNS servers have a known bug that
+forward these queries.
+.Pp
+The "rfc1918-ptr" filter
+includes only PTR queries for addresses in RFC1918 space.
+These should never leak from inside an
+organization.
+.Pp
+The "refused" filter, when used with the
+.Fl R
+option, tells
+.Nm
+to count only replies with rcode REFUSED.
+.Pp
+The "qtype-any" filter tells
+.Nm
+to count only message of type ANY.
.\"
-.\" For nroff, turn off justification. Always turn off hyphenation; it makes
-.\" way too many mistakes in technical documents.
-.hy 0
-.if n .na
-.\"
-.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
-.\" Fear. Run. Save yourself. No user-serviceable parts.
-. \" fudge factors for nroff and troff
-.if n \{\
-. ds #H 0
-. ds #V .8m
-. ds #F .3m
-. ds #[ \f1
-. ds #] \fP
-.\}
-.if t \{\
-. ds #H ((1u-(\\\\n(.fu%2u))*.13m)
-. ds #V .6m
-. ds #F 0
-. ds #[ \&
-. ds #] \&
-.\}
-. \" simple accents for nroff and troff
-.if n \{\
-. ds ' \&
-. ds ` \&
-. ds ^ \&
-. ds , \&
-. ds ~ ~
-. ds /
-.\}
-.if t \{\
-. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
-. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
-. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
-. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
-. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
-. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
-.\}
-. \" troff and (daisy-wheel) nroff accents
-.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
-.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
-.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
-.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
-.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
-.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
-.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
-.ds ae a\h'-(\w'a'u*4/10)'e
-.ds Ae A\h'-(\w'A'u*4/10)'E
-. \" corrections for vroff
-.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
-.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
-. \" for low resolution devices (crt and lpr)
-.if \n(.H>23 .if \n(.V>19 \
-\{\
-. ds : e
-. ds 8 ss
-. ds o a
-. ds d- d\h'-1'\(ga
-. ds D- D\h'-1'\(hy
-. ds th \o'bp'
-. ds Th \o'LP'
-. ds ae ae
-. ds Ae AE
-.\}
-.rm #[ #] #H #V #F C
-.\" ========================================================================
-.\"
-.IX Title "DNSTOP 8"
-.TH DNSTOP 8 "2010-02-16" "perl v5.8.8" "User Contributed Perl Documentation"
-.SH "NAME"
-dnstop \- displays various tables of DNS traffic on your network.
-.SH "SYNOPSIS"
-.IX Header "SYNOPSIS"
-dnstop [\-46apsQR] [\-b expression] [\-i address] [\-f filter] [\-r interval] [device] [savefile]
-.SH "DESCRIPTION"
-.IX Header "DESCRIPTION"
-dnstop is a small tool to listen on device or to parse the file savefile and collect and print statistics on the local network's \s-1DNS\s0 traffic. You must have read access to /dev/bpf*.
-.SH "COMMAND LINE OPTIONS"
-.IX Header "COMMAND LINE OPTIONS"
-The options are as follows:
-.RE
-.IP "\fB\-4\fR"
-.IX Item "-4"
-Count only messages with IPv4 addresses.
-.RE
-.IP "\fB\-6\fR"
-.IX Item "-6"
-Count only messages with IPv6 addresses.
-.RE
-.IP "\fB\-a\fR"
-.IX Item "-a"
-Anonymize addresses.
-.RE
-.IP "\fB\-b expression\fR"
-.IX Item "-b expression"
-\&\s-1BPF\s0 filter expression (default: udp port 53).
-.RE
-.IP "\fB\-i address\fR"
-.IX Item "-i address"
-Ignore select addresses.
-.RE
-.IP "\fB\-p\fR"
-.IX Item "-p"
-Do not put the interface into promiscuous mode.
-.RE
-.IP "\fB\-r\fR"
-.IX Item "-r"
-Redraw interval (seconds).
-.RE
-.IP "\fB\-l level\fR"
-.IX Item "-l level"
-Keep counts on names up to level domain name levels.
-.PP
-For example, with \-l 2 (the default), dnstop will keep two tables: one with top-level domain names, and another with second-level domain names. Increasing the level provides more details, but also requires more memory and \s-1CPU\s0.
-.RE
-.IP "\fB\-f\fR"
-.IX Item "-f"
-Input filter name
-.PP
-The \*(L"unknown\-tlds\*(R" filter includes only queries for TLDs that are bogus. Useful for identifying hosts/servers that leak queries for things like \*(L"localhost\*(R" or \*(L"workgroup.\*(R"
-.PP
-The \*(L"A\-for\-A\*(R" filter includes only A queries for names that are already \s-1IP\s0 addresses. Certain Microsoft Windows \s-1DNS\s0 servers have a known bug that forward these queries.
-.PP
-The \*(L"rfc1918\-ptr\*(R" filter includes only \s-1PTR\s0 queries for addresses in \s-1RFC1918\s0 space. These should never leak from inside an organization.
-.RE
-.IP "\fB\-Q\fR"
-.IX Item "-Q"
-Count only \s-1DNS\s0 query messages.
-.RE
-.IP "\fB\-R\fR"
-.IX Item "-R"
-Count only \s-1DNS\s0 reply messages.
-.RE
-.IP "\fBsavefile\fR"
-.IX Item "savefile"
-A captured network trace in pcap format.
-.RE
-.IP "\fBdevice\fR"
-.IX Item "device"
-Ethernet device (ie fxp0).
-.SH "RUN TIME OPTIONS"
-.IX Header "RUN TIME OPTIONS"
+.It Fl n Ar name
+Only count messages within the domain
+.Ar name
+.It Fl P
+Print "progress" messages on stderr when in non-interactive mode.
+.It Fl B Ar buckets
+Use
+.Pa buckets
+hash table buckets.
+.It Fl X
+Do not tabulate the sources + query name counters. This can significantly
+reduce memory usage on busy servers and large savefiles.
+.It Ar savefile
+a captured network trace in
+.Cm pcap
+format
+.It Ar device
+ethernet device (ie fxp0)
+.El
+.Sh RUN TIME OPTIONS
+.Pp
While running, the following options are available to alter the display:
-.RE
-.IP "\fBs\fR"
-.IX Item "s"
-Display the source address table.
-.RE
-.IP "\fBd\fR"
-.IX Item "d"
-Display the destination address table.
-.RE
-.IP "\fBt\fR"
-.IX Item "t"
-Display the breakdown of query types seen.
-.RE
-.IP "\fBo\fR"
-.IX Item "o"
-Display the breakdown of opcodes seen.
-.RE
-.IP "\fB1\fR"
-.IX Item "1"
-Show 1st level query names.
-.RE
-.IP "\fB2\fR"
-.IX Item "2"
-Show 2nd level query names.
-.RE
-.IP "\fB3\fR"
-.IX Item "3"
-Show 3rd level query names.
-.RE
-.IP "\fB4\fR"
-.IX Item "4"
-Show 4th level query names.
-.RE
-.IP "\fB5\fR"
-.IX Item "5"
-Show 5th level query names.
-.RE
-.IP "\fB6\fR"
-.IX Item "6"
-Show 6th level query names.
-.RE
-.IP "\fB7\fR"
-.IX Item "7"
-Show 7th level query names.
-.RE
-.IP "\fB8\fR"
-.IX Item "8"
-Show 8th level query names.
-.RE
-.IP "\fB9\fR"
-.IX Item "9"
-Show 9th level query names.
-.RE
-.IP "\fB!\fR"
-.IX Item "!"
-Show sources + 1st level query names.
-.RE
-.IP "\fB@\fR"
-.IX Item "@"
-Show sources + 2nd level query names.
-.RE
-.IP "\fB#\fR"
-.IX Item "#"
-Show sources + 3rd level query names.
-.RE
-.IP "\fB$\fR"
-.IX Item "$"
-Show sources + 4th level query names.
-.RE
-.IP "\fB%\fR"
-.IX Item "%"
-Show sources + 5th level query names.
-.RE
-.IP "\fB^\fR"
-.IX Item "^"
-Show sources + 6th level query names.
-.RE
-.IP "\fB&\fR"
-.IX Item "&"
-Show sources + 7th level query names.
-.RE
-.IP "\fB*\fR"
-.IX Item "*"
-Show sources + 8th level query names.
-.RE
-.IP "\fB(\fR"
-.IX Item "("
-Show sources + 9th level query names.
-.RE
-.IP "\fB^R\fR"
-.IX Item "^R"
-Reset the counters.
-.RE
-.IP "\fB^X\fR"
-.IX Item "^X"
-Exit the program.
-.RE
-.IP "\fBspace\fR"
-.IX Item "space"
-Redraw.
-.RE
-.IP "\fB?\fR"
-.IX Item "?"
-Help.
-.SH "NON-INTERACTIVE MODE"
-.IX Header "NON-INTERACTIVE MODE"
-If stdout is not a tty, dnstop runs in non-interactive mode. In this case, you must supply a savefile for reading, instead of capturing live packets. After reading the entire savefile, dnstop prints the top 50 entries for each table.
-.SH "AUTHORS"
-.IX Header "AUTHORS"
-.RE
-.IP "\fBDuane Wessels (wessels at measurement\-factory.com)\fR"
-.IX Item "Duane Wessels (wessels at measurement-factory.com)"
-.RE
-.PD 0
-.IP "\fBMark Foster (mark at foster.cc)\fR"
-.IX Item "Mark Foster (mark at foster.cc)"
-.RE
-.IP "\fBJose Nazario (jose at monkey.org)\fR"
-.IX Item "Jose Nazario (jose at monkey.org)"
-.RE
-.IP "\fBSam Norris <@ChangeIP.com>\fR"
-.IX Item "Sam Norris <@ChangeIP.com>"
-.RE
-.IP "\fBMax Horn <@quendi.de>\fR"
-.IX Item "Max Horn <@quendi.de>"
-.RE
-.IP "\fBJohn Morrissey <jwm at horde.net>\fR"
-.IX Item "John Morrissey <jwm at horde.net>"
-.RE
-.IP "\fBFlorian Forster <octo at verplant.org>\fR"
-.IX Item "Florian Forster <octo at verplant.org>"
-.RE
-.IP "\fBDave Plonka <plonka at cs.wisc.edu>\fR"
-.IX Item "Dave Plonka <plonka at cs.wisc.edu>"
-.RE
-.IP "\fBhttp://dnstop.measurement\-factory.com/\fR"
-.IX Item "http://dnstop.measurement-factory.com/"
-.PD
-.SH "BUGS"
-.IX Header "BUGS"
-Does not support \s-1TCP\s0 at this time.
+.Bl -tag -width Ds
+.It s
+display the source address table
+.It d
+display the destination address table
+.It t
+display the breakdown of query types seen
+.It r
+display the breakdown of response codes seen
+.It o
+display the breakdown of opcodes seen
+.It 1
+show 1st level query names
+.It 2
+show 2nd level query names
+.It 3
+show 3rd level query names
+.It 4
+show 4th level query names
+.It 5
+show 5th level query names
+.It 6
+show 6th level query names
+.It 7
+show 7th level query names
+.It 8
+show 8th level query names
+.It 9
+show 9th level query names
+.It !
+show sources + 1st level query names
+.It @
+show sources + 2nd level query names
+.It #
+show sources + 3rd level query names
+.It $
+show sources + 4th level query names
+.It %
+show sources + 5th level query names
+.It ^
+show sources + 6th level query names
+.It &
+show sources + 7th level query names
+.It *
+show sources + 8th level query names
+.It (
+show sources + 9th level query names
+.It ^R
+reset the counters
+.It ^X
+exit the program
+.It space
+redraw
+.It ?
+help
+.El
+.Pp
+.Sh NON-INTERACTIVE MODE
+If stdout is not a tty,
+.Nm
+runs in non-interactive mode. In this case, you must
+supply a savefile for reading, instead of capturing
+live packets. After reading the entire savefile,
+.Nm
+prints the top 50 entries for each table.
+.Pp
+.Sh HOW MESSAGES ARE COUNTED
+By default
+.Nm
+examines only query messages and ignores replies. In this case the response code
+table is meaningless and will likely show 100% "Noerror."
+.Pp
+If you supply (only) the
+.Fl R
+command line option,
+.Nm
+examines replies and ignores queries. This allows you to see meaningful
+response code values, as well as all the other tables. In this case
+all the query attributes (such as type and name) are taken from the
+Question section of the reply.
+.Pp
+Note, however, that it is common for a stream of DNS messages to contain
+more queries than replies.
+This could happen, for example,
+if the server is too busy to respond to every single query, or if
+the server is designed to ignore malformed query messages. Therefore,
+you might want to examine both queries and replies by giving both
+.Fl R
+and
+.Fl Q
+command line options. In this case, only the response code counts
+are taken from the replies and all other attributes
+are taken from the queries.
+.Pp
+.Sh AUTHORS
+.Bl -tag -width xx -compact
+.It Pa Duane Wessels (wessels at measurement-factory.com)
+.It Pa Mark Foster (mark at foster.cc)
+.It Pa Jose Nazario (jose at monkey.org)
+.It Pa Sam Norris <@ChangeIP.com>
+.It Pa Max Horn <@quendi.de>
+.It Pa John Morrissey <jwm at horde.net>
+.It Pa Florian Forster <octo at verplant.org>
+.It Pa Dave Plonka <plonka at cs.wisc.edu>
+.It Pa http://dnstop.measurement-factory.com/
+.El
+.Sh BUGS
+Does not support TCP at this time.
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
More information about the devel
mailing list