Sophie

Sophie

distrib > Mandriva > 2009.1 > x86_64 > media > contrib-release-src > by-pkgid > bc77003c7597b6f6c91776ea3dc60f58 > files > 3

apachetop-0.12.6-4mdv2009.1.src.rpm

diff -Naur apachetop-0.12.6/src/apachetop.h apachetop-0.12.6-logfile/src/apachetop.h
--- apachetop-0.12.6/src/apachetop.h	2005-10-15 18:10:01.000000000 +0200
+++ apachetop-0.12.6-logfile/src/apachetop.h	2009-02-28 10:55:45.000000000 +0100
@@ -248,7 +248,7 @@
 
 /* this can be overridden from config.h via ./configure --with-logfile .. */
 #ifndef DEFAULT_LOGFILE
-# define DEFAULT_LOGFILE "/var/httpd/apache_log"
+# define DEFAULT_LOGFILE "/var/log/httpd/access_log"
 #endif
 #define DEFAULT_CIRCLE_SIZE 30
 #define DEFAULT_CIRCLE_MODE TIMED_CIRCLE
diff -Naur apachetop-0.12.6/src/apachetop.h.orig apachetop-0.12.6-logfile/src/apachetop.h.orig
--- apachetop-0.12.6/src/apachetop.h.orig	1970-01-01 01:00:00.000000000 +0100
+++ apachetop-0.12.6-logfile/src/apachetop.h.orig	2009-02-28 10:55:21.000000000 +0100
@@ -0,0 +1,281 @@
+#ifndef _APACHETOP_H_
+#define _APACHETOP_H_
+
+#if HAVE_CONFIG_H
+# include "config.h"
+#endif
+
+#include <stdio.h>
+#include <errno.h>
+#include <ctype.h>
+#include <string.h>
+
+#if HAVE_STRINGS_H
+# include <strings.h>
+#endif
+
+#include <fcntl.h>
+
+#include <signal.h>
+
+#include <stdlib.h>
+#include <stdarg.h>
+#include <unistd.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+
+#if TIME_WITH_SYS_TIME
+# include <sys/time.h>
+# include <time.h>
+#else
+# if HAVE_SYS_TIME_H
+#  include <sys/time.h>
+# else
+#  include <time.h>
+# endif
+#endif
+
+#if HAVE_SYS_SOCKET_H
+# include <sys/socket.h>
+#endif
+
+#if HAVE_NETINET_IN_H
+# include <netinet/in.h>
+#endif
+
+#if HAVE_ARPA_INET_H
+# include <arpa/inet.h>
+#endif
+
+#if HAVE_NETDB_H
+# include <netdb.h>
+#endif
+
+#if HAVE_PCRE_H
+# include <pcre.h>
+# include "pcre_cpp_wrapper.h"
+#endif
+
+#include <curses.h>
+
+#include <readline/readline.h>
+#include <readline/history.h>
+
+/* Use kqueue in preference to anything else.
+ *  If we don't have that, try FAM
+ *   If we don't have FAM, fall back to stat()
+*/
+#define USING_KQUEUE 1
+#define USING_FAM    2
+#define USING_STAT   3
+#if HAVE_KQUEUE
+# include <sys/event.h>
+# define POLLING_METHOD USING_KQUEUE
+#elif HAVE_FAM_H
+# include <fam.h>
+# define POLLING_METHOD USING_FAM
+#endif
+
+/* stat() fallback */
+#ifndef POLLING_METHOD
+# define POLLING_METHOD USING_STAT
+#endif
+
+#if HAVE_ADNS_H
+# include <adns.h>
+#endif
+
+
+#define getMIN(a,b) (a < b ? a : b)
+#define getMAX(a,b) (a > b ? a : b)
+
+#ifndef MAXPATHLEN
+# define MAXPATHLEN 128
+#endif
+
+/* upon startup, each input file is put into an element of this array,
+ * starting at 0. The struct under this maps the current fd into this array
+ * so we can find it without iterating.
+*/
+struct input {
+	char *filename;
+	int fd;
+	ino_t inode;
+	short type; /* types defined in log.h */
+	time_t lastreq;
+
+	/* if open == false, then ApacheTop will periodically try to re-open
+	 * this input file. */
+	bool open; /* is the file open or not? */
+
+#if (POLLING_METHOD == USING_FAM)
+	FAMRequest famreq;
+#endif
+};
+
+#include "filters.h"
+
+struct config {
+	#define SORT_REQCOUNT 1
+	#define SORT_REQPERSEC 2
+	#define SORT_BYTECOUNT 3
+	#define SORT_BYTESPERSEC 4
+	#define SORT_2XX 12 /* see display.cc around line 911 (shellsort)  */
+	#define SORT_3XX 13 /* for the consequences of changing these.     */
+	#define SORT_4XX 14 /* Logic there relies on them being            */
+	#define SORT_5XX 15 /* (retcode/100)+SORTTYPE_OFFSET_HACK          */
+	#define SORTTYPE_OFFSET_HACK 10
+	short sort, retcodes_sort;
+	short refresh_delay;
+
+	short do_resolving;
+
+	short selected_item_screen; /* screen position our marker is at */
+	unsigned int selected_item_pos; /* which url/ip/refpos it relates to */
+	short selected_item_mode; /* is it url/ip/ref pos? */
+	unsigned int selected_item_hash;
+
+	short current_display_size; /* how many lines we're displaying */
+
+	short input_count;
+
+	#define TIMED_CIRCLE 'T'
+	#define HITS_CIRCLE  'H'
+	int circle_mode;
+	int circle_size;
+
+	/* these defines are used in cf.filter too */
+	#define DISPLAY_URLS   1
+	#define DISPLAY_HOSTS  2
+	#define DISPLAY_REFS   3
+	#define DISPLAY_FILES  4
+	#define DISPLAY_DETAIL 9
+	short display_mode;
+
+	#define NUMBERS_HITS_BYTES  1
+	#define NUMBERS_RETCODES    2
+	short numbers_mode;
+
+	/* when in DISPLAY_DETAIL mode, display_mode is copied in here */
+	short display_mode_detail;
+	/* what would we like to display in DISPLAY_DETAIL modes? */
+	bool detail_display_hosts, detail_display_refs, detail_display_urls;
+
+	bool display_paused;
+	bool do_immed_display; /* signals a screen update is req'd */
+
+	/* filters */
+	Filter *urlfilter, *hostfilter, *reffilter;
+
+	/* url munging */
+	bool keep_querystring;
+	bool lowercase_urls;
+	unsigned short keep_segments;
+	bool preserve_ref_protocol;
+
+	bool debug;
+
+	bool exit; /* true when we want to finish */
+
+	/* keypress submenu */
+	#define SUBMENU_NONE          0
+
+	#define SUBMENU_SORT_HB       1
+	#define SUBMENU_SORT_RC       2
+
+	#define SUBMENU_DISP          4
+
+	#define SUBMENU_FILT          5
+	#define SUBMENU_FILT_ADD      6
+	#define SUBMENU_FILT_SHOW     7
+
+	#define SUBMENU_HELP          9
+	unsigned short in_submenu;
+	bool in_submenu_stay; /* stay in submenu till keypress? */
+	time_t in_submenu_time;
+
+};
+
+struct hitinfo {
+	double bytecount;
+	double reqcount;
+	time_t first, last;
+
+	/* for stats worked out in display.cc */
+	float rps, bps;
+};
+
+struct gstat {
+	time_t start; /* when did we start */
+
+	/* space for 1xx-5xx return codes */
+	struct hitinfo r_codes[6];
+
+	/* space for counting global hits and bytes per sec */
+	struct hitinfo alltime;
+};
+
+//#include "opt.h"
+#include "ohtbl.h"
+
+#if HAVE_ADNS_H
+# include "resolver.h"
+#endif
+
+#include "map.h"
+#include "circle.h"
+#include "hits_circle.h"
+#include "timed_circle.h"
+#include "display.h"
+#include "log.h"
+#include "queue.h"
+
+
+#define JAN 281
+#define FEB 269
+#define MAR 288
+#define APR 291
+#define MAY 295
+#define JUN 301
+#define JUL 299
+#define AUG 285
+#define SEP 296
+#define OCT 294
+#define NOV 307
+#define DEC 268
+
+#define DEBUG_OUTPUT "/tmp/atop.debug"
+
+/* this can be overridden from config.h via ./configure --with-logfile .. */
+#ifndef DEFAULT_LOGFILE
+# define DEFAULT_LOGFILE "/var/httpd/apache_log"
+#endif
+#define DEFAULT_CIRCLE_SIZE 30
+#define DEFAULT_CIRCLE_MODE TIMED_CIRCLE
+#define DEFAULT_SORT SORT_REQCOUNT
+#define DEFAULT_RETCODES_SORT SORT_2XX
+#define DEFAULT_REFRESH_DELAY 5
+#define DEFAULT_DISPLAY_MODE DISPLAY_URLS
+#define DEFAULT_NUMBERS_MODE NUMBERS_HITS_BYTES
+
+/* if the layout of the display changes, these need updating */
+#define COLS_RESERVED 25
+#define LINES_RESERVED 7
+
+#define MAX_INPUT_FILES 50
+
+int recordstats(struct logbits l);
+
+int read_key(int ch);
+
+#define SEEK_TO_END true
+#define NO_SEEK_TO_END false
+int new_file(char *filename, bool do_seek_to_end);
+
+void usage(void);
+int dprintf(const char *fmt, ...);
+
+static void catchsig(int s);
+static void catchwinch(int s);
+
+#endif