1
v2.6: End of the line for darkstat 2
2
(Jean-Edouard Babin) DLT_PPP_SERIAL linktype
3
Print warnings from pcap_open_live()
4
Considerable source code clean-up
5
Updated to gettext 0.11.5, autoconf 2.57, automake 1.7
6
Using ACX_PTHREAD macro in configure script
7
(Daniel Lublin) WWW: Added title="..." to graph bars
8
po: updated nl, added sk, added sr
10
v2.5: (Stefan Haenssgen) DLT_PPP linktype
11
(Maxim Golov) DLT_NULL linktype
13
Added clean in src/Makefile.am to remove darkstat.db and friends
14
Changed graph initial positions (fixed 2.4 problem)
15
Changed how rotation happens (fixed 2.4 over-rotation problem)
16
Days now rotate at midnight, regardless of starting time
17
Graphs now rotate even if no packets are coming in
18
Broke DB format (yay!)
20
Fixed spylog timestamping again
22
WWW: (graph) Fixed bar label numbering
23
WWW: (graph) Added column number to alt="" text
25
v2.4: (AJR) Save and load starting time in database
26
graph rotation is now correct between runs
27
(AJR) WWW: Added bar labels on html_graph()s
29
Fixed spylog timestamping (it was off by a month)
31
v2.3: Fixed gettext() stuff under Solaris 8 (thanks Fabrice)
32
Fixed -lpthreads under Solaris 8 (thanks Fabrice)
33
Stripped out stupid pthreads-config stuff
34
Fixed binding to INADDR_ANY by default
35
WWW: Added exact in/out values in html_graph
36
WWW: Fixed graph crazyness (no more over-tall graphs)
37
Fixed DLT_RAW linktype (thanks Ark)
39
(Oleg) WWW: Added /info/
40
(Oleg) WWW: Improved redirection
43
v2.2: Reordered the autoconf tests
44
Added check and workaround for DLT_LINUX_SLL
45
(used to trip up on older libpcaps)
47
Split accounting and spylog into separate threads
48
Cleaned up threads and shutting down
49
(Oleg) Added -P for non-promiscuous sniffing
50
(Oleg) Added -e to pass bpf filter expression to acct_pcap
52
v2.1: po: renamed Chinese translations to zh_CN, zh_TW
53
po: added FR, pt_BR, SV
54
po: added /* TRANSLATORS: */ hints in www.c
55
Stats change - protocol accounting is done for in, out and "other"
56
(this breaks DB format. again.)
57
Better detection of what the local machine can and can't do with
58
64-bit numbers, more optimisations to bignum
59
--spy now takes an interface name so you can capture HTTP
60
requests on the LOCAL interface (and get the client's IP)
61
--spy filtering done through libpcap (probably more efficient)
62
Improved reporting of libpcap errors
63
All ftp-data connections are treated as one port locally (jib)
64
Match service names to ports (jib)
66
v2.0: Rewrote bignum code (simpler and faster now)
67
Stripped useless checks from configure.ac
68
Fixed bind_textdomain_codeset problem with glibc 2.1
69
Improved HAVE_QUAD detection
70
Split host_db into 256 class A tables for faster searching
71
WWW: Added unique hosts count to frontpage
72
Stats change - protocol accounting is done even if packets aren't
75
Rewrote saving/loading code, new binary DB format
76
(breaks compatibility with old DB format)
77
Added webspy functionality using --spy parameter
78
(sniffs out HTTP requests and logs them)
80
v1.31: (jumped 28 point releases in a single bound! -- it won't happen again)
81
Should work on PPP links now (thanks to Brian May)
82
Should compile on Solaris out-of-the-box
83
(thanks to trnepal@papuasia for a shell)
85
v1.3: Internationalization!
86
WWW: Can be bound to a specified local IP using the -b parameter
87
(thanks to Noam Sturmwind)
88
WWW: Fixed rare-ish segfault in host sorting
90
v1.21: Fixed broken 64-bit math on platforms that can't do native long longs
91
(you know, like FreeBSD on i386)
94
WWW: Sort hosts by IP or ports by number
95
WWW: Added refresh on every page
96
Fixed usage notice somewhat
98
v1.1: Plays nice with an FDDI
99
All protocols are accounted for, only those which have seen
100
data get in the web report though.
101
Quiet mode is now default, packet dumps with -v (verbose)
103
v1.0: Fixed memory overflow in content.c when generating a very large report
104
Optimized compile - default (disable with ./configure --disable-opt)
105
Optimisation is soft because the FreeBSD GCC can generate bad code
106
Added check for pcap/pcap.h (some RH distros like to misplace pcap.h)
107
darkstat is installed into $PREFIX/sbin/
108
Fixed memory leaks in WWW header generation and port sorting
110
v1.0p1: Compiles and runs under FreeBSD
111
Better way of aborting execution and synchronising threads
112
No more graph thread - rotation happens based on libpcap timestamps
113
--> Far more accurate
114
--> No more graph gaps due to time skew
115
--> No gaps on platforms like FreeBSD where captured
116
packets come through in bursts.
117
Simpler and much more efficient way of accounting for protocols
118
httpd is now single threaded - no more nested pthreads
119
Using autoconf and automake for easier building
120
Made graphs stacked and changed color scheme
121
Made DNS control a little neater
122
Minimum time requirement between DB saves to limit
123
save-thrashing during high traffic periods.
124
More correct headers in HTTPD for cacheability of GIFs
126
v0.9: Native 64-bit arithmetic if the platform supports it
127
--> must define HAVE_QUAD in version.h
128
--> leads to much faster report generation
129
(no constant malloc/free abuse)
130
Correct accounting of NAT-mangled packets with Linux 2.4.x kernels
131
WWW: got rid of dates in HTTP headers (unnecessary)
133
v0.8: Fixed report sorting bug that only showed up after more than
135
Content optimisations
137
WWW: tweaked no-cache HTTP headers
138
DNS resolution can be toggled through the web interface
139
DNS "cycling" for one-shot reverse-resolution sprees
140
Fixed initialisation bug that would create a redundant
141
localhost entry on restart
142
Fixed segfault that would occur when run without root privileges
144
v0.71: WWW: Numbers show up right-aligned - Willy Frissen says it looks better
145
DNS resolution can be disabled with a commandline argument
146
(Jason Whiting's idea)
148
v0.7: Cleaner starting/stopping of threads
149
darkstat will freakout() and dump db if it loses a child thread
151
Raw IP support for devices that do it
152
thanks to Sean MacLennan and his DSL modem
153
Start capturing AFTER threads are up
154
WWW: better html_graph() construction
155
"Last 24 hours" no longer too thin
156
WWW: cosmetic changes (CSS, linkbox)
157
WWW: <head><title> titles </title></head>
158
WWW: Port reports can be sorted and limited
159
Lots of under-the-hood error checking (buffer overflows and such)
160
WWW: More robust handling of high traffic
161
--> send() will no longer raise SIGPIPE
162
--> accept() will no longer kill all of darkstat on lost connection
163
--> incomplete request no longer causes a segfault
164
WWW: Faster, neater generation of reports
166
v0.6: 'make opt' for an optimized compile with less debugging bloat
168
'make clean' now deletes old database files
169
Graph rotation doesn't skew any more (it's more accurate)
171
WWW: Cleaned up header generation
172
WWW: Doesn't generate line feeds in HTML -> smaller HTML output
173
WWW: Added a navigation box to every page
174
WWW: Added link to darkstat homepage
175
WWW: Added "Running since"
176
WWW: Prettied up generated reports (especially hosts)
177
WWW: Child processes accept and close connections
178
--> cleaner shutdown, hopefully no more stale connections
179
stuck in "CLOSED" state
180
WWW: REUSEADDR for restarting when there are TIME_WAIT
181
state sockets still around
182
WWW: Using pthreads instead of fork(), hopefully no more
183
dead processes hanging around
184
WWW: Better handling of requests, you can now do telnet GETs
185
Commandline argument parsing
186
--> specify a custom web interface port
187
--> different way of specifying stats interface
188
--> specify a directory for the darkstat database to reside in
189
WWW: Host reports are sorted and can be limited
190
(top 25 instead of whole db)
192
v0.5: Apparently it's very easy to get darkstat to compile under Solaris 8
193
--> added hints to Makefile and main.c
194
--> thanks go to Fabrice Gonton for pointing this out
195
add_64bit now only needs a dword as the second argument (simpler)
196
tagged a heap of functions as inline
197
made an attempt to fix up header files - minimal #inclusion
198
commandline -q now silences DNS and WWW threads and also packet totals
199
fixed blank.gif in WWW (it loads properly now)
200
overhaul of graph. added minute, hour, and day graphs.
201
--> graphs are now kept as i64s instead of dwords (more capacity)
202
--> graphs are loaded and saved like everything else
203
load_db() is looking very ugly
204
prettied up the WWW source a lot, it's looking much more legible now
205
Added daily traffic logging for long-term stats
206
Added commas in reported numbers for more legibility
208
v0.4: fixed up number types
209
fixed problem with printing numbers > 2^31
210
made i64 struct for 64-bit numbers (as a pair of 32-bit numbers)
211
DNS resolver now loops over the host_db even if hasn't
212
seen any new entries to ensure we resolve as much as possible
213
optimised host_db searching to speed up stat gathering
214
added uptime counter (how long we've been keeping stats)
215
added network [ab]use graph
216
--> last 60 seconds only, more graphs coming later
218
v0.3: www interface slowly becoming less messed up
219
now returns content-length and also generates and sends
221
--> less locking/unlocking mutexes, less network overhead
222
No more UDP port stats (old datafiles are "incompatible")
223
(i.e. they will be truncated)
224
TCP ports are only added when the local host gets a connection
225
(hooray for useful stats)
226
TCP decoding: fixed flags, added seq and ack
227
Fixed loopback sniffing (I hope)
229
v0.2: darkstat now divines the local address of an interface itself
230
Interface is passed on the commandline
231
Changed the www no_proxy header
232
Implemented tcpdump-esque console output while sniffing
233
-q commandline argument to turn off console output (less CPU usage)
234
Better handling of non-IP packets in output
236
v0.1: Initial revision
237
Doesn't compile without source modifications
238
Lots of important settings hard-coded in well-hidden places all over