debian/0000775000000000000000000000000013115511407007166 5ustar debian/nagios3-core.dirs0000664000000000000000000000003111614535770012347 0ustar usr/sbin usr/lib/nagios3 debian/nagios3-doc.doc-base0000664000000000000000000000040411614535770012704 0ustar Document: nagios3 Title: Nagios Documentation Author: Ethan Galstad Abstract: Nagios user and administrator's documentation Section: Network/Monitoring Format: HTML Index: /usr/share/nagios3/htdocs/docs/index.html Files: /usr/share/nagios3/htdocs/docs/*.html debian/TODO0000664000000000000000000000044111614535770007670 0ustar what isn't there todo? :) - double check init script - fill in README.Debian - would be nice to manage apache2.conf via ucf, and make nagios 1.x url support in the file a debconf option. - good working default config, at least monitoring the freebies (disk, swap, etc) on localhost. debian/nagios3.links0000664000000000000000000000006311614535770011605 0ustar usr/share/doc/nagios3-common usr/share/doc/nagios3 debian/nagios3-common.postinst0000664000000000000000000000333113115522714013627 0ustar #!/bin/bash set -e # some shorthands for sanity en="/etc/nagios3" enc="/etc/nagios3/conf.d" usn="/usr/share/nagios3" . /usr/share/debconf/confmodule if [ -n "$NAG3DEBUG" ]; then echo "now debugging $0 $@" set -x fi setperm() { local user="$1" local group="$2" local mode="$3" local file="$4" shift 4 # only do something when no setting exists if ! dpkg-statoverride --list "$file" >/dev/null 2>&1; then if [ -e "$file" ]; then chown "$user":"$group" "$file" chmod "$mode" "$file" fi fi } case "$1" in configure) if ! getent passwd nagios > /dev/null ; then echo 'Adding system-user for nagios' 1>&2 adduser --system --group --home /var/lib/nagios \ --disabled-login --force-badname nagios > /dev/null fi # explicitly set permissions on some files that are dependent # on the uid/gid of the nagios user, which is dynamically created. setperm root nagios 0640 $en/resource.cfg setperm nagios adm 2751 /var/log/nagios3 setperm nagios adm 2751 /var/log/nagios3/archives setperm nagios nagios 0750 /var/lib/nagios3 setperm nagios nagios 0750 /var/lib/nagios3/spool setperm nagios nagios 0750 /var/lib/nagios3/spool/checkresults setperm nagios www-data 02750 /var/cache/nagios3 setperm nagios www-data 0700 /var/lib/nagios3/rw # Fix permissions due to security update regression if dpkg --compare-versions "$2" lt "3.5.1-1ubuntu1.3"; then setperm nagios adm 0644 /var/log/nagios3/nagios.log fi db_stop ;; abort-upgrade|abort-remove|abort-deconfigure) ;; *) echo "postinst called with unknown argument \$1'" >&2 exit 1 ;; esac #DEBHELPER# debian/control0000664000000000000000000002067612263534430010610 0ustar Source: nagios3 Section: net Priority: optional Maintainer: Ubuntu Developers XSBC-Original-Maintainer: Debian Nagios Maintainer Group Uploaders: sean finney , Alexander Wirt , Jan Wagner Homepage: http://www.nagios.org/ Vcs-Browser: http://git.debian.org/?p=pkg-nagios/pkg-nagios3.git Vcs-Git: git://git.debian.org/pkg-nagios/pkg-nagios3.git Standards-Version: 3.9.5 Build-Depends: autotools-dev, debhelper (>= 7), dpkg-dev (>= 1.13.19), hardening-wrapper, libgd2-noxpm-dev (>= 2.0.1) | libgd2-xpm-dev (>= 2.0.1), libperl-dev, libpng-dev, po-debconf XS-Testsuite: autopkgtest Package: nagios3-common Architecture: all Depends: adduser, bsd-mailx | mailx, coreutils (>= 4.5.3), lsb-base (>= 3.0-6), nagios-plugins-basic, ucf (>= 0.28), libjs-jquery, ${misc:Depends}, ${perl:Depends} Recommends: nagios-plugins Description: support files for nagios3 Nagios is a monitoring and management system for hosts, services and networks. nagios3-common contains the common files for the nagios3 package. . Nagios' features include: . * Monitoring of network services (via TCP port, SMTP, POP3, HTTP, NNTP, PING, etc.) * Plugin interface to allow for user-developed service checks * Contact notifications when problems occur and get resolved (via email, pager, or user-defined method) * Ability to define event handlers to be run during service or host events (for proactive problem resolution) * Web output (current status, notifications, problem history, log file, etc.) . Nagios is designed to be easy to understand and modify to fit your own needs. . This package is the new version 3.x series of nagios, which replaced the 2.x versions. . Nagios is a replacement of the Netsaint project. It accepts and uses the previous Netsaint modules transparently. . Upstream URL: http://www.nagios.org/ Package: nagios3-cgi Architecture: any Replaces: nagios3 (<< 3.2.0), nagios3-common (<< 3.2.0), nagios3-doc (<< 3.2.0) Breaks: nagios3 (<< 3.2.0), nagios3-common (<< 3.2.0), nagios3-doc (<< 3.2.0) Depends: adduser, apache2-utils, coreutils (>= 4.5.3), libapache2-mod-php5 | php5 | php5-cgi, nagios3-common (= ${source:Version}), ucf (>= 0.28), ${misc:Depends}, ${perl:Depends}, ${shlibs:Depends} Recommends: apache2 | httpd, nagios-images (>> 0.1) Description: cgi files for nagios3 Nagios is a monitoring and management system for hosts, services and networks. nagios3-common contains the common files for the nagios3 package. . Nagios' features include: . * Monitoring of network services (via TCP port, SMTP, POP3, HTTP, NNTP, PING, etc.) * Plugin interface to allow for user-developed service checks * Contact notifications when problems occur and get resolved (via email, pager, or user-defined method) * Ability to define event handlers to be run during service or host events (for proactive problem resolution) * Web output (current status, notifications, problem history, log file, etc.) . Nagios is designed to be easy to understand and modify to fit your own needs. . This package is the new version 3.x series of nagios, which replaced the 2.x versions. . Nagios is a replacement of the Netsaint project. It accepts and uses the previous Netsaint modules transparently. . Upstream URL: http://www.nagios.org/ Package: nagios3 Architecture: any Depends: nagios3-cgi (= ${binary:Version}), nagios3-core (= ${binary:Version}), ${misc:Depends} Suggests: nagios-nrpe-plugin Description: host/service/network monitoring and management system Nagios is a monitoring and management system for hosts, services and networks. . Nagios' features include: . * Monitoring of network services (via TCP port, SMTP, POP3, HTTP, NNTP, PING, etc.) * Plugin interface to allow for user-developed service checks * Contact notifications when problems occur and get resolved (via email, pager, or user-defined method) * Ability to define event handlers to be run during service or host events (for proactive problem resolution) * Web output (current status, notifications, problem history, log file, etc.) . Nagios was written in C and is designed to be easy to understand and modify to fit your own needs. . This is a metapackage which depends on the nagios core and the webfrontend . This package is the new version 3.x series of nagios, which replaced the 2.x versions. . Nagios is a replacement of the Netsaint project. It accepts and uses the previous Netsaint modules transparently. . Upstream URL: http://www.nagios.org/ Package: nagios3-core Architecture: any Depends: nagios3-common (= ${source:Version}), ${misc:Depends}, ${perl:Depends}, ${shlibs:Depends} Suggests: nagios-nrpe-plugin Replaces: nagios3 Description: host/service/network monitoring and management system core files Nagios is a monitoring and management system for hosts, services and networks. . Nagios' features include: . * Monitoring of network services (via TCP port, SMTP, POP3, HTTP, NNTP, PING, etc.) * Plugin interface to allow for user-developed service checks * Contact notifications when problems occur and get resolved (via email, pager, or user-defined method) * Ability to define event handlers to be run during service or host events (for proactive problem resolution) * Web output (current status, notifications, problem history, log file, etc.) . This package included the nagios core without the webfrontend . Nagios was written in C and is designed to be easy to understand and modify to fit your own needs. . This package is the new version 3.x series of nagios, which replaced the 2.x versions. . Nagios is a replacement of the Netsaint project. It accepts and uses the previous Netsaint modules transparently. . Upstream URL: http://www.nagios.org/ Package: nagios3-doc Section: doc Architecture: all Depends: ${misc:Depends}, ${perl:Depends}, ${shlibs:Depends} Description: documentation for nagios3 Nagios is a monitoring and management system for hosts, services and networks. . Nagios' features include: . * Monitoring of network services (via TCP port, SMTP, POP3, HTTP, NNTP, PING, etc.) * Plugin interface to allow for user-developed service checks * Contact notifications when problems occur and get resolved (via email, pager, or user-defined method) * Ability to define event handlers to be run during service or host events (for proactive problem resolution) * Web output (current status, notifications, problem history, log file, etc.) . Nagios was written in C and is designed to be easy to understand and modify to fit your own needs. . This package is the new version 3.x series of nagios, which replaced the 2.x versions. . Nagios is a replacement of the Netsaint project. It accepts and uses the previous Netsaint modules transparently. . Upstream URL: http://www.nagios.org/ Package: nagios3-dbg Section: debug Priority: extra Architecture: any Depends: nagios3-core (= ${binary:Version}), ${misc:Depends}, ${perl:Depends}, ${shlibs:Depends} Conflicts: icinga-dbg (<= 1.0.1-2) Description: debugging symbols and debug stuff for nagios3 Nagios is a monitoring and management system for hosts, services and networks. . Nagios' features include: . * Monitoring of network services (via TCP port, SMTP, POP3, HTTP, NNTP, PING, etc.) * Plugin interface to allow for user-developed service checks * Contact notifications when problems occur and get resolved (via email, pager, or user-defined method) * Ability to define event handlers to be run during service or host events (for proactive problem resolution) * Web output (current status, notifications, problem history, log file, etc.) . Nagios was written in C and is designed to be easy to understand and modify to fit your own needs. . This package contains gdb debugging symbols for the nagios3 binaries and the mini_epn tool which can help in debugging Nagios problems. . Nagios is a replacement of the Netsaint project. It accepts and uses the previous Netsaint modules transparently. . Upstream URL: http://www.nagios.org/ debian/nagios3-cgi.links0000664000000000000000000000023312162741135012335 0ustar usr/share/javascript/jquery/jquery.min.js usr/share/nagios3/htdocs/js/jquery-1.7.1.min.js etc/nagios3/apache2.conf etc/apache2/conf-available/nagios3.conf debian/nagios3-common.postrm0000664000000000000000000000147211614535770013304 0ustar #!/bin/sh -e # some shorthands for sanity en="/etc/nagios3" enc="/etc/nagios3/conf.d" usn="/usr/share/nagios3" case "$1" in remove) ;; purge) for file in $en/resource.cfg /var/log/nagios3 /var/run/nagios3 \ /var/lib/nagios3 /var/lib/nagios3/spool \ /var/lib/nagios3/spool/checkresults \ /var/cache/nagios3 /var/lib/nagios3/rw; do dpkg-statoverride --force --remove $file 2>/dev/null || true done rm -rf /var/run/nagios3 /var/log/nagios3 /var/lib/nagios3 \ /var/cache/nagios3 rm -f /etc/nagios3/conf.d/host-gateway_nagios3.cfg #rm -f /etc/nagios3/conf.d/extcommands_nagios3.cfg if which ucf >/dev/null 2>&1; then ucf --purge /etc/nagios3/conf.d/host-gateway_nagios3.cfg #ucf --purge /etc/nagios3/conf.d/extcommands_nagios3.cfg fi ;; esac #DEBHELPER# debian/conf.d/0000775000000000000000000000000011614535770010350 5ustar debian/conf.d/generic-host_nagios2.cfg0000664000000000000000000000220011614535770015034 0ustar # Generic host definition template - This is NOT a real host, just a template! define host{ name generic-host ; The name of this host template notifications_enabled 1 ; Host notifications are enabled event_handler_enabled 1 ; Host event handler is enabled flap_detection_enabled 1 ; Flap detection is enabled failure_prediction_enabled 1 ; Failure prediction is enabled process_perf_data 1 ; Process performance data retain_status_information 1 ; Retain status information across program restarts retain_nonstatus_information 1 ; Retain non-status information across program restarts check_command check-host-alive max_check_attempts 10 notification_interval 0 notification_period 24x7 notification_options d,u,r contact_groups admins register 0 ; DONT REGISTER THIS DEFINITION - ITS NOT A REAL HOST, JUST A TEMPLATE! } debian/conf.d/extinfo_nagios2.cfg0000664000000000000000000000064211614535770014131 0ustar ## ## Extended Host and Service Information ## define hostextinfo{ hostgroup_name debian-servers notes Debian GNU/Linux servers # notes_url http://webserver.localhost.localdomain/hostinfo.pl?host=netware1 icon_image base/debian.png icon_image_alt Debian GNU/Linux vrml_image debian.png statusmap_image base/debian.gd2 } debian/conf.d/localhost_nagios2.cfg0000664000000000000000000000416711614535770014453 0ustar # A simple configuration file for monitoring the local host # This can serve as an example for configuring other servers; # Custom services specific to this host are added here, but services # defined in nagios2-common_services.cfg may also apply. # define host{ use generic-host ; Name of host template to use host_name localhost alias localhost address 127.0.0.1 } # Define a service to check the disk space of the root partition # on the local machine. Warning if < 20% free, critical if # < 10% free space on partition. define service{ use generic-service ; Name of service template to use host_name localhost service_description Disk Space check_command check_all_disks!20%!10% } # Define a service to check the number of currently logged in # users on the local machine. Warning if > 20 users, critical # if > 50 users. define service{ use generic-service ; Name of service template to use host_name localhost service_description Current Users check_command check_users!20!50 } # Define a service to check the number of currently running procs # on the local machine. Warning if > 250 processes, critical if # > 400 processes. define service{ use generic-service ; Name of service template to use host_name localhost service_description Total Processes check_command check_procs!250!400 } # Define a service to check the load on the local machine. define service{ use generic-service ; Name of service template to use host_name localhost service_description Current Load check_command check_load!5.0!4.0!3.0!10.0!6.0!4.0 } debian/conf.d/generic-service_nagios2.cfg0000664000000000000000000000341311614535770015526 0ustar # generic service template definition define service{ name generic-service ; The 'name' of this service template active_checks_enabled 1 ; Active service checks are enabled passive_checks_enabled 1 ; Passive service checks are enabled/accepted parallelize_check 1 ; Active service checks should be parallelized (disabling this can lead to major performance problems) obsess_over_service 1 ; We should obsess over this service (if necessary) check_freshness 0 ; Default is to NOT check service 'freshness' notifications_enabled 1 ; Service notifications are enabled event_handler_enabled 1 ; Service event handler is enabled flap_detection_enabled 1 ; Flap detection is enabled failure_prediction_enabled 1 ; Failure prediction is enabled process_perf_data 1 ; Process performance data retain_status_information 1 ; Retain status information across program restarts retain_nonstatus_information 1 ; Retain non-status information across program restarts notification_interval 0 ; Only send notifications on status change by default. is_volatile 0 check_period 24x7 normal_check_interval 5 retry_check_interval 1 max_check_attempts 4 notification_period 24x7 notification_options w,u,c,r contact_groups admins register 0 ; DONT REGISTER THIS DEFINITION - ITS NOT A REAL SERVICE, JUST A TEMPLATE! } debian/conf.d/contacts_nagios2.cfg0000664000000000000000000000323711614535770014276 0ustar ############################################################################### # contacts.cfg ############################################################################### ############################################################################### ############################################################################### # # CONTACTS # ############################################################################### ############################################################################### # In this simple config file, a single contact will receive all alerts. define contact{ contact_name root alias Root service_notification_period 24x7 host_notification_period 24x7 service_notification_options w,u,c,r host_notification_options d,r service_notification_commands notify-service-by-email host_notification_commands notify-host-by-email email root@localhost } ############################################################################### ############################################################################### # # CONTACT GROUPS # ############################################################################### ############################################################################### # We only have one contact in this simple configuration file, so there is # no need to create more than one contact group. define contactgroup{ contactgroup_name admins alias Nagios Administrators members root } debian/conf.d/timeperiods_nagios2.cfg0000664000000000000000000000311111614535770014773 0ustar ############################################################################### # timeperiods.cfg ############################################################################### # This defines a timeperiod where all times are valid for checks, # notifications, etc. The classic "24x7" support nightmare. :-) define timeperiod{ timeperiod_name 24x7 alias 24 Hours A Day, 7 Days A Week sunday 00:00-24:00 monday 00:00-24:00 tuesday 00:00-24:00 wednesday 00:00-24:00 thursday 00:00-24:00 friday 00:00-24:00 saturday 00:00-24:00 } # Here is a slightly friendlier period during work hours define timeperiod{ timeperiod_name workhours alias Standard Work Hours monday 09:00-17:00 tuesday 09:00-17:00 wednesday 09:00-17:00 thursday 09:00-17:00 friday 09:00-17:00 } # The complement of workhours define timeperiod{ timeperiod_name nonworkhours alias Non-Work Hours sunday 00:00-24:00 monday 00:00-09:00,17:00-24:00 tuesday 00:00-09:00,17:00-24:00 wednesday 00:00-09:00,17:00-24:00 thursday 00:00-09:00,17:00-24:00 friday 00:00-09:00,17:00-24:00 saturday 00:00-24:00 } # This one is a favorite: never :) define timeperiod{ timeperiod_name never alias Never } # end of file debian/conf.d/hostgroups_nagios2.cfg0000664000000000000000000000124611614535770014673 0ustar # Some generic hostgroup definitions # A simple wildcard hostgroup define hostgroup { hostgroup_name all alias All Servers members * } # A list of your Debian GNU/Linux servers define hostgroup { hostgroup_name debian-servers alias Debian GNU/Linux Servers members localhost } # A list of your web servers define hostgroup { hostgroup_name http-servers alias HTTP servers members localhost } # A list of your ssh-accessible servers define hostgroup { hostgroup_name ssh-servers alias SSH servers members localhost } debian/conf.d/services_nagios2.cfg0000664000000000000000000000122111614535770014272 0ustar # check that web services are running define service { hostgroup_name http-servers service_description HTTP check_command check_http use generic-service notification_interval 0 ; set > 0 if you want to be renotified } # check that ssh services are running define service { hostgroup_name ssh-servers service_description SSH check_command check_ssh use generic-service notification_interval 0 ; set > 0 if you want to be renotified } debian/nagios3-dbg.postinst0000664000000000000000000000034511614535770013105 0ustar #!/bin/sh -e update-alternatives --quiet --install /usr/bin/mini_epn mini_epn /usr/bin/mini_epn_nagios3 10 \ --slave /usr/share/man/man8/mini_epn.8.gz mini_epn.8.gz /usr/share/man/man8/mini_epn_nagios3.8.gz #DEBHELPER# debian/nagios3-dbg.manpages0000664000000000000000000000003211614535770013006 0ustar debian/mini_epn_nagios3.8 debian/nagios3-core.install0000664000000000000000000000004011614535770013054 0ustar usr/sbin/p1.pl usr/lib/nagios3/ debian/nagios3-common.nagios3.init0000664000000000000000000001341112241100543014240 0ustar #! /bin/sh # Written by Miquel van Smoorenburg . # Modified for Debian GNU/Linux # by Ian Murdock . # Clamav version by Magnus Ekdahl # Nagios version by Sean Finney and probably others # nagios2 version by Marc Haber # nagios3 version by Alexander Wirt ### BEGIN INIT INFO # Provides: nagios3 # Required-Start: $local_fs $remote_fs $syslog $named $network $time # Required-Stop: $local_fs $remote_fs $syslog $named $network # Should-Start: # Should-Stop: # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: nagios host/service/network monitoring and management system # Description: nagios is a monitoring and management system for hosts, services and networks. ### END INIT INFO set -e . /lib/lsb/init-functions DAEMON=/usr/sbin/nagios3 NAME="nagios3" DESC="nagios3 monitoring daemon" NAGIOSCFG="/etc/nagios3/nagios.cfg" CGICFG="/etc/nagios3/cgi.cfg" NICENESS=5 [ -x "$DAEMON" ] || exit 0 [ -r /etc/default/nagios3 ] && . /etc/default/nagios3 # this is from madduck on IRC, 2006-07-06 # There should be a better possibility to give daemon error messages # and/or to log things log() { case "$1" in [[:digit:]]*) success=$1; shift;; *) :;; esac log_action_begin_msg "$1"; shift log_action_end_msg ${success:-0} "$*" } check_run () { if [ ! -d '/var/run/nagios3' ]; then mkdir /var/run/nagios3 chown nagios:nagios /var/run/nagios3 chmod 0750 /var/run/nagios3 fi } check_started () { #nagios3-core can be installed without -cgi if [ -e $CGICFG ]; then check_cmd=$(get_config nagios_check_command $CGICFG) if [ ! "$check_cmd" ]; then log 6 "unable to determine nagios_check_command from $CGICFG!" return 6 fi else #use hardcoded default version check_cmd="/usr/lib/nagios/plugins/check_nagios /var/cache/nagios3/status.dat 5 '/usr/sbin/nagios3'" fi eval $check_cmd >/dev/null if [ -f "$THEPIDFILE" ]; then pid="$(cat $THEPIDFILE)" if [ "$pid" ] && kill -0 $pid >/dev/null 2>/dev/null; then return 0 # Is started fi fi return 1 # Isn't started } # # get_config() # # grab a config option from nagios.cfg (or possibly another nagios config # file if specified). everything after the '=' is echo'd out, making # this a nice generalized way to get requested settings. # get_config () { if [ "$2" ]; then set -- `grep ^$1 $2 | sed 's@=@ @'` else set -- `grep ^$1 $NAGIOSCFG | sed 's@=@ @'` fi shift echo $* } check_config () { if $DAEMON -v $NAGIOSCFG >/dev/null 2>&1 ; then # First get the user/group etc Nagios is running as nagios_user="$(get_config nagios_user)" nagios_group="$(get_config nagios_group)" log_file="$(get_config log_file)" log_dir="$(dirname $log_file)" return 0 # Config is ok else # config is not okay, so let's barf the error to the user $DAEMON -v $NAGIOSCFG fi } check_named_pipe () { nagiospipe="$(get_config command_file)" if [ -p "$nagiospipe" ]; then return 1 # a named pipe exists elif [ -e "$nagiospipe" ];then return 1 else return 0 # no named pipe exists fi } if [ ! -f "$NAGIOSCFG" ]; then log_failure_msg "There is no configuration file for Nagios 3." exit 6 fi THEPIDFILE=$(get_config "lock_file") [ -n "$THEPIDFILE" ] || THEPIDFILE='/var/run/nagios3/nagios.pid' start () { if [ "$ENABLED" = "no" ]; then log_warning_msg "Not starting Nagios3 - set ENABLED to yes in /etc/default/nagios3" exit 0 fi if ! check_started; then if ! check_named_pipe; then log_action_msg "named pipe exists - removing" rm -f $nagiospipe fi if check_config; then start_daemon -n $NICENESS -p $THEPIDFILE $DAEMON -d $NAGIOSCFG ret=$? else log_failure_msg "errors in config!" log_end_msg 1 exit 1 fi else log_warning_msg "already running!" fi return $ret } stop () { killproc -p $THEPIDFILE ret=$? if [ `pidof nagios3 | wc -l ` -gt 0 ]; then echo -n "Waiting for $NAME daemon to die.." cnt=0 while [ `pidof nagios3 | wc -l ` -gt 0 ]; do cnt=`expr "$cnt" + 1` if [ "$cnt" -gt 15 ]; then kill -9 `pidof nagios3` break fi sleep 1 echo -n "." done fi echo if ! check_named_pipe; then rm -f $nagiospipe fi if [ -n "$ret" ]; then return $ret else return $? fi } status() { log_action_begin_msg "checking $DAEMON" if check_started; then log_action_end_msg 0 "running" else if [ -e "$THEPIDFILE" ]; then log_action_end_msg 1 "$DAEMON failed" exit 1 else log_action_end_msg 1 "not running" exit 3 fi fi } reload () { # Check first if check_config; then if check_started; then killproc -p $THEPIDFILE $DAEMON 1 else log_warning_msg "Not running." fi else log_failure_msg "errors in config!" log_end_msg 6 exit 6 fi } check() { $DAEMON -v $NAGIOSCFG } check_run case "$1" in start) log_daemon_msg "Starting $DESC" "$NAME" start log_end_msg $? ;; stop) log_daemon_msg "Stopping $DESC" "$NAME" stop log_end_msg $? ;; restart) log_daemon_msg "Restarting $DESC" "$NAME" stop if [ -z "$?" -o "$?" = "0" ]; then start fi log_end_msg $? ;; reload|force-reload) log_daemon_msg "Reloading $DESC configuration files" "$NAME" reload log_end_msg $? ;; status) status ;; check) check ;; *) log_failure_msg "Usage: $0 {start|stop|restart|reload|force-reload|status}" >&2 exit 1 ;; esac exit 0 debian/README.source0000664000000000000000000000026111614535770011357 0ustar We use dpatch for patch handling inside our nagios packages. Please see /usr/share/doc/dpatch/README.source.gz (if you have installed dpatch) for documentation about dpatch. debian/nagios3-common.links0000664000000000000000000000010011614535770013063 0ustar usr/share/nagios3/htdocs/docs usr/share/doc/nagios3-common/html debian/nagios3-doc.dirs0000664000000000000000000000006111614535770012167 0ustar usr/share/nagios3/htdocs etc/nagios3/stylesheets debian/httpd.webapps-common0000664000000000000000000000761611614535770013207 0ustar # httpd-related functions # taken from the webapps-common project # copyright (c) 2005, sean finney (GPL) wc_httpd_apaches="apache2" # if they have not specified what they support, assume support for all if [ ! "$wc_httpd_supported" ]; then wc_httpd_supported="$wc_httpd_apaches" fi # # wc_httpd_installed: test for installed httpds # usage: # wc_httpd_installed [ httpd1 httpd2 ... ] # # no arguments implies to test for all servers wc_httpd_installed(){ local httpds if [ "$*" ]; then httpds=$* else httpds=$wc_httpd_supported fi for f in $httpds; do if test -x /usr/sbin/$f; then echo $f fi done } # # wc_httpd_running: test for running httpds # usage: # wc_httpd_running [ httpd1 httpd2 ... ] # # no arguments implies to test for all servers wc_httpd_running(){ local httpds if [ "$*" ]; then httpds=$* else httpds=$wc_httpd_supported fi for f in $httpds; do if pgrep -fx "/usr/sbin/$f( .*)*$" >/dev/null; then echo $f fi done } # wc_httpd_invoke: issue start/stop/etc command to web server init script # usage: # wc_httpd_invoke {start|stop|status|whatever} [ httpd1 httpd2 ... ] # # no servers implies to invoke all running servers wc_httpd_invoke(){ local httpds cmd err if [ ! "$1" ]; then echo "i need at least a command!" 2>&1 return 1 fi cmd="$1" shift if [ "$*" ]; then httpds=$* else httpds=`wc_httpd_running` fi for f in $httpds; do if [ -x /etc/init.d/$f ]; then invoke-rc.d $f $cmd || return $? fi done } # wc_httpd_apache_include: include a file in the apache configuration # usage: # wc_httpd_apache_include file name [ httpd1 httpd2 ... ] # # no arguments implies all installed apache servers wc_httpd_apache_include(){ local h incfile httpds confdir if [ ! "$1" ]; then echo "i need at least a file!" 2>&1 return 1 fi incfile="$1" shift if [ ! "$1" ]; then echo "i also need a name!" 2>&1 return 1 fi name="$1" shift if [ ! -e "$incfile" ]; then echo "include file $incfile does not exist!" 2>&1 return 1 fi if [ "$*" ]; then httpds=$* else httpds=`wc_httpd_installed $wc_httpd_supported` fi for h in $httpds; do confdir="/etc/$h/conf.d" conflink="$confdir/${name}.conf" if [ -d "$confdir" -a ! -e "$conflink" ]; then ln -s "$incfile" "$conflink" fi done } # wc_httpd_apache_configured: determine what servers are configured for a pkg # usage: # wc_httpd_apache_configured file name [ httpd1 httpd2 ... ] # # no arguments implies all installed apache servers # outputs the list of servers that are configured with file->name wc_httpd_apache_configured(){ local h incfile httpds confdir if [ ! "$1" ]; then echo "i need at least a file!" 2>&1 return 1 fi incfile="$1" shift if [ ! "$1" ]; then echo "i also need a name!" 2>&1 return 1 fi name="$1" shift if [ ! -e "$incfile" ]; then echo "include file $incfile does not exist!" 2>&1 return 1 fi if [ "$*" ]; then httpds=$* else httpds=`wc_httpd_installed $wc_httpd_supported` fi for h in $httpds; do confdir="/etc/$h/conf.d" conflink="$confdir/${name}.conf" if [ -L "$conflink" ]; then echo "$h " fi done } # wc_httpd_apache_uninclude: uninclude a file in the apache configuration # usage: # wc_httpd_apache_uninclude file name [ httpd1 httpd2 ... ] # # no arguments implies all installed apache servers wc_httpd_apache_uninclude(){ local h incfile name httpds conflink if [ ! "$1" ]; then echo "i need at least a file!" 2>&1 return 1 fi incfile="$1" shift if [ ! "$1" ]; then echo "i also need a name!" 2>&1 return 1 fi name="$1" shift if [ ! -e "$incfile" ]; then echo "include file $incfile does not exist!" 2>&1 return 1 fi if [ "$*" ]; then httpds=$* else httpds=`wc_httpd_installed $wc_httpd_supported` fi for h in $httpds; do conflink="/etc/$h/conf.d/${name}.conf" if [ -L "$conflink" ]; then rm -f "$conflink" elif [ -e "$conflink" ]; then echo "warning: $conflink exists but is not a link" >&2 fi done } debian/nagios3-common.docs0000664000000000000000000000002111614535770012675 0ustar README UPGRADING debian/po/0000775000000000000000000000000012162741135007610 5ustar debian/po/nl.po0000664000000000000000000000627312162741135010571 0ustar # Dutch translation of nagios3 debconf templates. # Copyright (C) 2012 THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the nagios3 package. # Jeroen Schot , 2012. # msgid "" msgstr "" "Project-Id-Version: nagios3 3.2.3-3\n" "Report-Msgid-Bugs-To: nagios3@packages.debian.org\n" "POT-Creation-Date: 2013-06-26 23:55+0200\n" "PO-Revision-Date: 2012-01-06 10:59+0100\n" "Last-Translator: Jeroen Schot \n" "Language-Team: Debian l10n Dutch \n" "Language: nl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #. Type: password #. Description #: ../nagios3-cgi.templates:1001 msgid "Nagios web administration password:" msgstr "Nagios webbeheerwachtwoord:" #. Type: password #. Description #: ../nagios3-cgi.templates:1001 msgid "" "Please provide the password to be created with the \"nagiosadmin\" user." msgstr "Kies een wachtwoord voor de gebruiker \"nagiosadmin\"." #. Type: password #. Description #: ../nagios3-cgi.templates:1001 msgid "" "This is the username and password you will use to log in to your nagios " "installation after configuration is complete. If you do not provide a " "password, you will have to configure access to nagios yourself." msgstr "" "Dit zij de gebruikersnaam en wachtwoord waarmee u in kunt loggen bij uw " "nagios-systeem nadat de configuratie is voltooid. Als u geen wachtwoord " "opgeeft zal u de toegang tot nagios zelf moeten instellen." #. Type: password #. Description #: ../nagios3-cgi.templates:2001 msgid "Password confirmation:" msgstr "Wachtwoord ter bevestiging:" #. Type: note #. Description #: ../nagios3-cgi.templates:3001 msgid "The passwords do not match" msgstr "De wachtwoorden komen niet overeen" #~ msgid "Apache servers to configure for nagios3:" #~ msgstr "Automatisch te configureren apache-servers:" #~ msgid "Please select which apache servers should be configured for nagios3." #~ msgstr "Welke apache-servers moeten er worden geconfigureerd voor nagios3?" #~ msgid "" #~ "If you would prefer to perform configuration manually, leave all servers " #~ "unselected." #~ msgstr "" #~ "Als u de configuratie liever handmatig doet, selecteer dan geen enkele " #~ "server." #~ msgid "Enable support for nagios 1.x links in nagios3?" #~ msgstr "Ondersteuning activeren voor nagios-1.x-links?" #~ msgid "" #~ "Please choose whether the Apache configuration for nagios3 should provide " #~ "compatibility with links from nagios 1.x." #~ msgstr "" #~ "Geef aan of de Apache-configuratie van nagios3 compatibiliteit moet " #~ "aanbieden met links van nagios 1.x." #~ msgid "" #~ "If you select this option, the apache configuration used for nagios will " #~ "include directives to support URLs from nagios 1.x. You should not choose " #~ "this option if you still have nagios 1.x on your system, or unpredictable " #~ "results may occur." #~ msgstr "" #~ "Als u voor deze optie kiest zal de apache-configuratie van nagios regels " #~ "bevatten om URL's van nagios1.x te ondersteunen. U moet hier niet voor " #~ "kiezen als u nog steeds nagios 1.x op uw systeem heeft, anders kan dit " #~ "tot onverwachte resultaten leiden." debian/po/pt_BR.po0000664000000000000000000000656412162741135011171 0ustar # nagios3 Brazilian Portuguese translation. # Copyright (C) THE nagios3's COPYRIGHT HOLDER # This file is distributed under the same license as nagios3 package. # Bruno Gurgel Gomes de Oliveira , 2008. # msgid "" msgstr "" "Project-Id-Version: nagios3_3.0.3-1\n" "Report-Msgid-Bugs-To: nagios3@packages.debian.org\n" "POT-Creation-Date: 2013-06-26 23:55+0200\n" "PO-Revision-Date: 2008-07-25 19:40-0300\n" "Last-Translator: Bruno Gurgel Gomes de Oliveira \n" "Language-Team: Brazilian Portuguese \n" "Language: pt_BR\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "pt_BR utf-8\n" #. Type: password #. Description #: ../nagios3-cgi.templates:1001 msgid "Nagios web administration password:" msgstr "Senha de administração web do Nagios:" #. Type: password #. Description #: ../nagios3-cgi.templates:1001 msgid "" "Please provide the password to be created with the \"nagiosadmin\" user." msgstr "Por favor, forneça a senha a ser criada com o usuário \"nagiosadmin\"." #. Type: password #. Description #: ../nagios3-cgi.templates:1001 msgid "" "This is the username and password you will use to log in to your nagios " "installation after configuration is complete. If you do not provide a " "password, you will have to configure access to nagios yourself." msgstr "" "Este é o nome de usuário e a senha que você usará para acessar sua " "instalação nagios depois que a configuração estiver completa. Se você não " "fornecer uma senha, você mesmo terá que configurar o acesso ao nagios." #. Type: password #. Description #: ../nagios3-cgi.templates:2001 msgid "Password confirmation:" msgstr "Confirmação de senha:" #. Type: note #. Description #: ../nagios3-cgi.templates:3001 msgid "The passwords do not match" msgstr "As senhas não coincidem" #~ msgid "Apache servers to configure for nagios3:" #~ msgstr "Servidores apache a serem configurados para o nagios3:" #~ msgid "Please select which apache servers should be configured for nagios3." #~ msgstr "" #~ "Por favor, selecione quais servidores apache deverão ser configurados " #~ "para o nagios3." #~ msgid "" #~ "If you would prefer to perform configuration manually, leave all servers " #~ "unselected." #~ msgstr "" #~ "Se você preferir realizar a configuração manualmente, não selecione " #~ "nenhum servidor." #~ msgid "Enable support for nagios 1.x links in nagios3?" #~ msgstr "Habilitar suporte para links do nagios 1.x no nagios3?" #~ msgid "" #~ "Please choose whether the Apache configuration for nagios3 should provide " #~ "compatibility with links from nagios 1.x." #~ msgstr "" #~ "Por favor, selecione se a configuração do Apache para o nagios3 deve " #~ "fornecer compatibilidade com links do nagios 1.x." #~ msgid "" #~ "If you select this option, the apache configuration used for nagios will " #~ "include directives to support URLs from nagios 1.x. You should not choose " #~ "this option if you still have nagios 1.x on your system, or unpredictable " #~ "results may occur." #~ msgstr "" #~ "Se você selecionar esta opção, a configuração do apache usada para o " #~ "nagios incluirá diretivas para dar suporte a URLs do nagios 1.x. Você não " #~ "deveria escolher esta opção se você ainda tem o nagios 1.x no seu " #~ "sistema, ou resultados imprevisíveis podem ocorrer." debian/po/es.po0000664000000000000000000001015112162741135010555 0ustar # nagios3 po-debconf translation to spanish # Copyright (C) 2004 Software in the Public Interest # This file is distributed under the same license as the nagios3 package. # # Changes: # - Initial translation # Rudy Godoy , 2006 # # # Traductores, si no conoce el formato PO, merece la pena leer la # documentación de gettext, especialmente las secciones dedicadas a este # formato, por ejemplo ejecutando: # info -n '(gettext)PO Files' # info -n '(gettext)Header Entry' # # Equipo de traducción al español, por favor lean antes de traducir # los siguientes documentos: # # - El proyecto de traducción de Debian al español # http://www.debian.org/intl/spanish/coordinacion # especialmente las notas de traducción en # http://www.debian.org/intl/spanish/notas # # - La guía de traducción de po's de debconf: # /usr/share/doc/po-debconf/README-trans # o http://www.debian.org/intl/l10n/po-debconf/README-trans # msgid "" msgstr "" "Project-Id-Version: nagios3 2.5\n" "Report-Msgid-Bugs-To: nagios3@packages.debian.org\n" "POT-Creation-Date: 2013-06-26 23:55+0200\n" "PO-Revision-Date: 2006-10-23 23:28-0500\n" "Last-Translator: Rudy Godoy \n" "Language-Team: Debian Spanish l10n team \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" #. Type: password #. Description #: ../nagios3-cgi.templates:1001 msgid "Nagios web administration password:" msgstr "Clave de administración web de Nagios" #. Type: password #. Description #: ../nagios3-cgi.templates:1001 msgid "" "Please provide the password to be created with the \"nagiosadmin\" user." msgstr "" "Por favor, introduzca la contraseña para el nuevo usuario «nagiosadmin»." #. Type: password #. Description #: ../nagios3-cgi.templates:1001 msgid "" "This is the username and password you will use to log in to your nagios " "installation after configuration is complete. If you do not provide a " "password, you will have to configure access to nagios yourself." msgstr "" "Estos son el usuario y contraseña que usará para ingresar a su instalación " "de\n" "nagios, después de que termine la configuración. Si no define una " "contraseña\n" "tendrá que configurar nagios de forma manual." #. Type: password #. Description #: ../nagios3-cgi.templates:2001 msgid "Password confirmation:" msgstr "Confirmar clave:" #. Type: note #. Description #: ../nagios3-cgi.templates:3001 msgid "The passwords do not match" msgstr "Las contraseñas no coinciden" #~ msgid "Apache servers to configure for nagios3:" #~ msgstr "Servidores apache que se deberían configurar para nagios3:" #~ msgid "Please select which apache servers should be configured for nagios3." #~ msgstr "" #~ "Por favor, seleccione los servidores apache que se deberían configurar " #~ "para nagios3." #~ msgid "" #~ "If you would prefer to perform configuration manually, leave all servers " #~ "unselected." #~ msgstr "" #~ "No elija ningún servidor si prefiere realizar la configuración de forma " #~ "manual." #~ msgid "Enable support for nagios 1.x links in nagios3?" #~ msgstr "¿Desea activar el soporte para enlaces de nagios 1.x en nagios3?" #~ msgid "" #~ "Please choose whether the Apache configuration for nagios3 should provide " #~ "compatibility with links from nagios 1.x." #~ msgstr "" #~ "Indique si la configuración de apache para nagios3 debería ser " #~ "compatible\n" #~ "con enlaces de nagios 1.x." #~ msgid "" #~ "If you select this option, the apache configuration used for nagios will " #~ "include directives to support URLs from nagios 1.x. You should not choose " #~ "this option if you still have nagios 1.x on your system, or unpredictable " #~ "results may occur." #~ msgstr "" #~ "Si elije esta opción, se incluirán las directivas para soporte de URLs\n" #~ "de nagios 1.x en la configuración de apache. No debe elegir esta\n" #~ "opción si todavía tiene nagios 1.x instalado en su sistema, esto puede\n" #~ "producir resultados impredecibles." #~ msgid "apache, apache-ssl, apache2" #~ msgstr "apache, apache-ssl, apache2" debian/po/ru.po0000664000000000000000000000766412162741135010613 0ustar # translation of ru.po to Russian # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # # Yuri Kozlov , 2008. msgid "" msgstr "" "Project-Id-Version: ru\n" "Report-Msgid-Bugs-To: nagios3@packages.debian.org\n" "POT-Creation-Date: 2013-06-26 23:55+0200\n" "PO-Revision-Date: 2008-09-15 19:06+0400\n" "Last-Translator: Yuri Kozlov \n" "Language-Team: Russian \n" "Language: ru\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: KBabel 1.11.4\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" "%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" #. Type: password #. Description #: ../nagios3-cgi.templates:1001 msgid "Nagios web administration password:" msgstr "Пароль для веб-администрирования Nagios:" #. Type: password #. Description #: ../nagios3-cgi.templates:1001 msgid "" "Please provide the password to be created with the \"nagiosadmin\" user." msgstr "Введите пароль для создаваемой учётной записи \"nagiosadmin\"." #. Type: password #. Description #: ../nagios3-cgi.templates:1001 msgid "" "This is the username and password you will use to log in to your nagios " "installation after configuration is complete. If you do not provide a " "password, you will have to configure access to nagios yourself." msgstr "" "Вы будете использовать эту учётную запись и пароль для доступа к nagios " "после завершения настройки. Если вы не укажите пароль, то вам нужно будет " "настроить доступ к nagios самостоятельно." #. Type: password #. Description #: ../nagios3-cgi.templates:2001 msgid "Password confirmation:" msgstr "Введите пароль ещё раз:" #. Type: note #. Description #: ../nagios3-cgi.templates:3001 msgid "The passwords do not match" msgstr "Пароли не совпадают" #~ msgid "Apache servers to configure for nagios3:" #~ msgstr "Серверы apache для настройки под nagios3:" #~ msgid "Please select which apache servers should be configured for nagios3." #~ msgstr "Выберите серверы apache, которые нужно настроить для nagios3." #~ msgid "" #~ "If you would prefer to perform configuration manually, leave all servers " #~ "unselected." #~ msgstr "Если вы хотите выполнить настройку вручную, то ничего не выбирайте." #~ msgid "Enable support for nagios 1.x links in nagios3?" #~ msgstr "Включить поддержку ссылок nagios 1.x в nagios3?" #~ msgid "" #~ "Please choose whether the Apache configuration for nagios3 should provide " #~ "compatibility with links from nagios 1.x." #~ msgstr "" #~ "Выберите, нужно ли настраивать Apache в nagios3 для предоставления " #~ "обратной совместимости по ссылкам с nagios 1.x." #~ msgid "" #~ "If you select this option, the apache configuration used for nagios will " #~ "include directives to support URLs from nagios 1.x. You should not choose " #~ "this option if you still have nagios 1.x on your system, or unpredictable " #~ "results may occur." #~ msgstr "" #~ "Если вы ответите утвердительно, то в настройку apache, который " #~ "используется с nagios, будут включены директивы для поддержки URL-ов из " #~ "nagios 1.x. Лучше не включать поддержку, если в системе ещё используется " #~ "nagios 1.x, так как это приведёт к непредсказуемым последствиям." debian/po/pl.po0000664000000000000000000000632112162741135010565 0ustar # debconf templates for ppp package # Polish translation # Copyright (C) 2008 # This file is distributed under the same license as the ppp package. # Łukasz Paździora , 2008 # msgid "" msgstr "" "Project-Id-Version: nagios3 3.0.3-3\n" "Report-Msgid-Bugs-To: nagios3@packages.debian.org\n" "POT-Creation-Date: 2013-06-26 23:55+0200\n" "PO-Revision-Date: 2008-11-20 17:20+0100\n" "Last-Translator: Łukasz Paździora \n" "Language-Team: Polish \n" "Language: pl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #. Type: password #. Description #: ../nagios3-cgi.templates:1001 msgid "Nagios web administration password:" msgstr "Hasło administratora Nagios:" #. Type: password #. Description #: ../nagios3-cgi.templates:1001 msgid "" "Please provide the password to be created with the \"nagiosadmin\" user." msgstr "Proszę podać hasło dla użytkownika \"nagiosadmin\"." #. Type: password #. Description #: ../nagios3-cgi.templates:1001 msgid "" "This is the username and password you will use to log in to your nagios " "installation after configuration is complete. If you do not provide a " "password, you will have to configure access to nagios yourself." msgstr "" "Po zakończeniu konfiguracji ta nazwa użytkownika oraz hasło zostaną użyte do " "zalogowania się w nagios. Jeśli hasło nie zostanie podane, konieczne będzie " "ręczne skonfigurowanie dostępu do nagios." #. Type: password #. Description #: ../nagios3-cgi.templates:2001 msgid "Password confirmation:" msgstr "Potwierdzenie hasła:" #. Type: note #. Description #: ../nagios3-cgi.templates:3001 msgid "The passwords do not match" msgstr "Hasła nie są takie same" #~ msgid "Apache servers to configure for nagios3:" #~ msgstr "Konfiguracja serwerów Apache dla nagios3:" #~ msgid "Please select which apache servers should be configured for nagios3." #~ msgstr "" #~ "Proszę wybrać, które serwery apache powinny zostać skonfigurowane dla " #~ "nagios3." #~ msgid "" #~ "If you would prefer to perform configuration manually, leave all servers " #~ "unselected." #~ msgstr "" #~ "Nie zaznaczaj żadnego serwera jeżeli chcesz przeprowadzić konfigurację " #~ "ręcznie." #~ msgid "Enable support for nagios 1.x links in nagios3?" #~ msgstr "Włączyć obsługę linków z nagios 1.x w nagios3?" #~ msgid "" #~ "Please choose whether the Apache configuration for nagios3 should provide " #~ "compatibility with links from nagios 1.x." #~ msgstr "" #~ "Czy konfiguracja Apache dla nagios3 powinna być kompatybilna z linkami z " #~ "nagios 1.x." #~ msgid "" #~ "If you select this option, the apache configuration used for nagios will " #~ "include directives to support URLs from nagios 1.x. You should not choose " #~ "this option if you still have nagios 1.x on your system, or unpredictable " #~ "results may occur." #~ msgstr "" #~ "Jeśli ta opcja zostanie wybrana, konfiguracja apache używana dla nagios " #~ "będzie zawierać dyrektywy obsługujące URL-e z nagios 1.x. Ta opcja nie " #~ "powinna być zaznaczona jeśli nagios 1.x jest nadal zainstalowany na tym " #~ "systemie ponieważ może to wywołać niemożliwe do przewidzenia efekty." debian/po/fr.po0000664000000000000000000000707512162741135010570 0ustar # Nagios3 # Copyright (C) 2006 # This file is distributed under the same license as the Nagios3 package. # Sean Finney, Marc Haber et Joerg Jasper , 2006 # msgid "" msgstr "" "Project-Id-Version: nagios3_2.4-1\n" "Report-Msgid-Bugs-To: nagios3@packages.debian.org\n" "POT-Creation-Date: 2013-06-26 23:55+0200\n" "PO-Revision-Date: 2006-06-07 10:58+0100\n" "Last-Translator: Steve Petruzzello \n" "Language-Team: French \n" "Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=iso-8859-15\n" "Content-Transfer-Encoding: 8bit\n" "X-Poedit-Language: French\n" "X-Poedit-Country: SWITZERLAND\n" "X-Poedit-SourceCharset: iso-8859-15\n" #. Type: password #. Description #: ../nagios3-cgi.templates:1001 msgid "Nagios web administration password:" msgstr "Mot de passe pour l'administration web de Nagios:" #. Type: password #. Description #: ../nagios3-cgi.templates:1001 msgid "" "Please provide the password to be created with the \"nagiosadmin\" user." msgstr "" "Veuillez fournir le mot de passe utiliser avec l'utilisateur " "nagiosadmin." #. Type: password #. Description #: ../nagios3-cgi.templates:1001 msgid "" "This is the username and password you will use to log in to your nagios " "installation after configuration is complete. If you do not provide a " "password, you will have to configure access to nagios yourself." msgstr "" "Il s'agit du nom d'utilisateur et du mot de passe que vous utiliserez pour " "vous connecter Nagios une fois que l'installation est termine. Si vous ne " "fournissez pas de mot de passe, vous devrez configurer Nagios vous-mme afin " "d'y accder." #. Type: password #. Description #: ../nagios3-cgi.templates:2001 msgid "Password confirmation:" msgstr "Confirmation du mot de passe:" #. Type: note #. Description #: ../nagios3-cgi.templates:3001 msgid "The passwords do not match" msgstr "Mots de passe diffrents" #~ msgid "Apache servers to configure for nagios3:" #~ msgstr "Serveurs Apache configurer pour Nagios3:" #~ msgid "Please select which apache servers should be configured for nagios3." #~ msgstr "Veuillez choisir le(s) serveur(s) web configurer pour Nagios3." #~ msgid "" #~ "If you would prefer to perform configuration manually, leave all servers " #~ "unselected." #~ msgstr "" #~ "Si vous prfrez configurer vous-mme ce paquet, ne slectionnez aucun " #~ "serveur." #~ msgid "Enable support for nagios 1.x links in nagios3?" #~ msgstr "Faut-il activer la gestion des liens de Nagios1.x pour Nagios3?" #~ msgid "" #~ "Please choose whether the Apache configuration for nagios3 should provide " #~ "compatibility with links from nagios 1.x." #~ msgstr "" #~ "Veuillez choisir si la configuration d'Apache pour Nagios3 doit permettre " #~ "la compatibilit avec les liens de Nagios1.x." #~ msgid "" #~ "If you select this option, the apache configuration used for nagios will " #~ "include directives to support URLs from nagios 1.x. You should not choose " #~ "this option if you still have nagios 1.x on your system, or unpredictable " #~ "results may occur." #~ msgstr "" #~ "En choisissant cette option, la configuration d'Apache pour Nagios " #~ "contiendra des directives permettant la gestion d'URL depuis Nagios1.x. " #~ "Vous ne devriez pas choisir cette option si vous avez encore Nagios1.x " #~ "sur votre systme, sinon vous risquez d'avoir des rsultats inattendus." #~ msgid "apache, apache-ssl, apache2" #~ msgstr "Apache, Apache-ssl, Apache2" #~ msgid "apache2" #~ msgstr "Apache2" #~ msgid "false" #~ msgstr "Faux" debian/po/da.po0000664000000000000000000000635712162741135010547 0ustar # Danish translation nagios3. # Copyright (C) 2010 nagios3 og nedenstående oversættere. # This file is distributed under the same license as nagios3 package. # Joe Hansen , 2010. # msgid "" msgstr "" "Project-Id-Version: nagios3\n" "Report-Msgid-Bugs-To: nagios3@packages.debian.org\n" "POT-Creation-Date: 2013-06-26 23:55+0200\n" "PO-Revision-Date: 2010-11-30 17:30+01:00\n" "Last-Translator: Joe Hansen \n" "Language-Team: Danish \n" "Language: da\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #. Type: password #. Description #: ../nagios3-cgi.templates:1001 msgid "Nagios web administration password:" msgstr "Adgangskode for Nagios' internetadministration:" #. Type: password #. Description #: ../nagios3-cgi.templates:1001 msgid "" "Please provide the password to be created with the \"nagiosadmin\" user." msgstr "" "Angiv venligst adgangskoden som skal oprettes med brugeren »nagiosadmin«." #. Type: password #. Description #: ../nagios3-cgi.templates:1001 msgid "" "This is the username and password you will use to log in to your nagios " "installation after configuration is complete. If you do not provide a " "password, you will have to configure access to nagios yourself." msgstr "" "Dette er brugernavnet og adgangskoden, som du skal bruge til at logge ind i " "din nagiosinstallation, efter konfigurationen er færdig. Hvis du ikke " "angiver en adgangskode, skal du selv konfigurere adgang til nagios." #. Type: password #. Description #: ../nagios3-cgi.templates:2001 msgid "Password confirmation:" msgstr "Bekræftelse af adgangskode:" #. Type: note #. Description #: ../nagios3-cgi.templates:3001 msgid "The passwords do not match" msgstr "Adgangskoderne er ikke ens" #~ msgid "Apache servers to configure for nagios3:" #~ msgstr "Apacheservere at konfigurere for nagios3:" #~ msgid "Please select which apache servers should be configured for nagios3." #~ msgstr "" #~ "Vælg venligst hvilke apacheservere der skal konfigureres for nagios3." #~ msgid "" #~ "If you would prefer to perform configuration manually, leave all servers " #~ "unselected." #~ msgstr "" #~ "Hvis du ønsker at udføre konfigurationen manuelt, så vælg ingen servere." #~ msgid "Enable support for nagios 1.x links in nagios3?" #~ msgstr "Aktiver understøttelse for nagios 1.x-henvisninger i nagios3?" #~ msgid "" #~ "Please choose whether the Apache configuration for nagios3 should provide " #~ "compatibility with links from nagios 1.x." #~ msgstr "" #~ "Vælg venligst hvorvidt Apachekonfigurationen for nagios3 skal tilbyde " #~ "kompatibilitet med henvisninger fra nagios 1.x." #~ msgid "" #~ "If you select this option, the apache configuration used for nagios will " #~ "include directives to support URLs from nagios 1.x. You should not choose " #~ "this option if you still have nagios 1.x on your system, or unpredictable " #~ "results may occur." #~ msgstr "" #~ "Hvis du vælger denne indstilling, vil apachekonfigurationen brugt for " #~ "nagios inkludere direktiver for understøttelse af adresser fra nagios 1." #~ "x. Du bør ikke vælge denne indstilling, hvis du stadig har nagios 1.x på " #~ "dit system, da uforudsete ting kan opstå." debian/po/it.po0000664000000000000000000000642112162741135010567 0ustar # Italian (it) translation of debconf templates for nagios3 # Copyright (C) 2008 Software in the Public Interest # This file is distributed under the same license as the nagios3 package. # Luca Monducci , 2008. # msgid "" msgstr "" "Project-Id-Version: nagios3 3.0.3\n" "Report-Msgid-Bugs-To: nagios3@packages.debian.org\n" "POT-Creation-Date: 2013-06-26 23:55+0200\n" "PO-Revision-Date: 2008-11-15 21:02+0100\n" "Last-Translator: Luca Monducci \n" "Language-Team: Italian \n" "Language: it\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #. Type: password #. Description #: ../nagios3-cgi.templates:1001 msgid "Nagios web administration password:" msgstr "Password per l'amministrazione di nagios da web:" #. Type: password #. Description #: ../nagios3-cgi.templates:1001 msgid "" "Please provide the password to be created with the \"nagiosadmin\" user." msgstr "Inserire la password da associare all'utente \"nagiosadmin\"." #. Type: password #. Description #: ../nagios3-cgi.templates:1001 msgid "" "This is the username and password you will use to log in to your nagios " "installation after configuration is complete. If you do not provide a " "password, you will have to configure access to nagios yourself." msgstr "" "Al termine della configurazione è necessario usare questo nome utente e " "questa password per accedere alla propria installazione di nagios. Se non si " "inserisce una password, si dovrà configurare da soli l'accesso a nagios." #. Type: password #. Description #: ../nagios3-cgi.templates:2001 msgid "Password confirmation:" msgstr "Conferma della password:" #. Type: note #. Description #: ../nagios3-cgi.templates:3001 msgid "The passwords do not match" msgstr "Le password non coincidono" #~ msgid "Apache servers to configure for nagios3:" #~ msgstr "Server Apache da configurare per nagios3:" #~ msgid "Please select which apache servers should be configured for nagios3." #~ msgstr "" #~ "Selezionare quali server Apache devono essere configurati per nagios3." #~ msgid "" #~ "If you would prefer to perform configuration manually, leave all servers " #~ "unselected." #~ msgstr "" #~ "Per effettuare una configurazione manuale, lasciare tutti i server non " #~ "selezionati." #~ msgid "Enable support for nagios 1.x links in nagios3?" #~ msgstr "Attivare il supporto per i collegamenti di nagios 1.x in nagios3?" #~ msgid "" #~ "Please choose whether the Apache configuration for nagios3 should provide " #~ "compatibility with links from nagios 1.x." #~ msgstr "" #~ "Scegliere se la configurazione di Apache per nagios3 deve fornire anche " #~ "la compatibilità con i collegamenti di nagios 1.x." #~ msgid "" #~ "If you select this option, the apache configuration used for nagios will " #~ "include directives to support URLs from nagios 1.x. You should not choose " #~ "this option if you still have nagios 1.x on your system, or unpredictable " #~ "results may occur." #~ msgstr "" #~ "Se si accetta, la configurazione di apache per nagios includerà anche le " #~ "direttive per il supporto delle URL di nagios 1.x. Non si deve accettare " #~ "se sul proprio sistema è ancora installato nagios 1.x, altrimenti i " #~ "risultati saranno imprevedibili." debian/po/pt.po0000664000000000000000000000664612162741135010607 0ustar # translation of nagios3 debconf to Portuguese # Copyright (C) 2007 Américo Monteiro # This file is distributed under the same license as the nagios3 package. # # Américo Monteiro , 2007. msgid "" msgstr "" "Project-Id-Version: nagios3 2.9-1\n" "Report-Msgid-Bugs-To: nagios3@packages.debian.org\n" "POT-Creation-Date: 2013-06-26 23:55+0200\n" "PO-Revision-Date: 2007-08-04 04:08+0100\n" "Last-Translator: Américo Monteiro \n" "Language-Team: Portuguese \n" "Language: pt\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: KBabel 1.11.4\n" #. Type: password #. Description #: ../nagios3-cgi.templates:1001 msgid "Nagios web administration password:" msgstr "Password de administração Web do Nagios:" #. Type: password #. Description #: ../nagios3-cgi.templates:1001 msgid "" "Please provide the password to be created with the \"nagiosadmin\" user." msgstr "" "Por favor indique uma password para ser criada com o utilizador \"nagiosadmin" "\"." #. Type: password #. Description #: ../nagios3-cgi.templates:1001 msgid "" "This is the username and password you will use to log in to your nagios " "installation after configuration is complete. If you do not provide a " "password, you will have to configure access to nagios yourself." msgstr "" "Este é o nome de utilizador e password que irá usar para se autenticar na " "instalação do seu nagios após a configuração estar completa. Se você não " "providenciar uma password, terá que ser você a configurar o acesso ao nagios." #. Type: password #. Description #: ../nagios3-cgi.templates:2001 msgid "Password confirmation:" msgstr "Confirmação da password:" #. Type: note #. Description #: ../nagios3-cgi.templates:3001 msgid "The passwords do not match" msgstr "As passwords não condizem." #~ msgid "Apache servers to configure for nagios3:" #~ msgstr "Servidores Apache a configurar para nagios3:" #~ msgid "Please select which apache servers should be configured for nagios3." #~ msgstr "" #~ "Por favor seleccione quais servidores Apache deverão ser configurados " #~ "para nagios3." #~ msgid "" #~ "If you would prefer to perform configuration manually, leave all servers " #~ "unselected." #~ msgstr "" #~ "Se você preferir efectuar a configuração manualmente, não seleccione " #~ "nenhum servidor." #~ msgid "Enable support for nagios 1.x links in nagios3?" #~ msgstr "Activar suporte para atalhos do nagios 1.x no nagios3?" #~ msgid "" #~ "Please choose whether the Apache configuration for nagios3 should provide " #~ "compatibility with links from nagios 1.x." #~ msgstr "" #~ "Por favor escolha se a configuração do Apache para nagios3 deverá " #~ "providenciar compatibilidade com atalhos do nagios 1.x." #~ msgid "" #~ "If you select this option, the apache configuration used for nagios will " #~ "include directives to support URLs from nagios 1.x. You should not choose " #~ "this option if you still have nagios 1.x on your system, or unpredictable " #~ "results may occur." #~ msgstr "" #~ "Se seleccionar esta opção, a configuração do apache usada para nagios irá " #~ "incluir directivas para suportar URLs do nagios 1.x. Você não deverá " #~ "escolher esta opção se ainda tiver o nagios 1.x no seu sistema, ou podem " #~ "ocorrer resultados imprevisíveis." #~ msgid "apache, apache-ssl, apache2" #~ msgstr "apache, apache-ssl, apache2" debian/po/cs.po0000664000000000000000000000646412162741135010567 0ustar # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # Martin Sin , 2006. # msgid "" msgstr "" "Project-Id-Version: nagios3 2.4-1\n" "Report-Msgid-Bugs-To: nagios3@packages.debian.org\n" "POT-Creation-Date: 2013-06-26 23:55+0200\n" "PO-Revision-Date: 2006-08-13 17:01+0200\n" "Last-Translator: Martin Sin \n" "Language-Team: Czech \n" "Language: cs\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" #. Type: password #. Description #: ../nagios3-cgi.templates:1001 msgid "Nagios web administration password:" msgstr "Heslo webové administrace Nagios:" #. Type: password #. Description #: ../nagios3-cgi.templates:1001 msgid "" "Please provide the password to be created with the \"nagiosadmin\" user." msgstr "" "Zadejte prosím heslo použité pro nově vytvořeného uživatele \"nagiosadmin\"." #. Type: password #. Description #: ../nagios3-cgi.templates:1001 msgid "" "This is the username and password you will use to log in to your nagios " "installation after configuration is complete. If you do not provide a " "password, you will have to configure access to nagios yourself." msgstr "" "Toto uživatelské jméno a heslo bude po dokončení nastavení použito pro " "přihlášení k nagios. Pokud nezadáte heslo, budete muset nastavit přístup k " "nagios ručně." #. Type: password #. Description #: ../nagios3-cgi.templates:2001 msgid "Password confirmation:" msgstr "Potvrzení hesla:" #. Type: note #. Description #: ../nagios3-cgi.templates:3001 msgid "The passwords do not match" msgstr "Hesla nesouhlasí" #~ msgid "Apache servers to configure for nagios3:" #~ msgstr "Servery Apache pro nastavení s nagios3:" #~ msgid "Please select which apache servers should be configured for nagios3." #~ msgstr "" #~ "Vyberte prosím, které servery apache nastavit pro použití s nagios3." #~ msgid "" #~ "If you would prefer to perform configuration manually, leave all servers " #~ "unselected." #~ msgstr "Pokud dáváte přednost ruční konfiguraci, nevybírejte žádné servery." #~ msgid "Enable support for nagios 1.x links in nagios3?" #~ msgstr "Povolit podporu odkazů nagios 1.x v nagios3?" #~ msgid "" #~ "Please choose whether the Apache configuration for nagios3 should provide " #~ "compatibility with links from nagios 1.x." #~ msgstr "" #~ "Vyberte si prosím, zda má konfigurace Apache pro nagios3 poskytovat " #~ "kompatibilitu s odkazy z nagios 1.x." #~ msgid "" #~ "If you select this option, the apache configuration used for nagios will " #~ "include directives to support URLs from nagios 1.x. You should not choose " #~ "this option if you still have nagios 1.x on your system, or unpredictable " #~ "results may occur." #~ msgstr "" #~ "Pokud zvolíte tuto možnost, konfigurace apache použitá pro nagios bude " #~ "obsahovat příkazy pro podporu URL adres známých z nagios 1.x. Tuto volbu " #~ "byste neměli volit v případě, že máte dosud nainstalován nagios 1.x. " #~ "Jinak může dojít k neočekávaným výsledkům." #~ msgid "apache, apache-ssl, apache2" #~ msgstr "apache, apache-ssl, apache2" #~ msgid "apache2" #~ msgstr "apache2" #~ msgid "false" #~ msgstr "chybné" debian/po/POTFILES.in0000664000000000000000000000006011614535770011370 0ustar [type: gettext/rfc822deb] nagios3-cgi.templates debian/po/eu.po0000664000000000000000000000646012162741135010567 0ustar # translation of nagios3-eu.po to Euskara # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # # Piarres Beobide , 2008. msgid "" msgstr "" "Project-Id-Version: nagios3-eu\n" "Report-Msgid-Bugs-To: nagios3@packages.debian.org\n" "POT-Creation-Date: 2013-06-26 23:55+0200\n" "PO-Revision-Date: 2008-09-16 10:46+0200\n" "Last-Translator: Piarres Beobide \n" "Language-Team: Euskara \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: KBabel 1.11.4\n" #. Type: password #. Description #: ../nagios3-cgi.templates:1001 msgid "Nagios web administration password:" msgstr "Nagios web kudeatzaile pasahitza:" #. Type: password #. Description #: ../nagios3-cgi.templates:1001 msgid "" "Please provide the password to be created with the \"nagiosadmin\" user." msgstr "Mesedez ezarri \"nagiosadmin\" erabiltzailearen pasahitza." #. Type: password #. Description #: ../nagios3-cgi.templates:1001 msgid "" "This is the username and password you will use to log in to your nagios " "installation after configuration is complete. If you do not provide a " "password, you will have to configure access to nagios yourself." msgstr "" "Hau da nagios instalazioan konfigurazioa amaitu aurretik saioa hasteko " "erabili behar diren erabiltzaile-izen eta pasahitza. Ez baduzu pasahitzik " "ezartzen nagios saio hasiera zure kabuz konfiguratu beharko duzu." #. Type: password #. Description #: ../nagios3-cgi.templates:2001 msgid "Password confirmation:" msgstr "Pasahitz berrespena:" #. Type: note #. Description #: ../nagios3-cgi.templates:3001 msgid "The passwords do not match" msgstr "Pasahitzak ez datoz bat" #~ msgid "Apache servers to configure for nagios3:" #~ msgstr "Nagios3-rako konfiguratu behar diren apache zerbitzariak:" #~ msgid "Please select which apache servers should be configured for nagios3." #~ msgstr "" #~ "Mesedez hautatu zein apache zerbitzari konfiguratu behar dira nagios3-" #~ "rako.apache konfiguratuta errepikatu arte." #~ msgid "" #~ "If you would prefer to perform configuration manually, leave all servers " #~ "unselected." #~ msgstr "" #~ "Eskuzko instalazio bat egitea nahigo baduzu, utzi zerbitzari guztiak " #~ "hautatu gabe." #~ msgid "Enable support for nagios 1.x links in nagios3?" #~ msgstr "Nagios 1.x loturako gaitu nagios3-an?" #~ msgid "" #~ "Please choose whether the Apache configuration for nagios3 should provide " #~ "compatibility with links from nagios 1.x." #~ msgstr "" #~ "Mesedez hautatu Apache zerbitzariko nagios3 konfigurazioak nagios 1.x " #~ "bertsioko loturekin bateragarritasuna mantendu behar duen ala ez." #~ msgid "" #~ "If you select this option, the apache configuration used for nagios will " #~ "include directives to support URLs from nagios 1.x. You should not choose " #~ "this option if you still have nagios 1.x on your system, or unpredictable " #~ "results may occur." #~ msgstr "" #~ "Aukera hau hautatuaz gero apache nagios-en konfigurazioak nagios 1.x " #~ "bertsioko loturak onartzeko direktibak izango ditu. Ez zenuke aukera hau " #~ "onartu beharko dagoeneko 1.x bertsioetako nagios bat sisteman abiarazirik " #~ "baduzu edo emaitza aurre-ikustezinak gerta daitezke." debian/po/fi.po0000664000000000000000000000575112162741135010556 0ustar msgid "" msgstr "" "Project-Id-Version: nagios3\n" "Report-Msgid-Bugs-To: nagios3@packages.debian.org\n" "POT-Creation-Date: 2013-06-26 23:55+0200\n" "PO-Revision-Date: \n" "Last-Translator: Esko Arajärvi \n" "Language-Team: Finnish \n" "Language: fi\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Poedit-Language: Finnish\n" "X-Poedit-Country: FINLAND\n" #. Type: password #. Description #: ../nagios3-cgi.templates:1001 msgid "Nagios web administration password:" msgstr "Nagios-verkkoylläpidon salasana:" #. Type: password #. Description #: ../nagios3-cgi.templates:1001 msgid "" "Please provide the password to be created with the \"nagiosadmin\" user." msgstr "Anna salasana käyttäjätunnukselle ”nagiosadmin”." #. Type: password #. Description #: ../nagios3-cgi.templates:1001 msgid "" "This is the username and password you will use to log in to your nagios " "installation after configuration is complete. If you do not provide a " "password, you will have to configure access to nagios yourself." msgstr "" "Tämän käyttäjätunnuksen ja salasanan avulla voidaan nagios-asennukseen " "kirjautua, kun asetusten muokkaus on päättynyt. Jos salasanaa ei anneta, " "täytyy nagiokseen pääsy asettaa käsin." #. Type: password #. Description #: ../nagios3-cgi.templates:2001 msgid "Password confirmation:" msgstr "Salasanan vahvistus:" #. Type: note #. Description #: ../nagios3-cgi.templates:3001 msgid "The passwords do not match" msgstr "Salasanat eivät täsmää." #~ msgid "Apache servers to configure for nagios3:" #~ msgstr "Apache-palvelimet, joiden asetuksia muokataan nagios3:a varten:" #~ msgid "Please select which apache servers should be configured for nagios3." #~ msgstr "" #~ "Valitse minkä Apache-palvelimien asetuksia tulisi muokata nagios3:n " #~ "käyttöönottamiseksi." #~ msgid "" #~ "If you would prefer to perform configuration manually, leave all servers " #~ "unselected." #~ msgstr "Jos haluat tehdä asetukset käsin, älä valitse mitään palvelinta." #~ msgid "Enable support for nagios 1.x links in nagios3?" #~ msgstr "Otetaanko nagiosin version 1.x linkkien tuki käyttöön nagios3:ssa?" #~ msgid "" #~ "Please choose whether the Apache configuration for nagios3 should provide " #~ "compatibility with links from nagios 1.x." #~ msgstr "" #~ "Valitse tulisiko nagios3:n Apache-asetusten olla yhteensopivia nagios 1.x:" #~ "n linkkien kanssa." #~ msgid "" #~ "If you select this option, the apache configuration used for nagios will " #~ "include directives to support URLs from nagios 1.x. You should not choose " #~ "this option if you still have nagios 1.x on your system, or unpredictable " #~ "results may occur." #~ msgstr "" #~ "Jos valitset tämän, Apachen nagios-asetuksiin sisällytetään tuki nagios 1." #~ "x:n URLeille. Tätä ei tulisi valita, jos järjestelmässä on edelleen " #~ "nagios 1.x asennettuna, koska seuraukset eivät ole ennustettavissa." debian/po/templates.pot0000664000000000000000000000257012162741135012336 0ustar # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # #, fuzzy msgid "" msgstr "" "Project-Id-Version: nagios3\n" "Report-Msgid-Bugs-To: nagios3@packages.debian.org\n" "POT-Creation-Date: 2013-06-26 23:55+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=CHARSET\n" "Content-Transfer-Encoding: 8bit\n" #. Type: password #. Description #: ../nagios3-cgi.templates:1001 msgid "Nagios web administration password:" msgstr "" #. Type: password #. Description #: ../nagios3-cgi.templates:1001 msgid "" "Please provide the password to be created with the \"nagiosadmin\" user." msgstr "" #. Type: password #. Description #: ../nagios3-cgi.templates:1001 msgid "" "This is the username and password you will use to log in to your nagios " "installation after configuration is complete. If you do not provide a " "password, you will have to configure access to nagios yourself." msgstr "" #. Type: password #. Description #: ../nagios3-cgi.templates:2001 msgid "Password confirmation:" msgstr "" #. Type: note #. Description #: ../nagios3-cgi.templates:3001 msgid "The passwords do not match" msgstr "" debian/po/ja.po0000664000000000000000000000721512162741135010547 0ustar # Japanese debconf templates translation for nagios3. # Copyright (C) 2007 Noritada Kobayashi # This file is distributed under the same license as the nagios3 package. # msgid "" msgstr "" "Project-Id-Version: nagios3 (debconf) 2.6-3\n" "Report-Msgid-Bugs-To: nagios3@packages.debian.org\n" "POT-Creation-Date: 2013-06-26 23:55+0200\n" "PO-Revision-Date: 2007-03-02 22:03+0900\n" "Last-Translator: Noritada Kobayashi \n" "Language-Team: Japanese \n" "Language: ja\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #. Type: password #. Description #: ../nagios3-cgi.templates:1001 msgid "Nagios web administration password:" msgstr "nagios ウェブ管理用パスワード:" #. Type: password #. Description #: ../nagios3-cgi.templates:1001 msgid "" "Please provide the password to be created with the \"nagiosadmin\" user." msgstr "\"nagiosadmin\" ユーザ用に作成するパスワードを入力してください。" #. Type: password #. Description #: ../nagios3-cgi.templates:1001 msgid "" "This is the username and password you will use to log in to your nagios " "installation after configuration is complete. If you do not provide a " "password, you will have to configure access to nagios yourself." msgstr "" "これは、設定完了後に、インストールした nagios にログインするのに使用される" "ユーザ名とパスワードです。ここでパスワードを入力しない場合は、nagios へのアク" "セスを自分で設定しなければなりません。" #. Type: password #. Description #: ../nagios3-cgi.templates:2001 msgid "Password confirmation:" msgstr "パスワードの確認:" #. Type: note #. Description #: ../nagios3-cgi.templates:3001 msgid "The passwords do not match" msgstr "パスワードが一致しません" #~ msgid "Apache servers to configure for nagios3:" #~ msgstr "nagios3 の設定をする Apache サーバ:" #~ msgid "Please select which apache servers should be configured for nagios3." #~ msgstr "nagios3 の設定をする Apache サーバを選択してください。" #~ msgid "" #~ "If you would prefer to perform configuration manually, leave all servers " #~ "unselected." #~ msgstr "" #~ "手動で設定を行う方がよい場合は、どのサーバも選択せずに次に進んでください。" #~ msgid "Enable support for nagios 1.x links in nagios3?" #~ msgstr "nagios3 内で nagios 1.x のリンクのサポートを有効にしますか?" #~ msgid "" #~ "Please choose whether the Apache configuration for nagios3 should provide " #~ "compatibility with links from nagios 1.x." #~ msgstr "" #~ "nagios3 用の Apache の設定によって nagios 1.x 由来のリンクとの互換性を与え" #~ "るかどうかを選択してください。" #~ msgid "" #~ "If you select this option, the apache configuration used for nagios will " #~ "include directives to support URLs from nagios 1.x. You should not choose " #~ "this option if you still have nagios 1.x on your system, or unpredictable " #~ "results may occur." #~ msgstr "" #~ "このオプションを選択すると、nagios 用に使用される Apache の設定に、nagios " #~ "1.x 由来の URL をサポートするディレクティブが含まれるようになります。シス" #~ "テムでまだ nagios 1.x を使用している場合はこのオプションを選択すべきではあ" #~ "りません。選択すると予測不可能な結果になります。" # FIXME: Do not mark for translation since these are package names. #~ msgid "apache, apache-ssl, apache2" #~ msgstr "apache, apache-ssl, apache2" debian/po/de.po0000664000000000000000000000700012162741135010535 0ustar # translation of po-debconf template to German # Copyright (C) 2006, Matthias Julius # This file is distributed under the same license as the nagios3 package. # # Matthias Julius , 2006. msgid "" msgstr "" "Project-Id-Version: nagios3 2.5-3\n" "Report-Msgid-Bugs-To: nagios3@packages.debian.org\n" "POT-Creation-Date: 2013-06-26 23:55+0200\n" "PO-Revision-Date: 2006-11-27 22:53-0500\n" "Last-Translator: Matthias Julius \n" "Language-Team: German \n" "Language: de\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: KBabel 1.11.4\n" #. Type: password #. Description #: ../nagios3-cgi.templates:1001 msgid "Nagios web administration password:" msgstr "Passwort für die Web-Administration von nagios:" #. Type: password #. Description #: ../nagios3-cgi.templates:1001 msgid "" "Please provide the password to be created with the \"nagiosadmin\" user." msgstr "" "Bitte geben Sie das Passwort ein, das für den »nagiosadmin«-Benutzer " "festgelegt werden soll." #. Type: password #. Description #: ../nagios3-cgi.templates:1001 msgid "" "This is the username and password you will use to log in to your nagios " "installation after configuration is complete. If you do not provide a " "password, you will have to configure access to nagios yourself." msgstr "" "Dies sind Benutzername und Passwort, die Sie verwenden werden, sich bei " "Ihrer nagios-Installation anzumelden, nachdem deren Einrichtung beendet ist. " "Falls Sie kein Passwort eingeben, werden Sie den Zugang zu nagios selbst " "einrichten müssen." #. Type: password #. Description #: ../nagios3-cgi.templates:2001 msgid "Password confirmation:" msgstr "Passwortbestätigung:" #. Type: note #. Description #: ../nagios3-cgi.templates:3001 msgid "The passwords do not match" msgstr "Die Passwörter stimmen nicht überein." #~ msgid "Apache servers to configure for nagios3:" #~ msgstr "Für nagios3 einzurichtende Apache-Server:" #~ msgid "Please select which apache servers should be configured for nagios3." #~ msgstr "" #~ "Bitte wählen Sie, welche Apache-Server für nagios3 eingerichtet werden " #~ "sollen." #~ msgid "" #~ "If you would prefer to perform configuration manually, leave all servers " #~ "unselected." #~ msgstr "" #~ "Falls Sie es vorziehen, die Einrichtung manuell durchzuführen, lassen Sie " #~ "alle Server deselektiert." #~ msgid "Enable support for nagios 1.x links in nagios3?" #~ msgstr "Unterstützung für nagios-1.x-Links in nagios3 freischalten?" #~ msgid "" #~ "Please choose whether the Apache configuration for nagios3 should provide " #~ "compatibility with links from nagios 1.x." #~ msgstr "" #~ "Bitte wählen Sie, ob die Apache-Konfiguration für nagios3 Kompatibilität " #~ "mit Links von nagios 1.x zur Verfügung stellen soll." #~ msgid "" #~ "If you select this option, the apache configuration used for nagios will " #~ "include directives to support URLs from nagios 1.x. You should not choose " #~ "this option if you still have nagios 1.x on your system, or unpredictable " #~ "results may occur." #~ msgstr "" #~ "Falls Sie diese Möglichkeit wählen, wird die Apache-Konfiguration für " #~ "nagios Direktiven enthalten, um URLs von nagios 1.x zu unterstützen. Sie " #~ "sollten diese Möglichkeit nicht wählen, falls noch nagios 1.x auf Ihrem " #~ "System installiert ist. Dies könnte unvorhersehbare Ergebnisse liefern." #~ msgid "apache, apache-ssl, apache2" #~ msgstr "apache, apache-ssl, apache2" debian/po/sv.po0000664000000000000000000000620412162741135010602 0ustar # translation of nagios3.po to swedish # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # # Martin Bagge , 2008. msgid "" msgstr "" "Project-Id-Version: nagios3\n" "Report-Msgid-Bugs-To: nagios3@packages.debian.org\n" "POT-Creation-Date: 2013-06-26 23:55+0200\n" "PO-Revision-Date: 2008-09-17 23:30+0100\n" "Last-Translator: Martin Bagge \n" "Language-Team: swedish \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: KBabel 1.11.4\n" #. Type: password #. Description #: ../nagios3-cgi.templates:1001 msgid "Nagios web administration password:" msgstr "Lösenord för nagios webbadministration:" #. Type: password #. Description #: ../nagios3-cgi.templates:1001 msgid "" "Please provide the password to be created with the \"nagiosadmin\" user." msgstr "Ange lösenordet som ska användas för användaren \"nagiosadmin\"." #. Type: password #. Description #: ../nagios3-cgi.templates:1001 msgid "" "This is the username and password you will use to log in to your nagios " "installation after configuration is complete. If you do not provide a " "password, you will have to configure access to nagios yourself." msgstr "" "Detta användarnamn och lösenord använder du för att logga in i din " "nagiosinstallation. Om du inte anger ett lösenord här måste du ställa in " "nagios manuellt." #. Type: password #. Description #: ../nagios3-cgi.templates:2001 msgid "Password confirmation:" msgstr "Upprepa lösenordet:" #. Type: note #. Description #: ../nagios3-cgi.templates:3001 msgid "The passwords do not match" msgstr "Lösenorden stämmer inte överrens" #~ msgid "Apache servers to configure for nagios3:" #~ msgstr "Ange vilken apacheversion som ska förberedas för nagios3:" #~ msgid "Please select which apache servers should be configured for nagios3." #~ msgstr "Ange den apacheserver som ska ställas in för nagios3." #~ msgid "" #~ "If you would prefer to perform configuration manually, leave all servers " #~ "unselected." #~ msgstr "" #~ "Om du föredrar att ställa in apache manuellt markerar du inte något av " #~ "alternativen." #~ msgid "Enable support for nagios 1.x links in nagios3?" #~ msgstr "Aktivera stöd för länkar som de såg ut inagios 1.x?" #~ msgid "" #~ "Please choose whether the Apache configuration for nagios3 should provide " #~ "compatibility with links from nagios 1.x." #~ msgstr "" #~ "Ange om du vill att inställningarna i Apache ska ha stöd för länkar från " #~ "nagios 1.x." #~ msgid "" #~ "If you select this option, the apache configuration used for nagios will " #~ "include directives to support URLs from nagios 1.x. You should not choose " #~ "this option if you still have nagios 1.x on your system, or unpredictable " #~ "results may occur." #~ msgstr "" #~ "Om du väljer detta alternativ för nagios så kommer stöd för URL:er från " #~ "nagios 1.x aktiveras. Du ska inte aktivera detta om du fortfarande har " #~ "nagios 1.x instllerat på ditt system, konflikter kan då uppstå." debian/mini_epn_nagio3.8.txt0000664000000000000000000000131011614535770013141 0ustar :man source: Nagios :man version: {revnumber} :man manual: mini_epn mini_epn(8) ========== NAME ---- mini_epn - too to nagiosplugins inside of an embedded perl interpreter SYNOPSIS -------- *mini_epn* DESCRIPTION ----------- After calling *mini_epn* an embedded perl interpreter gets started and asks for you a script to execute under the interpreter. To exit the interpreter loop press ^d at the prompt. EXAMPLES -------- # mini_epn Enter file name: /usr/lib/nagios/plugins/check_linux_raid embedded perl plugin return code and output was: 0 & 'OK md0 status=[UU]. md1 status=[UU]. AUTHOR ------ This manpage was written by Alexander Wirt for the Debian Distribution. debian/nagios3-cgi.postinst0000664000000000000000000000503212241100575013075 0ustar #!/bin/bash set -e # some shorthands for sanity en="/etc/nagios3" enc="/etc/nagios3/conf.d" usn="/usr/share/nagios3" . /usr/share/debconf/confmodule if [ -n "$NAG3DEBUG" ]; then echo "now debugging $0 $@" set -x fi # location of the default apache configuration for nagios. apacheconf=$en/apache2.conf # location of the default htpasswd authentication file. htpw=$en/htpasswd.users setperm() { local user="$1" local group="$2" local mode="$3" local file="$4" shift 4 # only do something when no setting exists if ! dpkg-statoverride --list "$file" >/dev/null 2>&1; then chown "$user":"$group" "$file" chmod "$mode" "$file" fi } case "$1" in configure) if ! getent passwd nagios > /dev/null ; then echo 'Adding system-user for nagios' 1>&2 adduser --system --group --home /var/lib/nagios \ --disabled-login --force-badname nagios > /dev/null fi db_get nagios3/adminpassword admpass="$RET" # register apache2.conf via ucf: ucf --debconf-ok /usr/share/nagios3-cgi/apache2.conf $apacheconf echo "enabling Apache2 config..." COMMON_STATE=$(dpkg-query -f '${Status}' -W 'apache2.2-common' 2>/dev/null | awk '{print $3}' || true) # NEW method for Apache >= 2.4 if [ -e /usr/share/apache2/apache2-maintscript-helper ]; then . /usr/share/apache2/apache2-maintscript-helper apache2_invoke enmod cgi apache2_invoke enconf nagios3 # remove OLD Apache 2.2 link [ -L /etc/apache2/conf.d/nagios3.conf ] && rm /etc/apache2/conf.d/nagios3.conf # OLD methods for Apache < 2.4 elif [ "$COMMON_STATE" = "installed" ] || [ "$COMMON_STATE" = "unpacked" ] ; then # create symlink if not existing [ -f /etc/apache2/conf.d/nagios3.conf ] || ln -vs $apacheconf /etc/apache2/conf.d/nagios3.conf # reload webserver [ -x $(which invoke-rc.d) ] && invoke-rc.d apache2 reload fi # we reset the password every run, so if it exists we're running # after being specifically given a password and can unconditionally set it. # XXX there's no way of setting the pw w/out giving it on the cmdline? wtf? if [ -n "$admpass" ]; then touch "$htpw" htpasswd -b "$htpw" nagiosadmin "$admpass" fi # everything went well, so now let's reset the password db_set nagios3/adminpassword "" db_set nagios3/adminpassword-repeat "" # ... done with debconf here db_stop ;; abort-upgrade|abort-remove|abort-deconfigure) ;; *) echo "postinst called with unknown argument \$1'" >&2 exit 1 ;; esac #DEBHELPER# debian/changelog0000664000000000000000000007116613115522730011054 0ustar nagios3 (3.5.1-1ubuntu1.3) trusty-security; urgency=medium * SECURITY REGRESSION: event log cannot open log file (LP: #1690380) - debian/patches/CVE-2016-9566-regression.patch: relax permissions on log files in base/logging.c. - debian/nagios3-common.postinst: fix permissions on existing log file. -- Marc Deslauriers Tue, 06 Jun 2017 07:33:27 -0400 nagios3 (3.5.1-1ubuntu1.2) trusty; urgency=medium * debian/patches/fix_permissions_for_hostgroups_reports.patch: Fix permissions for hostgroups reports. Thanks to John C. Frickson . Closes LP: #1686768. -- Aaron B. Russell Fri, 12 May 2017 16:02:52 +0100 nagios3 (3.5.1-1ubuntu1.1) trusty-security; urgency=medium * SECURITY UPDATE: off-by-one errors leading to DoS or info disclosure - debian/patches/CVE-2013-7xxx.patch: fix off-by-ones and check length in cgi/avail.c, cgi/cmd.c, cgi/config.c, cgi/extinfo.c, cgi/histogram.c, cgi/notifications.c, cgi/outages.c, cgi/status.c, cgi/statusmap.c, cgi/statuswml.c, cgi/summary.c, cgi/trends.c, contrib/daemonchk.c. - CVE-2013-7108 - CVE-2013-7205 * SECURITY UPDATE: DoS via long message to cmd.cgi - debian/patches/CVE-2014-1878.patch: check len in cgi/cmd.c. - CVE-2014-1878 * SECURITY UPDATE: symlink attack on log file - debian/patches/CVE-2016-9566.patch: safely handle log file in base/logging.c. - CVE-2016-9566 -- Marc Deslauriers Fri, 31 Mar 2017 15:28:59 -0400 nagios3 (3.5.1-1ubuntu1) trusty; urgency=medium * Resynchronise with Debian. Remaining changes: - Add autopkgtest. -- Colin Watson Thu, 09 Jan 2014 14:58:57 +0000 nagios3 (3.5.1-1) unstable; urgency=medium * [bf5522e] Enable cgi module for apache 2.4 (Closes: #725177) * [744e794] Stick to 3.x for now * [5d1f7c2] Imported Upstream version 3.5.1 Closes: #642515 * [43e7d66] Remove obsolete patches * [65bee9b] Move to quilt * [77d98da] Remove dpatch dependency * [63dacfb] Bump standards version * [053130c] Take care that /var/run/nagios3 is created at boot time * [cfca1db] Remove leading 'a' from description * [057dfb9] Remove dpatch from rules file * [de834df] Move /var/run/nagios3 creation to initscript (Closes: #689901) * [ee6422c] Make 3.0 quilt more vcs friendly * [c88bef8] don't let nagios call home. This fixes CVE-2013-4214. (Closes: #719056) * [828c43f] Bump standards version. * [611d0f9] Don't ship folder in /var/run (Closes: #689901) -- Alexander Wirt Fri, 03 Jan 2014 23:18:34 +0100 nagios3 (3.4.1-5ubuntu3) trusty; urgency=low * Rebuild for Perl 5.18. -- Colin Watson Mon, 21 Oct 2013 13:42:17 +0100 nagios3 (3.4.1-5ubuntu2) saucy; urgency=low * d/nagios3-cgi.postinst: Enable cgi module for compatibility with apache 2.4 (LP: #1231901). -- James Page Wed, 02 Oct 2013 12:25:10 +0100 nagios3 (3.4.1-5ubuntu1) saucy; urgency=low * Resynchronise with Debian. Remaining changes: - Add autopkgtest. -- Colin Watson Tue, 30 Jul 2013 10:36:24 +0100 nagios3 (3.4.1-5) unstable; urgency=low * [8b23685] Remove obsolete webapps configuration (Closes: #714707, #714258) * [6abb302] Cleanup password handling * [e4a9bf7] Fix password handling -- Alexander Wirt Sun, 21 Jul 2013 12:02:14 +0200 nagios3 (3.4.1-4ubuntu2) saucy; urgency=low * Remove obsolete code from nagios3-cgi.config that tried to use obsolete debconf templates removed in 3.4.1-4 (closes: #714258). -- Colin Watson Tue, 16 Jul 2013 00:02:26 +0100 nagios3 (3.4.1-4ubuntu1) saucy; urgency=low * Merge from Debian unstable (LP: #1199826). Remaining changes: - debian/tests: autopkgtests -- Yolanda Robla Mon, 15 Jul 2013 12:30:12 +0100 nagios3 (3.4.1-4) unstable; urgency=high * [cd50049] Add missing check command in initscript (Closes: #680615) * [77c9d0e] Fix typo in initscript * [a2c78a1] Stop status.cgi from listing unauthorized hosts and services in servicegroup view (CVE-2013-2214) Thanks to Jonas Meurer for the report and the patch (Closes: #714171) * [51fb59b] Backport upstream r1953 to fix downtime retention across restarts. Thanks to Didier 'OdyX' Raboud for the patch (Closes: #710356) * [c14f6cf] Deprecate Nagios1 compatible Nagios configuration * [bfc4c8d] Don't use files from docs/examples (Closes: #709957) * [abe9bc9] Update web specific packaging for apache 2.4 -- Alexander Wirt Thu, 27 Jun 2013 00:40:30 +0200 nagios3 (3.4.1-3ubuntu1) saucy; urgency=low * debian/tests: Add autopkgtest. -- Yolanda Mon, 27 May 2013 11:10:34 +0200 nagios3 (3.4.1-3) unstable; urgency=low * Fix several overflows in getcgi.cgi and history.cgi This is fix for CVE 2012-6096 (Closes: #697930) -- Alexander Wirt Sun, 27 Jan 2013 19:24:49 +0100 nagios3 (3.4.1-2) unstable; urgency=low * [265c38d] Don't call the updatecheck on debian * [4550d49] Use debians jquery instead of the shipped one * [9976373] Remove stupid date() warning in PHP and set UTC as default timezone -- Alexander Wirt Sat, 30 Jun 2012 10:44:31 +0200 nagios3 (3.4.1-1) unstable; urgency=low * [28e077b] Imported Upstream version 3.3.1 * [d5314e0] don't call updatepo in clean target * [45b3eb9] Don't remove config foo * [54e3dff] Don't fix permissions in cgi postinst * [d7be9db] Build-depend on libpng-dev (Closes: #662441) * [4c47006] Add dutch po translation (Closes: #654855) * [2b6573b] Refresh 10_p1_pl_shebang.dpatch * [316fd7a] Update 40_fix_spurious_dollar_signs_added_to_command_lines * [5ff2780] Refresh 55_strip_logarchivepath.dpatch * [811d269] Refresh 60_fix_p1.pl_patch_mini_epn.dpatch * [39a1e9c] Remove now unneeded patch 98_fix_XSS_CVE-2011-2179 * [785a4e8] Remove unneded patch 99_fix_XSS_CVE-2011-1523 * [6ce98ef] Remove unneeded patchs from 00list * [1d18266] Imported Upstream version 3.4.0 * [05584c8] Refresh patches * [58098cd] Imported Upstream version 3.4.1 * [3e9e07a] Bump standards version * [fe991e2] wrap-and-sort * [1ba78f7] Also create /var/run/nagios in cgi package (Closes: #626854) -- Alexander Wirt Sat, 16 Jun 2012 09:05:19 +0200 nagios3 (3.2.3-3) unstable; urgency=high * [9149473] Fix CVE-2011-2179: XSS via expand function in config.cgi (Closes: #629127). * [b5f30e1] Fix for CVE-2011-1523: XSS problem in statusmap.cgi (Closes: #629127) -- Alexander Wirt Sat, 04 Jun 2011 20:22:20 +0200 nagios3 (3.2.3-2) unstable; urgency=low * Fix status function of initscript * Allow deconfiguration of webservers via debconf (Closes: #591786) * Add ExecCGI for index.php (Closes: #584696) * Add danish po translation (Closes: #605520) * Add option in default file to disable nagios3 at boottime (Closes: #602490) * [c01bde3] Enable hardening. Thanks to Kees Cook (Closes: #542727) -- Alexander Wirt Sun, 22 May 2011 09:29:56 +0200 nagios3 (3.2.3-1) unstable; urgency=low * New upstream version * Remove iputils-ping from build-dep (Closes: #590552) * Add index.html to apache2.conf (Closes: #598859) * Bump standards version (No changes) -- Alexander Wirt Sat, 02 Oct 2010 19:01:32 +0200 nagios3 (3.2.1-2) unstable; urgency=low * Fix "Missing conflict with nagios3 v3.0.6-4~lenny2 (/usr/lib/cgi- bin/nagios3/extinfo.cgi": add a versioned Replaces/Breaks on nagios3 to nagios3-cgi (Closes: #585410). Make the other Replaces versioned too and also add them to the new Breaks. Thanks to Gregor Herrmann for the patch * Bump Standards version (no changes) -- Alexander Wirt Fri, 02 Jul 2010 09:09:10 +0200 nagios3 (3.2.1-1) unstable; urgency=low * New upstream version * Fix strip of logarchivepath (Closes: #578232) -- Alexander Wirt Sat, 08 May 2010 21:36:50 +0200 nagios3 (3.2.0-5) unstable; urgency=low [ Jan Wagner ] * Add Close to last changelog entry [ Alexander Wirt ] * Don't rely on nagios3-cgi in initscript * Fix init-functions logic (Closes: #561357) * Add a status interface to init (Closes: #553300) * Rework packaging based on my icinga packaging * We use debsource 1.0 -- Alexander Wirt Mon, 12 Apr 2010 21:36:13 +0200 nagios3 (3.2.0-4) unstable; urgency=low * Add nagios3-doc to Replaces in nagios3-cgi (Closes: 551813) -- Alexander Wirt Fri, 23 Oct 2009 13:30:01 +0200 nagios3 (3.2.0-3) unstable; urgency=low * Replace o with * as bullet character (Closes: #552023) -- Alexander Wirt Thu, 22 Oct 2009 22:30:50 +0200 nagios3 (3.2.0-2) unstable; urgency=medium * Remove junkbytes from apache2.conf (Closes: #544190) * Install debconf files also in arch-dep files (Closes: #549683) -- Alexander Wirt Sun, 11 Oct 2009 19:52:29 +0200 nagios3 (3.2.0-1) unstable; urgency=low * New upstream release (Closes: #542957) - Timeperiods should work as expected now (Closes: #539882) - Recovery notifications fixed (Closes: #543657) * Update standards version - Add README.source * Manpage errors fixed (Closes: #540554) * Split up the webfrontend into its own package (Closes: #479338, #485466) -- Alexander Wirt Sun, 16 Aug 2009 14:14:23 +0200 nagios3 (3.0.6-5) unstable; urgency=high * Fix Command Injection Vulnerability in statuswml.cgi. This applies for SA35543. * Bump standards version - Add -dbg package to section debug -- Alexander Wirt Mon, 29 Jun 2009 13:55:45 +0200 nagios3 (3.0.6-4) unstable; urgency=low * Fix syntax error in nagios3-common.prerm (Closes: #519341, #514168, #518884) * Call ucf with --debconf-ok in nagios3-common.postrm. Depend on ucf >= for this "feature" (Closes: #513905, #515289) * Do not fail if apache include file has been removed by the user (Closes: #515260) * Remove rw pipe even if it is a file (Closes: #495236) * Move debug log to /var/log (Closes: #502080) * Readd documentation for nagios_check_command (Closes: #508439) * Especially allow access to /etc/nagios3/stylesheets in apache2.conf (Closes: #495245) * Move homedirectory of the nagios user to /var/lib/nagios (Closes: #500709) * Adjust priority to htpass question to high -- Alexander Wirt Sat, 21 Mar 2009 09:00:47 +0100 nagios3 (3.0.6-3) unstable; urgency=low [ Alexander Wirt ] * Don't mention conf.d directories for external command checks (Closes: #431953) * Don't ship obsolete extcommands_nagios3.cfg [ Luk Claes ] * Don't fail if $apacheconf doesn't exist while removing (Closes: #512882) * Add myself to Uploaders. -- Luk Claes Sun, 25 Jan 2009 19:10:29 +0100 nagios3 (3.0.6-2) unstable; urgency=low * Fix forced single servicechecks -- Alexander Wirt Fri, 12 Dec 2008 13:51:44 +0100 nagios3 (3.0.6-1) unstable; urgency=high * New upstream version - Even more fixes for CVE-2008-5028 * Urgency high for security fixes * Add ${shlibs:Depends} (Fixes lintian error, as the epn debugger should depend on libc) * Add ${misc:Depends} to binaries (Fixes lintian warning) -- Alexander Wirt Mon, 08 Dec 2008 02:51:21 +0100 nagios3 (3.0.5-1) unstable; urgency=low [ Christian Perrier ] * Fix pending l10n issues. Debconf translations: - Italian. Closes: #505813 - Polish. Closes: #506851 [ Alexander Wirt ] * New upstream version - Adds security fix for cmd.cgi (Closes: #504894) This security problem is referenced as CVE-2008-5028 and SA32610 -- Alexander Wirt Fri, 28 Nov 2008 21:18:27 +0100 nagios3 (3.0.3-3) unstable; urgency=low [ Alexander Wirt ] * Create /var/lib/nagios3/spool/checkresults (Closes: #492201) * Refer to nagios-plugins-basic instead of nagios-plugins in commands.cfg (Closes: #493107) * Fix helper paths in contributed eventhandlers (Closes: #493790) * Fix '+' decoding in trend.cgi (Closes: #495052) * Don't fail if nagios3 is already started or not running (Closes: #499571) [ Christian Perrier ] * Fix pending l10n bugs. Debconf translations: - Brazilian Portuguese. Closes: #495225 - Russian. Closes: #499032 - Basque. Closes: #499113 - Swedish. Closes: #499343 - Finnish. Closes: #499706 -- Alexander Wirt Sun, 05 Oct 2008 12:02:20 +0200 nagios3 (3.0.3-2) unstable; urgency=medium [ Jan Wagner ] * fixing temp_file location in 52_nagios.cfg-debianize.dpatch (Closes: #491617) -- Alexander Wirt Mon, 21 Jul 2008 09:41:11 +0200 nagios3 (3.0.3-1) unstable; urgency=low [ Jan Wagner ] * readd mailx as optional dependency * add lintian override for empty dir in nagios3-doc [ Alexander Wirt ] * New upstream version (Closes: #489888) - Fixes some screwup in xodtemplate.c (Closes: #479044) * Update controlfiles since nagios3 had replaced nagios2 * Moved the *.diff mechanism to dpatch and some magic sed stuff * Debians conf.d at the end of the config useless. Move it back to all other debian specific configs * Add mini_epn to nagios3-dbg -- Alexander Wirt Fri, 18 Jul 2008 21:29:33 +0200 nagios3 (3.0.2-1) unstable; urgency=low [ Alexander Wirt ] * Remove bashism from rules file (Closes: #479324, #478412) * Set p1.pl DEBUG_LOG_PATH to /var/log/nagios3/ (Closes: #478877) * Start nagios3 in nagios3.postinst (Closes: #481334) * Add a patch from Stephane Chazelas which fixes the incluѕion of spurious $ signs into command output (Closes: #479061) [ Jan Wagner ] * New upstream release (Closes: #485439) * Fix XSS vulnerability (CVE-2007-5803). * updated cfg-cgi.cfg.diff, cfg-commands.cfg.diff and cfg-nagios.cfg.diff for new upstream release and remove version from config files (Closes: #482178) * Updating standards version to 3.8.0, no changes needed * add myself fo Uploaders * add doc-base support (Closes: #479334) * replace dependency of mailx with bsd-mailx * added Vcs- fields into source header's field * take care if killproc isn't able to stop daemon via stop target of initscript, thanks Stephen Gran for providing this fix (Closes: #479329) -- Alexander Wirt Tue, 10 Jun 2008 21:26:00 +0200 nagios3 (3.0.1-1) unstable; urgency=low * New upstream version (Closes: #475041) * Move cfg_dir=/etc/nagios3/conf.d to the end of nagios.cfg to allow overwriting variables from nagios.cfg in conf.đ/ * Disable external_commands in nagios.cfg as they are now enabled by default -- Alexander Wirt Tue, 08 Apr 2008 20:39:11 +0200 nagios3 (3.0-1) unstable; urgency=low * New upstream release (Closes: #471485) -- Alexander Wirt Wed, 06 Feb 2008 14:48:38 +0100 nagios2 (2.10-1) unstable; urgency=low * NOT RELEASED YET * New upstream release * Fix XSS vulnerability (CVS-2007-5624). Closes: #448371 * Adapt sample config patches * Fix permissions on /var/log/nagios2/archives. Thanks to Michael Feger. Closes: #429820 * Fix typo in localhost_nagios2.cfg. Thanks to Justin Pryzby. Closes: #430477. * New Portuguese debconf translations from Rui Branco and the Traduz team. Closes: #436155. * Rearrange apache2.conf so that the Stylesheet alias path is actually used. Thanks to Joerg Dorchain. This may fix #420009 * Relax dependency on web server to Recommends. Depend on apache2-utils since we need htpasswd. Thanks to Japp Eldering. Closes: #413519 * Move stylesheets to /etc, create a symlink. Thanks to Joerg Dorchain and Steve Greenland. Closes: #420011 * Fix suboptimal formatting of package descriptions. Thanks to Sam Morris. Closes: 413494 * debian/control: re-order Source stanza according to dpkg 1.14.7, add Homepage field. We're going to leave in the Upstream URL in the package description for a while though. * Unmark package names for translation in debconf templates. Thanks to Kobayashi Noritada. Closes: #413127 [Jan Wagner] * fixed README.Debian about setting check_external_commands=1 (closes: #431953). -- Marc Haber Wed, 31 Oct 2007 19:47:31 +0100 nagios2 (2.9-1) unstable; urgency=low * New upstream release (closes: #414647). * new dutch (nl) debconf translations from cobaco (closes: #414762). * new japanese (ja) debconf translations from Kobayashi Noritada (closes: #413122). * Fix wrong path to debian.gd2 in extinfo_nagios2.cfg (closes: #423639). [Sean Finney] * various fixes/cleanups in init script should resolve issues with pidfile handling etc (closes: #416763, #397289, #414050, #412980, #415752). * Merge config file changes. * add note for pam_tmpdir users about setting TMPDIR in /etc/nagios2/default. thanks to Richard A Nelson (closes: #414652) -- sean finney Sat, 09 Jun 2007 11:27:42 +0200 nagios2 (2.6-3) unstable; urgency=low [Marc Haber] * services_nagios2.cfg: add default notification_interval 0 clauses to make it clear that nagios won't re-notify by default. Thanks to Jan Wagner. * Add symlink from /usr/share/nagios2/htdocs/docs to /usr/share/doc/nagios2-doc/html as suggested by Mike O'Connor. Closes: #408141 * init script: use awk -v FS. Thanks to Mike O'Connor. Closes: #408136 * init script: remove commented sleep-rekill loop which was confusing to some users. It has never been enabled in nagios2 and is probably left over from whatever package the original nagios2 init script was taken from. Closes: #408231 * run debconf-updatepo and commit new files [Sean Finney] * added Build-Depends on dpkg-dev >= 1.13.19, since our use of source:Version in debian/control requires it. -- Marc Haber Sat, 24 Feb 2007 10:25:52 +0100 nagios2 (2.6-2) unstable; urgency=low * new german debconf translations from Matthias Julius (closes: #400700). * remove check_dns from commands.cfg. Thanks to Dr. Tilo Levante. Closes: #402303 * nagios2-common.postinst: Take 127.0.0.1 as default default gateway. * nagios2-common.postrm: Send dpkg-statoverride standard error to the bin to avoid a row of "No override present" error messages on purge. * Ship our own resource.cfg with nagios2-common -- Marc Haber Sat, 16 Dec 2006 09:24:36 +0100 nagios2 (2.6-1) unstable; urgency=low * new upstream version * adapt configuration patches * adapt installation lists * Add README reference to nagios.cfg regarding the command file * Add no-op logrotate file to really disable logrorate log rotation. Closes: #396173, #401546 -- Marc Haber Wed, 6 Dec 2006 10:57:29 +0100 nagios2 (2.5-3) unstable; urgency=low [sean finney] * add explicit DirectoryIndex to apache configuration, thanks to Heiko Schlittermann for suggesting this (closes: #396100). * the previous dpatch for the fixed path in submit_check_result wasn't actually set to apply (closes: #396661). thanks to Richard Nelson for pointing this out again. -- sean finney Sat, 04 Nov 2006 16:45:10 +0100 nagios2 (2.5-2) unstable; urgency=low [Marc Haber] * Fix wrong path to nagios.cmd in /usr/share/nagios2/plugins/eventhandlers/submit_check_result. Thanks to Richard A Nelson. Closes: #386152 * add po-debconf to build-depends * fix Source:version dependencies to make lintian and bin-NMUs happier. * Create pid directory with -p to allow /var/run to not exist. Closes: #390155 [sean finney] * revert to using nagios2's built-in logrotating features, since using logrotate caused problems (closes: #388473, #395316). * don't unconditionally use ucf in postrm script (closes: #389973). * new spanish debconf translates from Rudy Godoy (closes: #394958). -- Marc Haber Sat, 28 Oct 2006 10:13:54 +0000 nagios2 (2.5-1) unstable; urgency=low * new upstream version. (mh) Closes: #382431 * Now gracefully exits with meaningful log entry if p1.pl is not found. Thanks to Matt Brown. Closes: #368684 * -dbg package is extra. Thanks to Joerg Jaspert. * lsb-ize init script. Closes: #377028 * Versioned recommends on nagios-images >> 0.1, since n-i 0.2 has symlinks fixing the issue mentioned by Herbert Straub. Closes: #358922. * remove _ from Default: false in boolean template. Thanks to Christian Perrier. (mh) Closes: #371200 * Add dh_perl invocation to debian/rules * Add #!/usr/bin/perl to p1.pl to properly generate perl dependency. * make p1.pl executeable to make lintian happy * Fix totally mixed up Section: and Priority: for binary packages. * Add logrotate file * Stop marking the Default fiels as translateable, fix translations. Thanks to Thomas Huriaux. * Fix path to debian.png in example extinfo file. Thanks to Peter Schwindt. Closes: #355552 * New French (fr) translation. Thanks to Steve Petruzzello. Closes: #374418 * New Czech (cs) translation. Thanks to Martin Šín. Closes: #382924 -- Marc Haber Wed, 16 Aug 2006 10:11:48 +0000 nagios2 (2.4-1) unstable; urgency=low * new upstream version. (mh) Closes: #369801 * now use install-unstripped target instead of 10no-strip patch. * remove 20-handle-master-proc-event patch, fixed upstream. -- Marc Haber Thu, 1 Jun 2006 17:18:38 +0000 nagios2 (2.3.1-1) unstable; urgency=low [Marc Haber] * new upstream version * CVE-2006-2489 was already fixed locally in 2.3-1 * remove dpatch * Add nagios2-dbg package * Add 10no-strip patch to keep upstream Makefiles from stripping binaries before we can build the -dbg package. * Fix typos in debian/control * Standards-Version: 3.7.2 (no changes necessary thanks to the cgi-lib policy having been reverted) * Fix short description of nagios2/adminpassword-mismatch to make lintian happy. * Fix upstream syntax error in handle-master-proc-event script * move contrib stuff to /usr/share to avoid having scripts in /usr/lib * README.Debian: fix external command procedure [sean finney] * posterity: the previous release 2.3-1 also included a fix for CVE-2006-2489, as we were the ones who discovered it while fixing the previous vulnerability :) * include the needed function from the webapps-common httpd stub inline in the config script, as fresh installations may not have the file available (if using apt instead of dpkg, for example). Closes: #353966. * remove "do not translate" remark and incorporate Christian Perrier's suggested modifications to the debconf templates (closes: #352771). -- Marc Haber Mon, 29 May 2006 14:12:44 +0000 nagios2 (2.3-1) unstable; urgency=high * new upstream version * Fix nagios2 restart in init script. Thanks to Jim Jensen. (mh) Closes: #360778 * Fix /usr/share/doc/nagios2/html symlink. Thanks to Matt Zagrabelny. (mh) Closes: #360998 * Create pid file directory dynamically in init script. Thanks to Herbert Straub. (mh) Closes: #361239 * Honor locally set file/dir permissions in postinst, fixing policy 10.9.1 compliance. Thanks to Heiko Schlittermann. (mh) Closes: #361956 [sean finney] * This upstream version addresses a security issue raised in CVE-2006-2162, wrt malcious use of Content-Length headers on cgi scripts. This debian release includes further refinement of this fix (10_CVE-2006-2162_content-length.dpatch) as we believe it's still theoretically possible to exploit the issue via integer overflow. Closes: #366683. * change eventhandlers dir to /usr/lib/nagios2/plugins/eventhandlers, and make sure they're included (closes: #363152). * security release, so urgency bumped. -- sean finney Fri, 12 May 2006 15:32:01 +0200 nagios2 (2.2-1) unstable; urgency=low * new upstream version * fix wrong permissions on /var/lib/nagios2, 750 prevents web interface from committing external commands -- Marc Haber Fri, 21 Apr 2006 11:09:59 +0000 nagios2 (2.1-1) unstable; urgency=low * new upstream version * nagios2.prerm: replace "|| exit 0" with "|| true" (see #337664, but we had the offending code in the script verbatim) * move nagios2-doc to section docs * re-work notifications to be slightly more verbose. For example, an acknowledgement notification now actually includes the comment. -- Marc Haber Fri, 31 Mar 2006 11:44:49 +0000 nagios2 (2.0-1) unstable; urgency=low * First build with upstream's release version [sean finney] * cleanup/simplification of http admin username/password handling in maintscripts. * documentation in README.Debian regarding this. * fix in the determining $servers in postinst. * the directory removals in the postrm have been updated to reflect the nagios2 directory layout. * conditionally stop the nagios2 daemon in the nagios2 packages' prerm, for cases where it is being purged before nagios2-common's prerm does so (the latter will not stop it otherwise). * added Joerg Jaspert to the Uploaders field. * fix to httpd configuration to properly detect apache2 processes * remove numeric NNN_ from conffiles in conf.d, since it doesn't affect the order. * change the location of the embedded perl interpreter p1.pl to /usr/lib/nagios2. * a few other misc FHS related path changes. * added support for autodetecting the default route and creating a host object for it (and registering it in a seperate ucf managed file) * a few misc additions/edits to our default configuration. * added manpages for nagios2(8) and nagios2stats(8) -- sean finney Sun, 12 Feb 2006 11:19:28 +0100 nagios2 (0rc2-2.0-2) experimental; urgency=low * re-work default configuration: split local.cfg into distinct files in /etc/nagios2/conf.d from debian/conf.d * add lintian override for resource.cfg permissions != 644 * add linda override for outdated config.(guess|sub), we update at build time, keeping the new files outside of Debian .diff -- Marc Haber Mon, 23 Jan 2006 16:22:08 +0000 nagios2 (0rc2-2.0-1) experimental; urgency=low * another "not quite ready for the limelight" release to experimental, with nagios2-doc split off to a seperate package. thus this will once again traverse NEW... [marc haber] * This package's debconf templates are currently work in progress and _will_ change in the very near future. DO NOT TRANSLATE! * Add "do not translate" template to debian/templates * remove boilerplate instructions from README.Debian * move debian/copyright to the right place * introduce nagios2-doc and populate it * add myself to uploaders * make nagios2stats out of nagios2tats * build-depend on autotools-dev, use mechanisms from /usr/share/doc/autotools-dev/examples/rules.gz to update config.* on build * fix permissions on /var/log/nagios2 to allow web interface to access event log * fix rw2 to rw in postinst * Fix location of external command file * Document "how to enable external commands" in README.Debian -- sean finney Sun, 22 Jan 2006 19:31:35 +0100 nagios2 (0rc2-2.0-0) experimental; urgency=low * this version is targeted as a prelease candidate for experimental. [sean finney] * update to upstream rc2 * after the change of course on the nagios vs nagios2 issue, a few (hopefully) final naming changes were made in the build process. * updated dependencies to reflect that nagios2 does not conflict with nagios 1.x. -- sean finney Sun, 15 Jan 2006 01:55:14 +0100 nagios2 (0rc1-2.0-0) unreleased; urgency=low [sean finney] * initial version (closes: #341748). until nagios2 officially releases, we'll use the 0$rcfoo-$version numbering scheme so that we never find ourselves stuck needing to muck with the epoch. * debconf/web configuration, via scripts borrowed from the unreleased webapps-common package. * improvements to standard apache configuration * various fixes to default configuration to ensure that the nagios/nagios2 namespace is clearly defined. [marc haber] * lots of initial packaging work. init script, user management, etc. -- sean finney Sat, 03 Dec 2005 15:29:40 +0100 debian/nagios3stats.80000664000000000000000000000273611614535770011724 0ustar .TH nagios3stats "8" "February 2006" "sean finney " "nagios" .SH NAME nagios3stats \- report statistics information from the nagios system .SH SYNOPSIS .B nagios3stats [\-hVL] [\-c config] [\-m] [\-d] .br .SH DESCRIPTION .B nagios3stats Is a program designed to provide information on the running nagios system. It can provide a brief summary of information, or it can be used to export specific information about the nagios system into an MRTG-compatible format. For more information please consult the nagios online documentation available at http://www.nagios.org or the documentation available with your nagios server's web page. .SH OPTIONS .TP \fB\-c\fR|\-\-config=FILE The main configuration file. On debian systems this defaults to /etc/nagios3/nagios.cfg .TP \fB\-m\fR|\-\-mrtg Print output in MRTG-compatible format. For more details run nagios3stats with \-\-help .TP \fB\-d\fR|\-\-data=VARS Comma-seperated list of variables to output in MRTG format. For more details run nagios3stats with \-\-help. .TP \fB\-h\fR|\-\-help A helpful usage message .TP \fB\-V\fR|\-\-version Print version information .TP \fB\-L\fR|\-\-license Print license details .SH FILES .TP .IP /etc/nagios3 Default configuration directory for nagios3 .SH AUTHOR nagios3 is written and maintained by Ethan Galstad . This manual page was written by sean finney for the Debian GNU/Linux operating system (but it may be freely used, modified, and redistributed by others). debian/nagios3-cgi.dirs0000664000000000000000000000010612261622660012156 0ustar etc/nagios3/stylesheets usr/share/nagios3/htdocs/ssi usr/lib/cgi-bin debian/nagios3.lintian-overrides0000664000000000000000000000007011614535770014121 0ustar usr-share-doc-symlink-without-dependency nagios3-common debian/nagios3-doc.links0000664000000000000000000000016311614535770012351 0ustar usr/share/nagios3/htdocs/docs usr/share/doc/nagios3-doc/html etc/nagios3/stylesheets usr/share/nagios3/stylesheets debian/nagios3-common.examples0000664000000000000000000000024112162741135013560 0ustar sample-config/template-object/commands.cfg sample-config/template-object/localhost.cfg sample-config/resource.cfg sample-config/nagios.cfg sample-config/cgi.cfg debian/source/0000775000000000000000000000000012241100221010451 5ustar debian/source/format0000664000000000000000000000001412226314524011677 0ustar 3.0 (quilt) debian/compat0000664000000000000000000000000211614535770010377 0ustar 7 debian/resource.cfg0000664000000000000000000000241511614535770011513 0ustar ########################################################################### # # RESOURCE.CFG - Resource File for Nagios # # You can define $USERx$ macros in this file, which can in turn be used # in command definitions in your host config file(s). $USERx$ macros are # useful for storing sensitive information such as usernames, passwords, # etc. They are also handy for specifying the path to plugins and # event handlers - if you decide to move the plugins or event handlers to # a different directory in the future, you can just update one or two # $USERx$ macros, instead of modifying a lot of command definitions. # # The CGIs will not attempt to read the contents of resource files, so # you can set restrictive permissions (600 or 660) on them. # # Nagios supports up to 32 $USERx$ macros ($USER1$ through $USER32$) # # Resource files may also be used to store configuration directives for # external data sources like MySQL... # ########################################################################### # Sets $USER1$ to be the path to the plugins $USER1$=/usr/lib/nagios/plugins # Sets $USER2$ to be the path to event handlers #$USER2$=/usr/lib/nagios/plugins/eventhandlers # Store some usernames and passwords (hidden from the CGIs) #$USER3$=someuser #$USER4$=somepassword debian/nagios3-common.lintian-overrides0000664000000000000000000000014511614535770015412 0ustar non-standard-file-perm etc/nagios3/resource.cfg 0600 != 0644 dir-or-file-in-var-run var/run/nagios3/ debian/patches/0000775000000000000000000000000013115511403010611 5ustar debian/patches/CVE-2013-7xxx.patch0000664000000000000000000001252013067526757013576 0ustar commit 0e733d40f8abf09bd0c0e51c2102964fc2331e97 Author: Eric Stanley Date: Fri Dec 20 13:30:26 2013 -0600 Backport of commit d97e03f32741a7d851826b03ed73ff4c9612a866 (Fixed minor vulnerability where a custom query could crash the CGI.) #diff --git a/Changelog b/Changelog #index 5511b19..597125f 100644 #--- a/Changelog #+++ b/Changelog #@@ -2,6 +2,10 @@ # Nagios 3.x Change Log # ##################### # #+3.5.2 - xx/xx/xxxx #+------------------ #+* Backport of commit d97e03f32741a7d851826b03ed73ff4c9612a866 (Fixed minor vulnerability where a custom query could #crash the CGI.) #+ # 3.5.1 - 08/30/2013 # ------------------ # * Added handler for SIGXFSZ signal (Eric Stanley) diff --git a/cgi/avail.c b/cgi/avail.c index db9f0b5..008c9d2 100644 --- a/cgi/avail.c +++ b/cgi/avail.c @@ -1141,7 +1141,6 @@ int process_cgivars(void) { /* do some basic length checking on the variable identifier to prevent buffer overflows */ if(strlen(variables[x]) >= MAX_INPUT_BUFFER - 1) { - x++; continue; } diff --git a/cgi/cmd.c b/cgi/cmd.c index 6fc2939..0292029 100644 --- a/cgi/cmd.c +++ b/cgi/cmd.c @@ -321,7 +321,6 @@ int process_cgivars(void) { /* do some basic length checking on the variable identifier to prevent buffer overflows */ if(strlen(variables[x]) >= MAX_INPUT_BUFFER - 1) { - x++; continue; } diff --git a/cgi/config.c b/cgi/config.c index ae1c693..9b7b32c 100644 --- a/cgi/config.c +++ b/cgi/config.c @@ -386,7 +386,6 @@ int process_cgivars(void) { /* do some basic length checking on the variable identifier to prevent buffer overflows */ if(strlen(variables[x]) >= MAX_INPUT_BUFFER - 1) { - x++; continue; } diff --git a/cgi/extinfo.c b/cgi/extinfo.c index e2a5fda..147ddfa 100644 --- a/cgi/extinfo.c +++ b/cgi/extinfo.c @@ -651,7 +651,6 @@ int process_cgivars(void) { /* do some basic length checking on the variable identifier to prevent buffer overflows */ if(strlen(variables[x]) >= MAX_INPUT_BUFFER - 1) { - x++; continue; } diff --git a/cgi/histogram.c b/cgi/histogram.c index 1095314..f0be035 100644 --- a/cgi/histogram.c +++ b/cgi/histogram.c @@ -1069,7 +1069,6 @@ int process_cgivars(void) { /* do some basic length checking on the variable identifier to prevent buffer overflows */ if(strlen(variables[x]) >= MAX_INPUT_BUFFER - 1) { - x++; continue; } diff --git a/cgi/notifications.c b/cgi/notifications.c index 633e1f2..28df8ea 100644 --- a/cgi/notifications.c +++ b/cgi/notifications.c @@ -358,7 +358,6 @@ int process_cgivars(void) { /* do some basic length checking on the variable identifier to prevent buffer overflows */ if(strlen(variables[x]) >= MAX_INPUT_BUFFER - 1) { - x++; continue; } diff --git a/cgi/outages.c b/cgi/outages.c index ee274ba..57285bc 100644 --- a/cgi/outages.c +++ b/cgi/outages.c @@ -269,7 +269,6 @@ int process_cgivars(void) { /* do some basic length checking on the variable identifier to prevent buffer overflows */ if(strlen(variables[x]) >= MAX_INPUT_BUFFER - 1) { - x++; continue; } diff --git a/cgi/status.c b/cgi/status.c index eb3dd94..4c82505 100644 --- a/cgi/status.c +++ b/cgi/status.c @@ -600,7 +600,6 @@ int process_cgivars(void) { /* do some basic length checking on the variable identifier to prevent buffer overflows */ if(strlen(variables[x]) >= MAX_INPUT_BUFFER - 1) { - x++; continue; } diff --git a/cgi/statusmap.c b/cgi/statusmap.c index 72f1cf3..61f87bf 100644 --- a/cgi/statusmap.c +++ b/cgi/statusmap.c @@ -407,7 +407,6 @@ int process_cgivars(void) { /* do some basic length checking on the variable identifier to prevent buffer overflows */ if(strlen(variables[x]) >= MAX_INPUT_BUFFER - 1) { - x++; continue; } diff --git a/cgi/statuswml.c b/cgi/statuswml.c index 2d608f0..cc853d1 100644 --- a/cgi/statuswml.c +++ b/cgi/statuswml.c @@ -235,8 +235,13 @@ int process_cgivars(void) { for(x = 0; variables[x] != NULL; x++) { + /* do some basic length checking on the variable identifier to prevent buffer overflows */ + if(strlen(variables[x]) >= MAX_INPUT_BUFFER - 1) { + continue; + } + /* we found the hostgroup argument */ - if(!strcmp(variables[x], "hostgroup")) { + else if(!strcmp(variables[x], "hostgroup")) { display_type = DISPLAY_HOSTGROUP; x++; if(variables[x] == NULL) { diff --git a/cgi/summary.c b/cgi/summary.c index 810b1af..1e7f977 100644 --- a/cgi/summary.c +++ b/cgi/summary.c @@ -761,7 +761,6 @@ int process_cgivars(void) { /* do some basic length checking on the variable identifier to prevent buffer overflows */ if(strlen(variables[x]) >= MAX_INPUT_BUFFER - 1) { - x++; continue; } diff --git a/cgi/trends.c b/cgi/trends.c index 3d16af5..77bac89 100644 --- a/cgi/trends.c +++ b/cgi/trends.c @@ -1271,7 +1271,6 @@ int process_cgivars(void) { /* do some basic length checking on the variable identifier to prevent buffer overflows */ if(strlen(variables[x]) >= MAX_INPUT_BUFFER - 1) { - x++; continue; } diff --git a/contrib/daemonchk.c b/contrib/daemonchk.c index 78716e5..9bb6c4b 100644 --- a/contrib/daemonchk.c +++ b/contrib/daemonchk.c @@ -174,7 +174,6 @@ static int process_cgivars(void) { /* do some basic length checking on the variable identifier to prevent buffer overflows */ if(strlen(variables[x]) >= MAX_INPUT_BUFFER - 1) { - x++; continue; } } debian/patches/nagios3/0000775000000000000000000000000012162740353012165 5ustar debian/patches/99_security_status_cgi_servicegroup.patch0000664000000000000000000000277712226314527021073 0ustar Author: Jonas Meurer Description: Stop cgi-bin/status.c from listing unauthorized hosts and services in servicegroup view Upstream bugreport: http://tracker.nagios.org/view.php?id=456 --- a/cgi/status.c +++ b/cgi/status.c @@ -2547,6 +2547,10 @@ if(temp_host == NULL) continue; + /* make sure user has rights to view this host */ + if(is_authorized_for_host(temp_host, ¤t_authdata) == FALSE) + continue; + /* skip this if it isn't a new host... */ if(temp_host == last_host) continue; @@ -2752,6 +2756,10 @@ if(temp_host == NULL) continue; + /* make sure user has rights to view this host */ + if(is_authorized_for_host(temp_host, ¤t_authdata) == FALSE) + continue; + /* skip this if it isn't a new host... */ if(temp_host == last_host) continue; @@ -2936,6 +2944,10 @@ if(temp_service == last_service) continue; + /* make sure user has rights to view this service */ + if(is_authorized_for_service(temp_service, ¤t_authdata) == FALSE) + continue; + /* find the service status */ temp_servicestatus = find_servicestatus(temp_service->host_name, temp_service->description); if(temp_servicestatus == NULL) @@ -3290,6 +3302,10 @@ if(temp_host == NULL) continue; + /* make sure user has rights to view this host */ + if(is_authorized_for_host(temp_host, ¤t_authdata) == FALSE) + continue; + /* get the status of the host */ temp_hoststatus = find_hoststatus(temp_host->name); if(temp_hoststatus == NULL) debian/patches/fix_permissions_for_hostgroups_reports.patch0000664000000000000000000000367413106320120022000 0ustar Description: Fix permissions for hostgroups reports . Fixes a bug where users could view other servers in the hostgroup even if those servers were not associated to the user's contactgroup. http://tracker.nagios.org/view.php?id=619 (LP: #1686768). . Author: John C. Frickson Origin: upstream, https://github.com/NagiosEnterprises/nagioscore/commit/d1b3a07f Bug: http://tracker.nagios.org/view.php?id=619 Bug-Ubuntu: https://launchpad.net/bugs/1686768 --- nagios3-3.5.1.orig/cgi/status.c +++ nagios3-3.5.1/cgi/status.c @@ -3606,6 +3606,10 @@ void show_hostgroup_overview(hostgroup * if(temp_host == NULL) continue; + /* make sure user has rights to view this host */ + if(is_authorized_for_host(temp_host, ¤t_authdata) == FALSE) + continue; + /* find the host status */ temp_hoststatus = find_hoststatus(temp_host->name); if(temp_hoststatus == NULL) @@ -3989,6 +3993,10 @@ void show_hostgroup_host_totals_summary( if(temp_host == NULL) continue; + /* make sure user has rights to view this host */ + if(is_authorized_for_host(temp_host, ¤t_authdata) == FALSE) + continue; + /* find the host status */ temp_hoststatus = find_hoststatus(temp_host->name); if(temp_hoststatus == NULL) @@ -4160,6 +4168,10 @@ void show_hostgroup_service_totals_summa if(temp_host == NULL) continue; + /* make sure user has rights to view this host */ + if(is_authorized_for_host(temp_host, ¤t_authdata) == FALSE) + continue; + /* see if this service is associated with a host in the specified hostgroup */ if(is_host_member_of_hostgroup(temp_hostgroup, temp_host) == FALSE) continue; @@ -4515,6 +4527,10 @@ void show_hostgroup_grid(hostgroup *temp if(temp_host == NULL) continue; + /* make sure user has rights to view this host */ + if(is_authorized_for_host(temp_host, ¤t_authdata) == FALSE) + continue; + /* grab macros */ grab_host_macros_r(mac, temp_host); debian/patches/series0000664000000000000000000000070313115511403012026 0ustar 10_p1_pl_shebang.patch 40_fix_spurious_dollar_signs_added_to_command_lines.patch 50_cgi.cfg-debianize.patch 51_commands.cfg-debianize.patch 52_nagios.cfg-debianize.patch 55_strip_logarchivepath.patch 60_fix_p1.pl_patch_mini_epn.patch 70_fix_eventhandler_paths.patch 80_dont_call_home.patch 99_fix_php_warning.patch CVE-2013-7xxx.patch CVE-2014-1878.patch CVE-2016-9566.patch fix_permissions_for_hostgroups_reports.patch CVE-2016-9566-regression.patch debian/patches/55_strip_logarchivepath.patch0000664000000000000000000000113012226314526016370 0ustar Author: Omni Flux Description: stripping the log_archive_path value from cgi.cfg (#578232) --- a/cgi/cgiutils.c +++ b/cgi/cgiutils.c @@ -500,7 +500,7 @@ temp_buffer = strtok(NULL, "\n"); strncpy(log_archive_path, (temp_buffer == NULL) ? "" : temp_buffer, sizeof(log_archive_path)); log_archive_path[sizeof(log_archive_path) - 1] = '\x0'; - strip(physical_html_path); + strip(log_archive_path); if(log_archive_path[strlen(log_archive_path) - 1] != '/' && (strlen(log_archive_path) < sizeof(log_archive_path) - 1)) strcat(log_archive_path, "/"); } debian/patches/CVE-2014-1878.patch0000664000000000000000000000230713067526763013267 0ustar #! /bin/sh /usr/share/dpatch/dpatch-run ## From: Markus Koschany ## Date: Sat, 7 May 2016 16:39:02 +0200 ## Subject: CVE-2014-1878 ## ## A potential buffer overflow vulnerability was reported for Icinga and Nagios is ## also affected. This vulnerability is caused due to a boundary error in the ## cmd_submitf() function. See also ## ## https://bugzilla.redhat.com/show_bug.cgi?id=CVE-2014-1878 ## ## Origin: https://dev.icinga.org/issues/5434 ## Origin: https://dev.icinga.org/projects/icinga-core/repository/revisions/eedf4f7d88cdc50843572224eb38a2f5c78a2dc5/diff/ @DPATCH@ Index: nagios3-3.5.1.dfsg/cgi/cmd.c =================================================================== --- nagios3-3.5.1.dfsg.orig/cgi/cmd.c 2017-03-31 15:20:39.941248876 -0400 +++ nagios3-3.5.1.dfsg/cgi/cmd.c 2017-03-31 15:20:39.937248823 -0400 @@ -1922,14 +1922,14 @@ return ERROR; len = snprintf(cmd, sizeof(cmd) - 1, "[%lu] %s;", time(NULL), command); - if(len < 0) + if(len < 0 || len >= sizeof(cmd)) return ERROR; if(fmt) { va_start(ap, fmt); len2 = vsnprintf(&cmd[len], sizeof(cmd) - len - 1, fmt, ap); va_end(ap); - if(len2 < 0) + if(len2 < 0 || len2 >= sizeof(cmd)-len) return ERROR; } debian/patches/10_p1_pl_shebang.patch0000664000000000000000000000035612226314524014647 0ustar Author: Marc Haber Description: Fix shebang of perl interpreter --- a/p1.pl +++ b/p1.pl @@ -1,4 +1,6 @@ - package Embed::Persistent; +#!/usr/bin/perl + +package Embed::Persistent; # p1.pl for Nagios debian/patches/99_fix_php_warning.patch0000664000000000000000000000074612261634355015361 0ustar Author: Alexander Wirt Description: No description. --- a/html/index.php +++ b/html/index.php @@ -8,6 +8,7 @@ Description: Call p1.pl from /usr/lib/nagios3 --- a/contrib/mini_epn.c +++ b/contrib/mini_epn.c @@ -19,7 +19,7 @@ #endif */ - char *embedding[] = { "", "p1.pl" }; + char *embedding[] = { "", "/usr/lib/nagios3/p1.pl" }; char *plugin_output ; char fname[MAX_INPUT_CHARS]; char *args[] = {"", "0", "", "", NULL }; debian/patches/50_cgi.cfg-debianize.patch0000664000000000000000000000233012226314525015374 0ustar Author: Alexander Wirt Description: Debianize cgi.cfg --- a/sample-config/cgi.cfg.in +++ b/sample-config/cgi.cfg.in @@ -43,7 +43,7 @@ # Values: 0 = disables context-sensitive help # 1 = enables context-sensitive help -show_context_help=0 +show_context_help=1 @@ -55,7 +55,22 @@ use_pending_states=1 +# NAGIOS PROCESS CHECK COMMAND +# This is the full path and filename of the program used to check +# the status of the Nagios process. It is used only by the CGIs +# and is completely optional. However, if you don't use it, you'll +# see warning messages in the CGIs about the Nagios process +# not running and you won't be able to execute any commands from +# the web interface. The program should follow the same rules +# as plugins; the return codes are the same as for the plugins, +# it should have timeout protection, it should output something +# to STDIO, etc. +# +# Note: The command line for the check_nagios plugin below may +# have to be tweaked a bit, as different versions of the plugin +# use different command line arguments/syntaxes. +nagios_check_command=/usr/lib/nagios/plugins/check_nagios /var/cache/nagios3/status.dat 5 '/usr/sbin/nagios3' # AUTHENTICATION USAGE debian/patches/40_fix_spurious_dollar_signs_added_to_command_lines.patch0000664000000000000000000000075312226314524024163 0ustar Author: Alexander Wirt Description: Fixes the output of spurious $ signs in commandoutput (#480001) --- a/common/macros.c +++ b/common/macros.c @@ -221,7 +221,8 @@ *output_buffer = (char *)realloc(*output_buffer, strlen(*output_buffer) + strlen(temp_buffer) + 3); strcat(*output_buffer, "$"); strcat(*output_buffer, temp_buffer); - strcat(*output_buffer, "$"); + if (buf_ptr!=NULL) + strcat(*output_buffer,"$"); } /* insert macro */ debian/patches/70_fix_eventhandler_paths.patch0000664000000000000000000000714212226314526016701 0ustar Author: Alexander Wirt Description: Fixes paths for all contributed eventhandlers --- a/contrib/eventhandlers/disable_active_service_checks +++ b/contrib/eventhandlers/disable_active_service_checks @@ -16,7 +16,7 @@ printfcmd="/usr/bin/printf" -CommandFile="/usr/local/nagios/var/rw/nagios.cmd" +CommandFile="/var/lib/nagios3/rw/nagios.cmd" # get the current date/time in seconds since UNIX epoch datetime=`date +%s` --- a/contrib/eventhandlers/disable_notifications +++ b/contrib/eventhandlers/disable_notifications @@ -14,7 +14,7 @@ printfcmd="/usr/bin/printf" -CommandFile="/usr/local/nagios/var/rw/nagios.cmd" +CommandFile="/var/lib/nagios3/rw/nagios.cmd" # get the current date/time in seconds since UNIX epoch datetime=`date +%s` --- a/contrib/eventhandlers/distributed-monitoring/obsessive_svc_handler +++ b/contrib/eventhandlers/distributed-monitoring/obsessive_svc_handler @@ -21,7 +21,7 @@ # # Location of the submit_check_result_via_nsca script -SubmitCmd="/usr/local/nagios/libexec/eventhandlers/submit_check_result_via_nsca" +SubmitCmd="/usr/share/nagios3/plugins/eventhandlers/distributed-monitoring/submit_check_result_via_nsca" # Convert the state string to the corresponding return code return_code=-1 --- a/contrib/eventhandlers/distributed-monitoring/submit_check_result_via_nsca +++ b/contrib/eventhandlers/distributed-monitoring/submit_check_result_via_nsca @@ -28,8 +28,8 @@ printfcmd="/usr/bin/printf" -NscaBin="/usr/local/nagios/libexec/send_nsca" -NscaCfg="/usr/local/nagios/etc/send_nsca.cfg" +NscaBin="/usr/sbin/send_nsca" +NscaCfg="/etc/send_nsca.cfg" NagiosHost="nagioshost" # Fire the data off to the NSCA daemon using the send_nsca script --- a/contrib/eventhandlers/enable_active_service_checks +++ b/contrib/eventhandlers/enable_active_service_checks @@ -16,7 +16,7 @@ printfcmd="/usr/bin/printf" -CommandFile="/usr/local/nagios/var/rw/nagios.cmd" +CommandFile="/var/lib/nagios3/rw/nagios.cmd" # get the current date/time in seconds since UNIX epoch datetime=`date +%s` --- a/contrib/eventhandlers/enable_notifications +++ b/contrib/eventhandlers/enable_notifications @@ -14,7 +14,7 @@ printfcmd="/usr/bin/printf" -CommandFile="/usr/local/nagios/var/rw/nagios.cmd" +CommandFile="/var/lib/nagios3/rw/nagios.cmd" # get the current date/time in seconds since UNIX epoch datetime=`date +%s` --- a/contrib/eventhandlers/redundancy-scenario1/handle-master-host-event +++ b/contrib/eventhandlers/redundancy-scenario1/handle-master-host-event @@ -10,10 +10,10 @@ # Location of the echo and mail commands echocmd="/bin/echo" -mailcmd="/bin/mail" +mailcmd="/usr/bin/mail" # Location of the event handlers -eventhandlerdir="/usr/local/nagios/libexec/eventhandlers" +eventhandlerdir="/usr/share/nagios3/plugins/eventhandlers" # Only take action on hard host states... --- a/contrib/eventhandlers/redundancy-scenario1/handle-master-proc-event +++ b/contrib/eventhandlers/redundancy-scenario1/handle-master-proc-event @@ -10,10 +10,10 @@ # Location of the echo and mail commands echocmd="/bin/echo" -mailcmd="/bin/mail" +mailcmd="/usr/bin/mail" # Location of the event handlers -eventhandlerdir="/usr/local/nagios/libexec/eventhandlers" +eventhandlerdir="/usr/share/nagios3/plugins/eventhandlers" # Only take action on hard service states... --- a/contrib/eventhandlers/submit_check_result +++ b/contrib/eventhandlers/submit_check_result @@ -24,7 +24,7 @@ echocmd="/bin/echo" -CommandFile="/usr/local/nagios/var/rw/nagios.cmd" +CommandFile="/var/lib/nagios3/rw/nagios.cmd" # get the current date/time in seconds since UNIX epoch datetime=`date +%s` debian/patches/CVE-2016-9566.patch0000664000000000000000000000675113067526767013306 0ustar #! /bin/sh /usr/share/dpatch/dpatch-run ## CVE-2016-9566.patch.dpatch by Antoine Beaupré ## ## All lines beginning with `## DP:' are a description of the patch. ## DP: No description. @DPATCH@ #diff -urNad '--exclude=CVS' '--exclude=.svn' '--exclude=.git' '--exclude=.arch' '--exclude=.hg' '--exclude=_darcs' '--#exclude=.bzr' nagios3-3.4.1~/Changelog nagios3-3.4.1/Changelog #--- nagios3-3.4.1~/Changelog 2012-05-11 14:29:05.000000000 -0400 #+++ nagios3-3.4.1/Changelog 2016-12-16 14:24:16.000000000 -0500 #@@ -7,6 +7,12 @@ # FIXES # * Double quotes in check_command definition break functionality (#332, reverts #86) # #+4.2.x - xxxx-xx-xx #+------------------ #+SECURITY FIXES #+* Fixed another root privilege escalation (CVE-2016-9566) Thanks for bringing this #+ to our attention go to Dawid Golunski (http://legalhackers.com). #+ # # 3.4.0 - 05/04/2012 # ------------------ #diff -urNad '--exclude=CVS' '--exclude=.svn' '--exclude=.git' '--exclude=.arch' '--exclude=.hg' '--exclude=_darcs' '--#exclude=.bzr' nagios3-3.4.1~/THANKS nagios3-3.4.1/THANKS #--- nagios3-3.4.1~/THANKS 2011-12-08 06:39:34.000000000 -0500 #+++ nagios3-3.4.1/THANKS 2016-12-16 14:24:16.000000000 -0500 #@@ -70,6 +70,7 @@ # * Jim Crilley # * Joel Crisp # * Jean-Eric Cuendet #+* Dawid Golunski # * Ahmon Dancy # * Jan David # * Stephen Davies Index: nagios3-3.5.1.dfsg/base/logging.c =================================================================== --- nagios3-3.5.1.dfsg.orig/base/logging.c 2017-03-31 15:20:47.057343834 -0400 +++ nagios3-3.5.1.dfsg/base/logging.c 2017-03-31 15:20:47.053343781 -0400 @@ -203,6 +203,8 @@ int write_to_log(char *buffer, unsigned long data_type, time_t *timestamp) { FILE *fp = NULL; time_t log_time = 0L; + int fh; + struct stat st; if(buffer == NULL) return ERROR; @@ -215,12 +217,31 @@ if(!(data_type & logging_options)) return OK; - fp = fopen(log_file, "a+"); + if ((fh = open(log_file, O_RDWR|O_APPEND|O_CREAT|O_NOFOLLOW, S_IRUSR|S_IWUSR)) == -1) { + if (daemon_mode == FALSE) + printf("Warning: Cannot open log file '%s' for writing\n", log_file); + return ERROR; + } + fp = fdopen(fh, "a+"); if(fp == NULL) { if(daemon_mode == FALSE) printf("Warning: Cannot open log file '%s' for writing\n", log_file); return ERROR; } + if ((fstat(fh, &st)) == -1) { + fp = NULL; + close(fh); + if (daemon_mode == FALSE) + printf("Warning: Cannot fstat log file '%s'\n", log_file); + return ERROR; + } + if (st.st_nlink != 1 || (st.st_mode & S_IFMT) != S_IFREG) { + fp = NULL; + close(fh); + if (daemon_mode == FALSE) + printf("Warning: log file '%s' has an invalid mode\n", log_file); + return ERROR; + } /* what timestamp should we use? */ if(timestamp == NULL) @@ -477,6 +498,8 @@ /* opens the debug log for writing */ int open_debug_log(void) { + int fh; + struct stat st; /* don't do anything if we're not actually running... */ if(verify_config == TRUE || test_scheduling == TRUE) @@ -486,8 +509,22 @@ if(debug_level == DEBUGL_NONE) return OK; - if((debug_file_fp = fopen(debug_file, "a+")) == NULL) + if ((fh = open(debug_file, O_RDWR|O_APPEND|O_CREAT|O_NOFOLLOW, S_IRUSR|S_IWUSR)) == -1) + return ERROR; + if((debug_file_fp = fdopen(fh, "a+")) == NULL) + return ERROR; + + if ((fstat(fh, &st)) == -1) { + debug_file_fp = NULL; + close(fh); return ERROR; + } + if (st.st_nlink != 1 || (st.st_mode & S_IFMT) != S_IFREG) { + debug_file_fp = NULL; + close(fh); + return ERROR; + } + (void)fcntl(fh, F_SETFD, FD_CLOEXEC); return OK; } debian/patches/CVE-2016-9566-regression.patch0000664000000000000000000000212313115511403015420 0ustar Description: fix event log cannot open log file Bug-Ubuntu: https://bugs.launchpad.net/ubuntu/+source/nagios3/+bug/1690380 Bug: https://github.com/NagiosEnterprises/nagioscore/issues/303 Origin: backport, https://github.com/NagiosEnterprises/nagioscore/commit/7af89e5886192dfbbb28317ed2e4883ee92e13e0 Origin: backport, https://github.com/NagiosEnterprises/nagioscore/commit/d2481ed02e2ab64f83b6e9a43a65c74e791d343e Index: nagios3-3.5.1.dfsg/base/logging.c =================================================================== --- nagios3-3.5.1.dfsg.orig/base/logging.c 2017-06-06 07:23:20.000000000 -0400 +++ nagios3-3.5.1.dfsg/base/logging.c 2017-06-06 07:27:51.517959678 -0400 @@ -217,7 +217,7 @@ int write_to_log(char *buffer, unsigned if(!(data_type & logging_options)) return OK; - if ((fh = open(log_file, O_RDWR|O_APPEND|O_CREAT|O_NOFOLLOW, S_IRUSR|S_IWUSR)) == -1) { + if ((fh = open(log_file, O_RDWR|O_APPEND|O_CREAT|O_NOFOLLOW, S_IRUSR|S_IWUSR|S_IRGRP|S_IROTH)) == -1) { if (daemon_mode == FALSE) printf("Warning: Cannot open log file '%s' for writing\n", log_file); return ERROR; debian/patches/80_dont_call_home.patch0000664000000000000000000042611312261623722015130 0ustar commit 16ecc5c1b71b88631af948a41d3fb26ef11e4f9e Author: Michael Friedrich Date: Fri Jan 3 15:21:56 2014 +0100 html: Remove RSS news feeds and update checks entirely. This patch leaves the status.dat/retention.dat parsing functionality in utils.inc.php intact, even if that was used only for the update check itsself. diff --git a/html/Makefile.in b/html/Makefile.in index a977e35..6d40b04 100644 --- a/html/Makefile.in +++ b/html/Makefile.in @@ -44,8 +44,6 @@ install: $(INSTALL) -m 775 $(INSTALL_OPTS) -d $(DESTDIR)$(HTMLDIR)/images $(INSTALL) -m 775 $(INSTALL_OPTS) -d $(DESTDIR)$(HTMLDIR)/images/logos $(INSTALL) -m 775 $(INSTALL_OPTS) -d $(DESTDIR)$(HTMLDIR)/includes - $(INSTALL) -m 775 $(INSTALL_OPTS) -d $(DESTDIR)$(HTMLDIR)/includes/rss - $(INSTALL) -m 775 $(INSTALL_OPTS) -d $(DESTDIR)$(HTMLDIR)/includes/rss/extlib $(INSTALL) -m 775 $(INSTALL_OPTS) -d $(DESTDIR)$(HTMLDIR)/ssi $(INSTALL) -m 664 $(INSTALL_OPTS) robots.txt $(DESTDIR)$(HTMLDIR) # $(INSTALL) -m 664 $(INSTALL_OPTS) docs/robots.txt $(DESTDIR)$(HTMLDIR)/docs @@ -79,10 +77,6 @@ install: do $(INSTALL) -m 664 $(INSTALL_OPTS) $$file $(DESTDIR)$(HTMLDIR)/images/logos; done for file in includes/*.*; \ do $(INSTALL) -m 664 $(INSTALL_OPTS) $$file $(DESTDIR)$(HTMLDIR)/includes; done - for file in includes/rss/*.*; \ - do $(INSTALL) -m 664 $(INSTALL_OPTS) $$file $(DESTDIR)$(HTMLDIR)/includes/rss; done - for file in includes/rss/extlib/*.*; \ - do $(INSTALL) -m 664 $(INSTALL_OPTS) $$file $(DESTDIR)$(HTMLDIR)/includes/rss/extlib; done install-unstripped: $(MAKE) install diff --git a/html/includes/rss/AUTHORS b/html/includes/rss/AUTHORS deleted file mode 100644 index 7d7f3f5..0000000 --- a/html/includes/rss/AUTHORS +++ /dev/null @@ -1 +0,0 @@ -kellan diff --git a/html/includes/rss/CHANGES b/html/includes/rss/CHANGES deleted file mode 100644 index 3346f2b..0000000 --- a/html/includes/rss/CHANGES +++ /dev/null @@ -1,41 +0,0 @@ -Version 0.72 ------------ - - fix security exploit: http://www.sec-consult.com/216.html - -Version 0.7 ------------ - - support for input and output charset encoding - based on the work in FoF, uses iconv or mbstring if available - - - -Version 0.6 ------------ - - basic support for Atom syndication format - including support for Atom content constructs - - fixed support for private feeds (HTTP Auth and SSL) - (thanks to silverorange.com for providing test feeds) - - support for some broken webservers - -Version 0.52 ------------ - - support GZIP content negoiation - - PHP 4.3.2 support - -Version 0.4 ------------ - - improved error handling, better access for script authors - - included example scripts of working with MagpieRSS - - new Smarty plugin for RSS date parsing - -Version 0.3 ------------ - - added support for conditional gets (Last-Modified, ETag) - - now use Snoopy to handle fetching RSS files - -Version 0.2 ------------ - - MAJOR CLEAN UP - - removed kludgy $options array in favour of constants - - phased out returning arrays - - added better error handling - - re-worked comments diff --git a/html/includes/rss/ChangeLog b/html/includes/rss/ChangeLog deleted file mode 100644 index 62fa4f5..0000000 --- a/html/includes/rss/ChangeLog +++ /dev/null @@ -1,405 +0,0 @@ -2005-10-28 14:11 kellan - - * extlib/Snoopy.class.inc: a better solution - -2005-10-28 11:51 kellan - - * extlib/Snoopy.class.inc: fix arbtriary code execution - vulnerability when using curl+ssl - - http://www.sec-consult.com/216.html - -2005-03-08 10:46 kellan - - * rss_parse.inc: fix bug w/ atom and date normalization - -2005-02-09 14:59 kellan - - * rss_fetch.inc: fix stale cache bug - -2005-01-28 02:27 kellan - - * rss_parse.inc: support php w/o array_change_case - -2005-01-23 20:02 kellan - - * rss_fetch.inc: fix cache bug introduced by charset encoding - -2005-01-12 09:14 kellan - - * rss_cache.inc, rss_fetch.inc: more sanity checks for when things - go wrong - -2004-12-12 13:44 kellan - - * INSTALL, rss_cache.inc, rss_utils.inc: detab - -2004-11-23 20:15 kellan - - * rss_parse.inc: fix calling iconv instead of mb_convert_encoding - -2004-11-22 02:11 kellan - - * CHANGES, ChangeLog, rss_parse.inc, scripts/magpie_debug.php: last - bit of tidying - -2004-11-22 01:45 kellan - - * rss_fetch.inc: detab, bump version - -2004-11-22 01:43 kellan - - * rss_parse.inc: was filtering too much - -2004-11-22 00:03 kellan - - * rss_fetch.inc, rss_parse.inc: cache on $url . $output_encoding - otherwise we can get munged output - -2004-11-21 23:52 kellan - - * rss_parse.inc: add WARNING - -2004-11-21 23:45 kellan - - * rss_parse.inc: don't set ERROR on notice or warning (rss_fetch - dies on parse errors) - -2004-11-21 23:44 kellan - - * rss_fetch.inc: add encoding defines (fix timeout error reporting) - -2004-11-21 20:21 kellan - - * rss_parse.inc: incorporate steve's patch - -2004-11-21 19:26 kellan - - * rss_parse.inc: remove old debugging functions, totally - arbitrarily. might break stuff. can't really explain why i'm - doing this. - -2004-10-28 15:52 kellan - - * rss_parse.inc: fixed '=' instead of '==' - -2004-10-26 00:48 kellan - - * rss_parse.inc: chance epoch to timestamp to conform w/ php naming - conventions - -2004-06-15 12:00 kellan - - * rss_parse.inc: [no log message] - -2004-04-26 14:16 kellan - - * rss_fetch.inc: bump version - -2004-04-26 12:36 kellan - - * rss_parse.inc: fix field doubling - -2004-04-24 17:47 kellan - - * CHANGES, ChangeLog: updated - -2004-04-24 17:35 kellan - - * rss_fetch.inc: bumped version - -2004-04-24 16:52 kellan - - * rss_parse.inc: support arbitrary atom content constructs - - some refactoring - -2004-04-24 16:15 kellan - - * rss_parse.inc: support summary content contstruct. add normalize - function - -2004-03-27 16:29 kellan - - * extlib/Snoopy.class.inc: accept self-signed certs - -2004-03-27 12:53 kellan - - * extlib/Snoopy.class.inc: fixed SSL support * set status * set - error on bad curl - - (also ripped out big chunks of dead weight (submit_form) which - were getting in my way - -2004-01-25 02:25 kellan - - * rss_parse.inc: make RSS 1.0's rdf:about available - -2004-01-25 02:07 kellan - - * rss_parse.inc: clean up text, and line formats. add support item - rdf:about - -2004-01-24 23:40 kellan - - * CHANGES, ChangeLog: update changes - -2004-01-24 23:37 kellan - - * rss_fetch.inc: updated version - -2004-01-24 23:35 kellan - - * rss_parse.inc: whitespace - -2004-01-24 23:23 kellan - - * extlib/Snoopy.class.inc: support badly formatted http headers - -2004-01-24 23:20 kellan - - * rss_parse.inc: added alpha atom parsing support - -2003-06-25 22:34 kellan - - * extlib/Snoopy.class.inc: fixed fread 4.3.2 compatibility problems - -2003-06-13 11:31 kellan - - * rss_fetch.inc: reset cache on 304 - -2003-06-12 21:37 kellan - - * rss_cache.inc, rss_fetch.inc, rss_parse.inc, rss_utils.inc: - bumped up version numbers - -2003-06-12 21:32 kellan - - * htdocs/index.html: updated news - -2003-06-12 21:27 kellan - - * NEWS: a manual blog :) - -2003-06-12 21:22 kellan - - * htdocs/index.html: fully qualified img - -2003-06-12 21:20 kellan - - * htdocs/index.html: clean up. added badge. - -2003-06-12 21:04 kellan - - * rss_utils.inc: clean up regex - -2003-06-12 21:02 kellan - - * rss_cache.inc: suppress some warnings - -2003-05-30 20:44 kellan - - * extlib/Snoopy.class.inc: more comments, cleaned up notice - -2003-05-30 15:14 kellan - - * extlib/Snoopy.class.inc: don't advertise gzip support if the user - hasn't built php with gzinflate support - -2003-05-12 22:32 kellan - - * ChangeLog: changes - -2003-05-12 22:11 kellan - - * htdocs/index.html: announce 0.5 - -2003-05-12 21:42 kellan - - * htdocs/index.html: change - -2003-05-12 21:39 kellan - - * rss_fetch.inc: use gzip - -2003-05-12 21:37 kellan - - * extlib/Snoopy.class.inc: added support gzip encoded content - negoiation - -2003-05-12 21:32 kellan - - * rss_cache.inc, rss_fetch.inc, rss_parse.inc, rss_utils.inc: fixed - typoes - -2003-04-26 21:44 kellan - - * rss_parse.inc: fix minor typo - -2003-04-18 08:19 kellan - - * htdocs/cookbook.html: updated cookbook to show more code for - limiting items - -2003-03-03 16:02 kellan - - * rss_parse.inc, scripts/magpie_slashbox.php: committed (or - adpated) patch from Nicola (www.technick.com) to quell 'Undefined - Indexes' notices - -2003-03-03 15:59 kellan - - * rss_fetch.inc: commited patch from nicola (www.technick.com) to - quell 'undefined indexes' notices. - - * Magpie now automatically includes its version in the - user-agent, & whether cacheing is turned on. - -2003-02-12 01:22 kellan - - * CHANGES, ChangeLog: ChangeLog now auto-generated by cvs2cl - -2003-02-12 00:21 kellan - - * rss_fetch.inc: better errors, hopefully stomped on pesky notices - -2003-02-12 00:19 kellan - - * rss_parse.inc: check to see is xml is supported, if not die - - also throw better xml errors - -2003-02-12 00:18 kellan - - * rss_cache.inc: hopefully cleared up some notices that were being - thrown into the log - - fixed a debug statement that was being called as an error - -2003-02-12 00:15 kellan - - * scripts/: magpie_simple.php, magpie_slashbox.php: moved - magpie_simple to magpie_slashbox, and replaced it with a simpler - demo. - -2003-02-12 00:02 kellan - - * INSTALL, README, TROUBLESHOOTING: Improved documentation. Better - install instructions. - - TROUBLESHOOTING cover common installation and usage problems - -2003-01-22 14:40 kellan - - * htdocs/cookbook.html: added cookbook.html - -2003-01-21 23:47 kellan - - * cookbook: a magpie cookbook - -2003-01-20 10:09 kellan - - * ChangeLog: updated - -2003-01-20 09:23 kellan - - * scripts/simple_smarty.php: minor clean up - -2003-01-20 09:15 kellan - - * scripts/README: added smarty url - -2003-01-20 09:14 kellan - - * magpie_simple.php, htdocs/index.html, scripts/README, - scripts/magpie_debug.php, scripts/magpie_simple.php, - scripts/simple_smarty.php, - scripts/smarty_plugin/modifier.rss_date_parse.php, - scripts/templates/simple.smarty: Added scripts directory for - examples on how to use MagpieRSS - - magpie_simple - is a simple example magpie_debug - spew all the - information from a parsed RSS feed simple_smary - example of - using magpie with Smarty template system - smarty_plugin/modifier.rss_date_parse.php - support file for the - smarty demo templates/simple.smary - template for the smarty demo - -2003-01-20 09:11 kellan - - * rss_fetch.inc, rss_parse.inc: changes to error handling to give - script authors more access to magpie's errors. - - added method magpie_error() to retrieve global MAGPIE_ERROR - variable for when fetch_rss() returns false - -2002-10-26 19:02 kellan - - * htdocs/index.html: putting the website under source control - -2002-10-26 18:43 kellan - - * AUTHORS, ChangeLog, INSTALL, README: some documentation to make - it all look official :) - -2002-10-25 23:04 kellan - - * magpie_simple.php: quxx - -2002-10-25 23:04 kellan - - * rss_parse.inc: added support for textinput and image - -2002-10-25 19:23 kellan - - * magpie_simple.php, rss_cache.inc, rss_fetch.inc, rss_parse.inc, - rss_utils.inc: switched to using Snoopy for fetching remote RSS - files. - - added support for conditional gets - -2002-10-25 19:22 kellan - - * rss_cache.inc, rss_fetch.inc, rss_parse.inc, rss_utils.inc: - Change comment style to slavishly imitate the phpinsider style - found in Smarty and Snoopy :) - -2002-10-25 19:18 kellan - - * extlib/Snoopy.class.inc: added Snoopy in order to support - conditional gets - -2002-10-23 23:19 kellan - - * magpie_simple.php, rss_cache.inc, rss_fetch.inc, rss_parse.inc: - MAJOR CLEANUP! - - * rss_fetch got rid of the options array, replaced it with a more - PHP-like solution of using defines. constants are setup, with - defaults, in the function init() - - got rid of the idiom of passing back an array, its was awkward to - deal with in PHP, and unusual (and consquently confusing to - people). now i return true/false values, and try to setup error - string where appropiate (rss_cache has the most complete example - of this) - - change the logic for interacting with the cache - - * rss_cache major re-working of how error are handled. tried to - make the code more resillient. the cache is now much more aware - of MAX_AGE, where before this was being driven out of rss_fetch - (which was silly) - - * rss_parse properly handles xml parse errors. used to sail - along blithely unaware. - -2002-09-11 11:11 kellan - - * rss_cache.inc, rss_parse.inc, magpie_simple.php, rss_fetch.inc, - rss_utils.inc: Initial revision - -2002-09-11 11:11 kellan - - * rss_cache.inc, rss_parse.inc, magpie_simple.php, rss_fetch.inc, - rss_utils.inc: initial import - diff --git a/html/includes/rss/INSTALL b/html/includes/rss/INSTALL deleted file mode 100644 index 640833d..0000000 --- a/html/includes/rss/INSTALL +++ /dev/null @@ -1,143 +0,0 @@ -REQUIREMENTS - - MapieRSS requires a recent PHP 4+ (developed with 4.2.0) - with xml (expat) support. - - Optionally: - * PHP5 with libxml2 support. - * cURL for SSL support - * iconv (preferred) or mb_string for expanded character set support - -QUICK START - - Magpie consists of 4 files (rss_fetch.inc, rss_parser.inc, rss_cache.inc, - and rss_utils.inc), and the directory extlib (which contains a modified - version of the Snoopy HTTP client) - - Copy these 5 resources to a directory named 'magpierss' in the same - directory as your PHP script. - - At the top of your script add the following line: - - require_once('magpierss/rss_fetch.inc'); - - Now you can use the fetch_rss() method: - - $rss = fetch_rss($url); - - Done. That's it. See README for more details on using MagpieRSS. - -NEXT STEPS - - Important: you'll probably want to get the cache directory working in - order to speed up your application, and not abuse the webserver you're - downloading the RSS from. - - Optionally you can install MagpieRSS in your PHP include path in order to - make it available server wide. - - Lastly you might want to look through the constants in rss_fetch.inc see if - there is anything you want to override (the defaults are pretty good) - - For more info, or if you have trouble, see TROUBLESHOOTING - -SETTING UP CACHING - - Magpie has built-in transparent caching. With caching Magpie will only - fetch and parse RSS feeds when there is new content. Without this feature - your pages will be slow, and the sites serving the RSS feed will be annoyed - with you. - -** Simple and Automatic ** - - By default Magpie will try to create a cache directory named 'cache' in the - same directory as your PHP script. - -** Creating a Local Cache Directory ** - - Often this will fail, because your webserver doesn't have sufficient - permissions to create the directory. - - Exact instructions for how to do this will vary from install to install and - platform to platform. The steps are: - - 1. Make a directory named 'cache' - 2. Give the web server write access to that directory. - - An example of how to do this on Debian would be: - - 1. mkdir /path/to/script/cache - 2. chgrp www-data /path/to/script/cache - 3. chmod 775 /path/to/script/cache - - On other Unixes you'll need to change 'www-data' to what ever user Apache - runs as. (on MacOS X the user would be 'www') - -** Cache in /tmp ** - - Sometimes you won't be able to create a local cache directory. Some reasons - might be: - - 1. No shell account - 2. Insufficient permissions to change ownership of a directory - 3. Webserver runs as 'nobody' - - In these situations using a cache directory in /tmp can often be a good - option. - - The drawback is /tmp is public, so anyone on the box can read the cache - files. Usually RSS feeds are public information, so you'll have to decide - how much of an issue that is. - - To use /tmp as your cache directory you need to add the following line to - your script: - - define('MAGPIE_CACHE_DIR', '/tmp/magpie_cache'); - -** Global Cache ** - - If you have several applications using Magpie, you can create a single - shared cache directory, either using the /tmp cache, or somewhere else on - the system. - - The upside is that you'll distribute fetching and parsing feeds across - several applications. - -INSTALLING MAGPIE SERVER WIDE - - Rather then following the Quickstart instructions which requires you to have - a copy of Magpie per application, alternately you can place it in some - shared location. - -** Adding Magpie to Your Include Path ** - - Copy the 5 resources (rss_fetch.inc, rss_parser.inc, rss_cache.inc, - rss_utils.inc, and extlib) to a directory named 'magpierss' in your include - path. Now any PHP file on your system can use Magpie with: - - require_once('magpierss/rss_fetch.inc'); - - Different installs have different include paths, and you'll have to figure - out what your include_path is. - - From shell you can try: - - php -i | grep 'include_path' - - Alternatley you can create a phpinfo.php file with contains: - - - - Debian's default is: - - /usr/share/php - - (though more idealogically pure location would be /usr/local/share/php) - - Apple's default include path is: - - /usr/lib/php - - While the Entropy PHP build seems to use: - - /usr/local/php/lib/php \ No newline at end of file diff --git a/html/includes/rss/NEWS b/html/includes/rss/NEWS deleted file mode 100644 index 5ac6b97..0000000 --- a/html/includes/rss/NEWS +++ /dev/null @@ -1,53 +0,0 @@ -MagpieRSS News - -MAGPIERSS 0.51 RELEASED - * important bugfix! - * fix "silent failure" when PHP doesn't have zlib - -FEED ON FEEDS USES MAGPIE - * web-based RSS aggregator built with Magpie - * easy to install, easy to use. - http://minutillo.com/steve/feedonfeeds/ - -MAGPIERSS 0.5 RELEASED - * supports transparent HTTP gzip content negotiation for reduced bandwidth usage - * quashed some undefined index notices - -MAGPIERSS 0.46 RELEASED - * minor release, more error handling clean up - * documentation fixes, simpler example - * new trouble shooting guide for installation and usage problems - http://magpierss.sourceforge.net/TROUBLESHOOTING - -MAGPIE NEWS AS RSS - * releases, bug fixes, releated stories in RSS - -MAGPIERSS COOKBOOK: SIMPLE PHP RSS HOW TOS - * answers some of the most frequently asked Magpie questions - * feedback, suggestions, requests, recipes welcome - http://magpierss.sourceforge.net/cookbook.html - -MAGPIERSS 0.4 RELEASED! - * improved error handling, more flexibility for script authors, backwards compatible - * new and better examples! including using MagpieRSS and Smarty - * new Smarty plugin for RSS date parsing - http://smarty.php.net - -INFINITE PENGUIN NOW SUPPORTS MAGPIE 0.3 - * simple, sophisticated RSS viewer - * includes auto-generated javascript ticker from RSS feed - http://www.infinitepenguins.net/rss/ - -TRAUMWIND RELEASES REX BACKEND FOR MAGPIERSS - * drop in support using regex based XML parser - * parses improperly formed XML that chokes expat - http://traumwind.de/blog/magpie/magpie_alike.php - -MAGPIERSS 0.3 RELEASED! - * Support added for HTTP Conditional GETs. - http://fishbowl.pastiche.org/archives/001132.html - -MAGPIERSS 0.2! - * Major clean up of the code. Easier to use. - * Simpler install on shared hosts. - * Better documentation and comments. diff --git a/html/includes/rss/README b/html/includes/rss/README deleted file mode 100644 index 6af7edb..0000000 --- a/html/includes/rss/README +++ /dev/null @@ -1,48 +0,0 @@ -NAME - - MagpieRSS - a simple RSS integration tool - -SYNOPSIS - - require_once(rss_fetch.inc); - $url = $_GET['url']; - $rss = fetch_rss( $url ); - - echo "Channel Title: " . $rss->channel['title'] . "

"; - echo "

    "; - foreach ($rss->items as $item) { - $href = $item['link']; - $title = $item['title']; - echo "
  • $title
  • "; - } - echo "
"; - -DESCRIPTION - - MapieRSS is an XML-based RSS parser in PHP. It attempts to be "PHP-like", - and simple to use. - - Some features include: - - * supports RSS 0.9 - 1.0, with limited RSS 2.0 support - * supports namespaces, and modules, including mod_content and mod_event - * open minded [1] - * simple, functional interface, to object oriented backend parser - * automatic caching of parsed RSS objects makes its easy to integrate - * supports conditional GET with Last-Modified, and ETag - * uses constants for easy override of default behaviour - * heavily commented - - -1. By open minded I mean Magpie will accept any tag it finds in good faith that - it was supposed to be here. For strict validation, look elsewhere. - - -GETTING STARTED - - - -COPYRIGHT: - Copyright(c) 2002 kellan@protest.net. All rights reserved. - This software is released under the GNU General Public License. - Please read the disclaimer at the top of the Snoopy.class.inc file. diff --git a/html/includes/rss/TROUBLESHOOTING b/html/includes/rss/TROUBLESHOOTING deleted file mode 100644 index 89068d3..0000000 --- a/html/includes/rss/TROUBLESHOOTING +++ /dev/null @@ -1,152 +0,0 @@ -TROUBLESHOOTING - - -Trouble Installing MagpieRSS: - -1. Fatal error: Failed opening required '/path/to/script/rss_fetch.inc' - (include_path='.:/usr/local/lib/php:/usr/local/lib/php/pear') - -2. Cache couldn't make dir './cache'. - -3. Fatal error: Failed to load PHP's XML Extension. - http://www.php.net/manual/en/ref.xml.php - -Trouble Using MagpieRSS - -4. Warning: MagpieRSS: Failed to fetch example.com/index.rdf. - (HTTP Error: Invalid protocol "") - -5. Warning: MagpieRSS: Failed to parse RSS file. - (not well-formed (invalid token) at line 19, column 98) - -6. Warning: MagpieRSS: Failed to fetch http://localhost/rss/features.1-0.rss. - (HTTP Response: HTTP/1.1 404 Not Found) - -If you would rather provide a custom error, see the COOKBOOK -(http://magpierss.sf.net/cookbook.html) recipe 2. - -************************************************************************* -1. Fatal error: Failed opening required '/path/to/script/rss_fetch.inc' - (include_path='.:/usr/local/lib/php:/usr/local/lib/php/pear') - - This could mean that: - - a) PHP can't find the MagpieRSS files. - b) PHP found them the MagpieRSS files, but can't read them. - - a. Telling PHP where to look for MagpieRSS file. - - This might mean your PHP program can't find the MagpieRSS libraries. - Magpie relies on 4 include files, rss_fetch.inc, rss_parse.inc, - rss_cache.inc, rss_util.inc, and for normal use you'll need all 4 (see the - cookbook for exceptions). - - This can be fixed by making sure the MagpieRSS files are in your include - path. - - If you can edit your include path (for example your on a shared host) then - you need to replace: - - require_once('rss_fetch.inc'); - - -with- - - define('MAGPIE_DIR', '/path/to/magpierss/'); - require_once(MAGPIE_DIR.'rss_fetch.inc'); - - b. PHP can't read the MagpieRSS files - - All PHP libraries need to be readable by your webserver. - - On Unix you can accomplish this with: - - chmod 755 rss_fetch.inc rss_parse.inc rss_cache.inc rss_util.inc - -************************************************************************* -2. Cache couldn't make dir './cache'. - - MagpieRSS caches the results of fetched and parsed RSS to reduce the load on - both your server, and the remote server providing the RSS. It does this by - writing files to a cache directory. - - This error means the webserver doesn't have write access to the current - directory. - - a. Make a webserver writeable cache directory - - Find the webserver's group. (on my system it is 'www') - - mkdir ./cache - chgrp www directory_name - chmod g+w directory_name - - (this is the best, and desired solution) - - b. Tell MagpieRSS to create the cache directory somewhere the webserver can - write to. - - define('MAGPIE_CACHE_DIR', '/tmp/magpierss'); - - (this is not a great solution, and might have security considerations) - - c. Turn off cacheing. - - Magpie can work fine with cacheing, but it will be slower, and you might - become a nuiance to the RSS provider, but it is an option. - - define('MAGPIE_CACHE_ON', 0); - - d. And lastly, do NOT - - chmod 777 ./cache - - Any of the above solutions are better then this. - - NOTE: If none of this works for you, let me know. I've got root, and a - custom compiled Apache on almost any box I ever touch, so I can be a little - out of touch with reality. But I won't know that if I don't feedback. - -************************************************************************* 3. -3. Fatal error: Failed to load PHP's XML Extension. - http://www.php.net/manual/en/ref.xml.php - - -or- - - Fatal error: Failed to create an instance of PHP's XML parser. - http://www.php.net/manual/en/ref.xml.php - - Make sure your PHP was built with --with-xml - - This has been turned on by default for several versions of PHP, but it might - be turned off in your build. - - See php.net for details on building and configuring PHP. - - -************************************************************************* -4. Warning: MagpieRSS: Failed to fetch index.rdf. - (HTTP Error: Invalid protocol "") - - You need to put http:// in front of your the URL to your RSS feed - -************************************************************************* -5. Warning: MagpieRSS: Failed to parse RSS file. - (not well-formed (invalid token) at line 19, column 98) - - There is a problem with the RSS feed you are trying to read. - MagpieRSS is an XML parser, and therefore can't parse RSS feed with invalid - characters. Some RSS parser are based on regular expressions, and can - parse invalid RSS but they have their own problems. - - You could try contacting the author of the RSS feed, and pointing them to - the online RSS validator at: - - http://feeds.archive.org/validator/ - -************************************************************************* -6. Warning: MagpieRSS: Failed to fetch http://example.com/index.rdf - (HTTP Response: HTTP/1.1 404 Not Found) - - Its a 404! The RSS file ain't there. - - diff --git a/html/includes/rss/cookbook b/html/includes/rss/cookbook deleted file mode 100644 index 45dda98..0000000 --- a/html/includes/rss/cookbook +++ /dev/null @@ -1,125 +0,0 @@ -MAGPIERSS RECIPES: Cooking with Corbies - - "Four and twenty blackbirds baked in a pie." - -1. LIMIT THE NUMBER OF HEADLINES(AKA ITEMS) RETURNED. - -PROBLEM: - -You want to display the 10 (or 3) most recent headlines, but the RSS feed -contains 15. - -SOLUTION: - -$num_items = 10; -$rss = fetch_rss($url); - -$items = array_slice($rss->items, 0, $num_items); - -DISCUSSION: - -Rather then trying to limit the number of items Magpie parses, a much simpler, -and more flexible approach is to take a "slice" of the array of items. And -array_slice() is smart enough to do the right thing if the feed has less items -then $num_items. - -See: http://www.php.net/array_slice - - -2. DISPLAY A CUSTOM ERROR MESSAGE IF SOMETHING GOES WRONG - -PROBLEM: - -You don't want Magpie's error messages showing up if something goes wrong. - -SOLUTION: - -# Magpie throws USER_WARNINGS only -# so you can cloak these, by only showing ERRORs -error_reporting(E_ERROR); - -# check the return value of fetch_rss() - -$rss = fetch_rss($url); - -if ( $rss ) { -...display rss feed... -} -else { - echo "An error occured! " . - "Consider donating more $$$ for restoration of services." . - "
Error Message: " . magpie_error(); -} - -DISCUSSION: - -MagpieRSS triggers a warning in a number of circumstances. The 2 most common -circumstances are: if the specified RSS file isn't properly formed (usually -because it includes illegal HTML), or if Magpie can't download the remote RSS -file, and there is no cached version. - -If you don't want your users to see these warnings change your error_reporting -settings to only display ERRORs. Another option is to turn off display_error, -so that WARNINGs, and NOTICEs still go to the error_log but not to the webpages. - -You can do this with: - -ini_set('display_errors', 0); - -See: http://www.php.net/error_reporting, - http://www.php.net/ini_set, - http://www.php.net/manual/en/ref.errorfunc.php - -3. GENERATE A NEW RSS FEED - -PROBLEM: - -Create an RSS feed for other people to use. - -SOLUTION: - -Use Useful Inc's RSSWriter (http://usefulinc.com/rss/rsswriter/) - -DISCUSSION: - -An example of turning a Magpie parsed RSS object back into an RSS file is forth -coming. In the meantime RSSWriter has great documentation. - -4. DISPLAY HEADLINES MORE RECENT THEN X DATE - -PROBLEM: - -You only want to display headlines that were published on, or after a certain -date. - - -SOLUTION: - -require 'rss_utils.inc'; - -# get all headlines published today -$today = getdate(); - -# today, 12AM -$date = mktime(0,0,0,$today['mon'], $today['mday'], $today['year']); - -$rss = fetch_rss($url); - -foreach ( $rss->items as $item ) { - $published = parse_w3cdtf($item['dc']['date']); - if ( $published >= $date ) { - echo "Title: " . $item['title']; - echo "Published: " . date("h:i:s A", $published); - echo "

"; - } -} - -DISCUSSION: - -This recipe only works for RSS 1.0 feeds that include the field. -(which is very good RSS style) - -parse_w3cdtf is defined in rss_utils.inc, and parses RSS style dates into Unix -epoch seconds. - -See: http://www.php.net/manual/en/ref.datetime.php diff --git a/html/includes/rss/extlib/Snoopy.class.inc b/html/includes/rss/extlib/Snoopy.class.inc deleted file mode 100644 index 3ddecba..0000000 --- a/html/includes/rss/extlib/Snoopy.class.inc +++ /dev/null @@ -1,900 +0,0 @@ - -Copyright (c): 1999-2000 ispi, all rights reserved -Version: 1.0 - - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - -You may contact the author of Snoopy by e-mail at: -monte@ispi.net - -Or, write to: -Monte Ohrt -CTO, ispi -237 S. 70th suite 220 -Lincoln, NE 68510 - -The latest version of Snoopy can be obtained from: -http://snoopy.sourceforge.com - -*************************************************/ - -class Snoopy -{ - /**** Public variables ****/ - - /* user definable vars */ - - var $host = "www.php.net"; // host name we are connecting to - var $port = 80; // port we are connecting to - var $proxy_host = ""; // proxy host to use - var $proxy_port = ""; // proxy port to use - var $agent = "Snoopy v1.0"; // agent we masquerade as - var $referer = ""; // referer info to pass - var $cookies = array(); // array of cookies to pass - // $cookies["username"]="joe"; - var $rawheaders = array(); // array of raw headers to send - // $rawheaders["Content-type"]="text/html"; - - var $maxredirs = 5; // http redirection depth maximum. 0 = disallow - var $lastredirectaddr = ""; // contains address of last redirected address - var $offsiteok = true; // allows redirection off-site - var $maxframes = 0; // frame content depth maximum. 0 = disallow - var $expandlinks = true; // expand links to fully qualified URLs. - // this only applies to fetchlinks() - // or submitlinks() - var $passcookies = true; // pass set cookies back through redirects - // NOTE: this currently does not respect - // dates, domains or paths. - - var $user = ""; // user for http authentication - var $pass = ""; // password for http authentication - - // http accept types - var $accept = "image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, */*"; - - var $results = ""; // where the content is put - - var $error = ""; // error messages sent here - var $response_code = ""; // response code returned from server - var $headers = array(); // headers returned from server sent here - var $maxlength = 500000; // max return data length (body) - var $read_timeout = 0; // timeout on read operations, in seconds - // supported only since PHP 4 Beta 4 - // set to 0 to disallow timeouts - var $timed_out = false; // if a read operation timed out - var $status = 0; // http request status - - var $curl_path = "/usr/bin/curl"; - // Snoopy will use cURL for fetching - // SSL content if a full system path to - // the cURL binary is supplied here. - // set to false if you do not have - // cURL installed. See http://curl.haxx.se - // for details on installing cURL. - // Snoopy does *not* use the cURL - // library functions built into php, - // as these functions are not stable - // as of this Snoopy release. - - // send Accept-encoding: gzip? - var $use_gzip = true; - - /**** Private variables ****/ - - var $_maxlinelen = 4096; // max line length (headers) - - var $_httpmethod = "GET"; // default http request method - var $_httpversion = "HTTP/1.0"; // default http request version - var $_submit_method = "POST"; // default submit method - var $_submit_type = "application/x-www-form-urlencoded"; // default submit type - var $_mime_boundary = ""; // MIME boundary for multipart/form-data submit type - var $_redirectaddr = false; // will be set if page fetched is a redirect - var $_redirectdepth = 0; // increments on an http redirect - var $_frameurls = array(); // frame src urls - var $_framedepth = 0; // increments on frame depth - - var $_isproxy = false; // set if using a proxy server - var $_fp_timeout = 30; // timeout for socket connection - -/*======================================================================*\ - Function: fetch - Purpose: fetch the contents of a web page - (and possibly other protocols in the - future like ftp, nntp, gopher, etc.) - Input: $URI the location of the page to fetch - Output: $this->results the output text from the fetch -\*======================================================================*/ - - function fetch($URI) - { - - //preg_match("|^([^:]+)://([^:/]+)(:[\d]+)*(.*)|",$URI,$URI_PARTS); - $URI_PARTS = parse_url($URI); - if (!empty($URI_PARTS["user"])) - $this->user = $URI_PARTS["user"]; - if (!empty($URI_PARTS["pass"])) - $this->pass = $URI_PARTS["pass"]; - - switch($URI_PARTS["scheme"]) - { - case "http": - $this->host = $URI_PARTS["host"]; - if(!empty($URI_PARTS["port"])) - $this->port = $URI_PARTS["port"]; - if($this->_connect($fp)) - { - if($this->_isproxy) - { - // using proxy, send entire URI - $this->_httprequest($URI,$fp,$URI,$this->_httpmethod); - } - else - { - $path = $URI_PARTS["path"].(isset($URI_PARTS["query"]) ? "?".$URI_PARTS["query"] : ""); - // no proxy, send only the path - $this->_httprequest($path, $fp, $URI, $this->_httpmethod); - } - - $this->_disconnect($fp); - - if($this->_redirectaddr) - { - /* url was redirected, check if we've hit the max depth */ - if($this->maxredirs > $this->_redirectdepth) - { - // only follow redirect if it's on this site, or offsiteok is true - if(preg_match("|^http://".preg_quote($this->host)."|i",$this->_redirectaddr) || $this->offsiteok) - { - /* follow the redirect */ - $this->_redirectdepth++; - $this->lastredirectaddr=$this->_redirectaddr; - $this->fetch($this->_redirectaddr); - } - } - } - - if($this->_framedepth < $this->maxframes && count($this->_frameurls) > 0) - { - $frameurls = $this->_frameurls; - $this->_frameurls = array(); - - while(list(,$frameurl) = each($frameurls)) - { - if($this->_framedepth < $this->maxframes) - { - $this->fetch($frameurl); - $this->_framedepth++; - } - else - break; - } - } - } - else - { - return false; - } - return true; - break; - case "https": - if(!$this->curl_path || (!is_executable($this->curl_path))) { - $this->error = "Bad curl ($this->curl_path), can't fetch HTTPS \n"; - return false; - } - $this->host = $URI_PARTS["host"]; - if(!empty($URI_PARTS["port"])) - $this->port = $URI_PARTS["port"]; - if($this->_isproxy) - { - // using proxy, send entire URI - $this->_httpsrequest($URI,$URI,$this->_httpmethod); - } - else - { - $path = $URI_PARTS["path"].($URI_PARTS["query"] ? "?".$URI_PARTS["query"] : ""); - // no proxy, send only the path - $this->_httpsrequest($path, $URI, $this->_httpmethod); - } - - if($this->_redirectaddr) - { - /* url was redirected, check if we've hit the max depth */ - if($this->maxredirs > $this->_redirectdepth) - { - // only follow redirect if it's on this site, or offsiteok is true - if(preg_match("|^http://".preg_quote($this->host)."|i",$this->_redirectaddr) || $this->offsiteok) - { - /* follow the redirect */ - $this->_redirectdepth++; - $this->lastredirectaddr=$this->_redirectaddr; - $this->fetch($this->_redirectaddr); - } - } - } - - if($this->_framedepth < $this->maxframes && count($this->_frameurls) > 0) - { - $frameurls = $this->_frameurls; - $this->_frameurls = array(); - - while(list(,$frameurl) = each($frameurls)) - { - if($this->_framedepth < $this->maxframes) - { - $this->fetch($frameurl); - $this->_framedepth++; - } - else - break; - } - } - return true; - break; - default: - // not a valid protocol - $this->error = 'Invalid protocol "'.$URI_PARTS["scheme"].'"\n'; - return false; - break; - } - return true; - } - - - -/*======================================================================*\ - Private functions -\*======================================================================*/ - - -/*======================================================================*\ - Function: _striplinks - Purpose: strip the hyperlinks from an html document - Input: $document document to strip. - Output: $match an array of the links -\*======================================================================*/ - - function _striplinks($document) - { - preg_match_all("'<\s*a\s+.*href\s*=\s* # find ]+)) # if quote found, match up to next matching - # quote, otherwise match up to next space - 'isx",$document,$links); - - - // catenate the non-empty matches from the conditional subpattern - - while(list($key,$val) = each($links[2])) - { - if(!empty($val)) - $match[] = $val; - } - - while(list($key,$val) = each($links[3])) - { - if(!empty($val)) - $match[] = $val; - } - - // return the links - return $match; - } - -/*======================================================================*\ - Function: _stripform - Purpose: strip the form elements from an html document - Input: $document document to strip. - Output: $match an array of the links -\*======================================================================*/ - - function _stripform($document) - { - preg_match_all("'<\/?(FORM|INPUT|SELECT|TEXTAREA|(OPTION))[^<>]*>(?(2)(.*(?=<\/?(option|select)[^<>]*>[\r\n]*)|(?=[\r\n]*))|(?=[\r\n]*))'Usi",$document,$elements); - - // catenate the matches - $match = implode("\r\n",$elements[0]); - - // return the links - return $match; - } - - - -/*======================================================================*\ - Function: _striptext - Purpose: strip the text from an html document - Input: $document document to strip. - Output: $text the resulting text -\*======================================================================*/ - - function _striptext($document) - { - - // I didn't use preg eval (//e) since that is only available in PHP 4.0. - // so, list your entities one by one here. I included some of the - // more common ones. - - $search = array("']*?>.*?'si", // strip out javascript - "'<[\/\!]*?[^<>]*?>'si", // strip out html tags - "'([\r\n])[\s]+'", // strip out white space - "'&(quote|#34);'i", // replace html entities - "'&(amp|#38);'i", - "'&(lt|#60);'i", - "'&(gt|#62);'i", - "'&(nbsp|#160);'i", - "'&(iexcl|#161);'i", - "'&(cent|#162);'i", - "'&(pound|#163);'i", - "'&(copy|#169);'i" - ); - $replace = array( "", - "", - "\\1", - "\"", - "&", - "<", - ">", - " ", - chr(161), - chr(162), - chr(163), - chr(169)); - - $text = preg_replace($search,$replace,$document); - - return $text; - } - -/*======================================================================*\ - Function: _expandlinks - Purpose: expand each link into a fully qualified URL - Input: $links the links to qualify - $URI the full URI to get the base from - Output: $expandedLinks the expanded links -\*======================================================================*/ - - function _expandlinks($links,$URI) - { - - preg_match("/^[^\?]+/",$URI,$match); - - $match = preg_replace("|/[^\/\.]+\.[^\/\.]+$|","",$match[0]); - - $search = array( "|^http://".preg_quote($this->host)."|i", - "|^(?!http://)(\/)?(?!mailto:)|i", - "|/\./|", - "|/[^\/]+/\.\./|" - ); - - $replace = array( "", - $match."/", - "/", - "/" - ); - - $expandedLinks = preg_replace($search,$replace,$links); - - return $expandedLinks; - } - -/*======================================================================*\ - Function: _httprequest - Purpose: go get the http data from the server - Input: $url the url to fetch - $fp the current open file pointer - $URI the full URI - $body body contents to send if any (POST) - Output: -\*======================================================================*/ - - function _httprequest($url,$fp,$URI,$http_method,$content_type="",$body="") - { - if($this->passcookies && $this->_redirectaddr) - $this->setcookies(); - - $URI_PARTS = parse_url($URI); - if(empty($url)) - $url = "/"; - $headers = $http_method." ".$url." ".$this->_httpversion."\r\n"; - if(!empty($this->agent)) - $headers .= "User-Agent: ".$this->agent."\r\n"; - if(!empty($this->host) && !isset($this->rawheaders['Host'])) - $headers .= "Host: ".$this->host."\r\n"; - if(!empty($this->accept)) - $headers .= "Accept: ".$this->accept."\r\n"; - - if($this->use_gzip) { - // make sure PHP was built with --with-zlib - // and we can handle gzipp'ed data - if ( function_exists(gzinflate) ) { - $headers .= "Accept-encoding: gzip\r\n"; - } - else { - trigger_error( - "use_gzip is on, but PHP was built without zlib support.". - " Requesting file(s) without gzip encoding.", - E_USER_NOTICE); - } - } - - if(!empty($this->referer)) - $headers .= "Referer: ".$this->referer."\r\n"; - if(!empty($this->cookies)) - { - if(!is_array($this->cookies)) - $this->cookies = (array)$this->cookies; - - reset($this->cookies); - if ( count($this->cookies) > 0 ) { - $cookie_headers .= 'Cookie: '; - foreach ( $this->cookies as $cookieKey => $cookieVal ) { - $cookie_headers .= $cookieKey."=".urlencode($cookieVal)."; "; - } - $headers .= substr($cookie_headers,0,-2) . "\r\n"; - } - } - if(!empty($this->rawheaders)) - { - if(!is_array($this->rawheaders)) - $this->rawheaders = (array)$this->rawheaders; - while(list($headerKey,$headerVal) = each($this->rawheaders)) - $headers .= $headerKey.": ".$headerVal."\r\n"; - } - if(!empty($content_type)) { - $headers .= "Content-type: $content_type"; - if ($content_type == "multipart/form-data") - $headers .= "; boundary=".$this->_mime_boundary; - $headers .= "\r\n"; - } - if(!empty($body)) - $headers .= "Content-length: ".strlen($body)."\r\n"; - if(!empty($this->user) || !empty($this->pass)) - $headers .= "Authorization: BASIC ".base64_encode($this->user.":".$this->pass)."\r\n"; - - $headers .= "\r\n"; - - // set the read timeout if needed - if ($this->read_timeout > 0) - socket_set_timeout($fp, $this->read_timeout); - $this->timed_out = false; - - fwrite($fp,$headers.$body,strlen($headers.$body)); - - $this->_redirectaddr = false; - unset($this->headers); - - // content was returned gzip encoded? - $is_gzipped = false; - - while($currentHeader = fgets($fp,$this->_maxlinelen)) - { - if ($this->read_timeout > 0 && $this->_check_timeout($fp)) - { - $this->status=-100; - return false; - } - - // if($currentHeader == "\r\n") - if(preg_match("/^\r?\n$/", $currentHeader) ) - break; - - // if a header begins with Location: or URI:, set the redirect - if(preg_match("/^(Location:|URI:)/i",$currentHeader)) - { - // get URL portion of the redirect - preg_match("/^(Location:|URI:)\s+(.*)/",chop($currentHeader),$matches); - // look for :// in the Location header to see if hostname is included - if(!preg_match("|\:\/\/|",$matches[2])) - { - // no host in the path, so prepend - $this->_redirectaddr = $URI_PARTS["scheme"]."://".$this->host.":".$this->port; - // eliminate double slash - if(!preg_match("|^/|",$matches[2])) - $this->_redirectaddr .= "/".$matches[2]; - else - $this->_redirectaddr .= $matches[2]; - } - else - $this->_redirectaddr = $matches[2]; - } - - if(preg_match("|^HTTP/|",$currentHeader)) - { - if(preg_match("|^HTTP/[^\s]*\s(.*?)\s|",$currentHeader, $status)) - { - $this->status= $status[1]; - } - $this->response_code = $currentHeader; - } - - if (preg_match("/Content-Encoding: gzip/", $currentHeader) ) { - $is_gzipped = true; - } - - $this->headers[] = $currentHeader; - } - - # $results = fread($fp, $this->maxlength); - $results = ""; - while ( $data = fread($fp, $this->maxlength) ) { - $results .= $data; - if ( - strlen($results) > $this->maxlength ) { - break; - } - } - - // gunzip - if ( $is_gzipped ) { - // per http://www.php.net/manual/en/function.gzencode.php - $results = substr($results, 10); - $results = gzinflate($results); - } - - if ($this->read_timeout > 0 && $this->_check_timeout($fp)) - { - $this->status=-100; - return false; - } - - // check if there is a a redirect meta tag - - if(preg_match("']*?content[\s]*=[\s]*[\"\']?\d+;[\s]+URL[\s]*=[\s]*([^\"\']*?)[\"\']?>'i",$results,$match)) - { - $this->_redirectaddr = $this->_expandlinks($match[1],$URI); - } - - // have we hit our frame depth and is there frame src to fetch? - if(($this->_framedepth < $this->maxframes) && preg_match_all("']+)'i",$results,$match)) - { - $this->results[] = $results; - for($x=0; $x_frameurls[] = $this->_expandlinks($match[1][$x],$URI_PARTS["scheme"]."://".$this->host); - } - // have we already fetched framed content? - elseif(is_array($this->results)) - $this->results[] = $results; - // no framed content - else - $this->results = $results; - - return true; - } - -/*======================================================================*\ - Function: _httpsrequest - Purpose: go get the https data from the server using curl - Input: $url the url to fetch - $URI the full URI - $body body contents to send if any (POST) - Output: -\*======================================================================*/ - - function _httpsrequest($url,$URI,$http_method,$content_type="",$body="") - { - if($this->passcookies && $this->_redirectaddr) - $this->setcookies(); - - $headers = array(); - - $URI_PARTS = parse_url($URI); - if(empty($url)) - $url = "/"; - // GET ... header not needed for curl - //$headers[] = $http_method." ".$url." ".$this->_httpversion; - if(!empty($this->agent)) - $headers[] = "User-Agent: ".$this->agent; - if(!empty($this->host)) - $headers[] = "Host: ".$this->host; - if(!empty($this->accept)) - $headers[] = "Accept: ".$this->accept; - if(!empty($this->referer)) - $headers[] = "Referer: ".$this->referer; - if(!empty($this->cookies)) - { - if(!is_array($this->cookies)) - $this->cookies = (array)$this->cookies; - - reset($this->cookies); - if ( count($this->cookies) > 0 ) { - $cookie_str = 'Cookie: '; - foreach ( $this->cookies as $cookieKey => $cookieVal ) { - $cookie_str .= $cookieKey."=".urlencode($cookieVal)."; "; - } - $headers[] = substr($cookie_str,0,-2); - } - } - if(!empty($this->rawheaders)) - { - if(!is_array($this->rawheaders)) - $this->rawheaders = (array)$this->rawheaders; - while(list($headerKey,$headerVal) = each($this->rawheaders)) - $headers[] = $headerKey.": ".$headerVal; - } - if(!empty($content_type)) { - if ($content_type == "multipart/form-data") - $headers[] = "Content-type: $content_type; boundary=".$this->_mime_boundary; - else - $headers[] = "Content-type: $content_type"; - } - if(!empty($body)) - $headers[] = "Content-length: ".strlen($body); - if(!empty($this->user) || !empty($this->pass)) - $headers[] = "Authorization: BASIC ".base64_encode($this->user.":".$this->pass); - - for($curr_header = 0; $curr_header < count($headers); $curr_header++) { - $cmdline_params .= " -H \"".$headers[$curr_header]."\""; - } - - if(!empty($body)) - $cmdline_params .= " -d \"$body\""; - - if($this->read_timeout > 0) - $cmdline_params .= " -m ".$this->read_timeout; - - $headerfile = uniqid(time()); - - # accept self-signed certs - $cmdline_params .= " -k"; - exec($this->curl_path." -D \"/tmp/$headerfile\"".escapeshellcmd($cmdline_params)." ".escapeshellcmd($URI),$results,$return); - - if($return) - { - $this->error = "Error: cURL could not retrieve the document, error $return."; - return false; - } - - - $results = implode("\r\n",$results); - - $result_headers = file("/tmp/$headerfile"); - - $this->_redirectaddr = false; - unset($this->headers); - - for($currentHeader = 0; $currentHeader < count($result_headers); $currentHeader++) - { - - // if a header begins with Location: or URI:, set the redirect - if(preg_match("/^(Location: |URI: )/i",$result_headers[$currentHeader])) - { - // get URL portion of the redirect - preg_match("/^(Location: |URI:)(.*)/",chop($result_headers[$currentHeader]),$matches); - // look for :// in the Location header to see if hostname is included - if(!preg_match("|\:\/\/|",$matches[2])) - { - // no host in the path, so prepend - $this->_redirectaddr = $URI_PARTS["scheme"]."://".$this->host.":".$this->port; - // eliminate double slash - if(!preg_match("|^/|",$matches[2])) - $this->_redirectaddr .= "/".$matches[2]; - else - $this->_redirectaddr .= $matches[2]; - } - else - $this->_redirectaddr = $matches[2]; - } - - if(preg_match("|^HTTP/|",$result_headers[$currentHeader])) - { - $this->response_code = $result_headers[$currentHeader]; - if(preg_match("|^HTTP/[^\s]*\s(.*?)\s|",$this->response_code, $match)) - { - $this->status= $match[1]; - } - } - $this->headers[] = $result_headers[$currentHeader]; - } - - // check if there is a a redirect meta tag - - if(preg_match("']*?content[\s]*=[\s]*[\"\']?\d+;[\s]+URL[\s]*=[\s]*([^\"\']*?)[\"\']?>'i",$results,$match)) - { - $this->_redirectaddr = $this->_expandlinks($match[1],$URI); - } - - // have we hit our frame depth and is there frame src to fetch? - if(($this->_framedepth < $this->maxframes) && preg_match_all("']+)'i",$results,$match)) - { - $this->results[] = $results; - for($x=0; $x_frameurls[] = $this->_expandlinks($match[1][$x],$URI_PARTS["scheme"]."://".$this->host); - } - // have we already fetched framed content? - elseif(is_array($this->results)) - $this->results[] = $results; - // no framed content - else - $this->results = $results; - - unlink("/tmp/$headerfile"); - - return true; - } - -/*======================================================================*\ - Function: setcookies() - Purpose: set cookies for a redirection -\*======================================================================*/ - - function setcookies() - { - for($x=0; $xheaders); $x++) - { - if(preg_match("/^set-cookie:[\s]+([^=]+)=([^;]+)/i", $this->headers[$x],$match)) - $this->cookies[$match[1]] = $match[2]; - } - } - - -/*======================================================================*\ - Function: _check_timeout - Purpose: checks whether timeout has occurred - Input: $fp file pointer -\*======================================================================*/ - - function _check_timeout($fp) - { - if ($this->read_timeout > 0) { - $fp_status = socket_get_status($fp); - if ($fp_status["timed_out"]) { - $this->timed_out = true; - return true; - } - } - return false; - } - -/*======================================================================*\ - Function: _connect - Purpose: make a socket connection - Input: $fp file pointer -\*======================================================================*/ - - function _connect(&$fp) - { - if(!empty($this->proxy_host) && !empty($this->proxy_port)) - { - $this->_isproxy = true; - $host = $this->proxy_host; - $port = $this->proxy_port; - } - else - { - $host = $this->host; - $port = $this->port; - } - - $this->status = 0; - - if($fp = fsockopen( - $host, - $port, - $errno, - $errstr, - $this->_fp_timeout - )) - { - // socket connection succeeded - - return true; - } - else - { - // socket connection failed - $this->status = $errno; - switch($errno) - { - case -3: - $this->error="socket creation failed (-3)"; - case -4: - $this->error="dns lookup failure (-4)"; - case -5: - $this->error="connection refused or timed out (-5)"; - default: - $this->error="connection failed (".$errno.")"; - } - return false; - } - } -/*======================================================================*\ - Function: _disconnect - Purpose: disconnect a socket connection - Input: $fp file pointer -\*======================================================================*/ - - function _disconnect($fp) - { - return(fclose($fp)); - } - - -/*======================================================================*\ - Function: _prepare_post_body - Purpose: Prepare post body according to encoding type - Input: $formvars - form variables - $formfiles - form upload files - Output: post body -\*======================================================================*/ - - function _prepare_post_body($formvars, $formfiles) - { - settype($formvars, "array"); - settype($formfiles, "array"); - - if (count($formvars) == 0 && count($formfiles) == 0) - return; - - switch ($this->_submit_type) { - case "application/x-www-form-urlencoded": - reset($formvars); - while(list($key,$val) = each($formvars)) { - if (is_array($val) || is_object($val)) { - while (list($cur_key, $cur_val) = each($val)) { - $postdata .= urlencode($key)."[]=".urlencode($cur_val)."&"; - } - } else - $postdata .= urlencode($key)."=".urlencode($val)."&"; - } - break; - - case "multipart/form-data": - $this->_mime_boundary = "Snoopy".md5(uniqid(microtime())); - - reset($formvars); - while(list($key,$val) = each($formvars)) { - if (is_array($val) || is_object($val)) { - while (list($cur_key, $cur_val) = each($val)) { - $postdata .= "--".$this->_mime_boundary."\r\n"; - $postdata .= "Content-Disposition: form-data; name=\"$key\[\]\"\r\n\r\n"; - $postdata .= "$cur_val\r\n"; - } - } else { - $postdata .= "--".$this->_mime_boundary."\r\n"; - $postdata .= "Content-Disposition: form-data; name=\"$key\"\r\n\r\n"; - $postdata .= "$val\r\n"; - } - } - - reset($formfiles); - while (list($field_name, $file_names) = each($formfiles)) { - settype($file_names, "array"); - while (list(, $file_name) = each($file_names)) { - if (!is_readable($file_name)) continue; - - $fp = fopen($file_name, "r"); - $file_content = fread($fp, filesize($file_name)); - fclose($fp); - $base_name = basename($file_name); - - $postdata .= "--".$this->_mime_boundary."\r\n"; - $postdata .= "Content-Disposition: form-data; name=\"$field_name\"; filename=\"$base_name\"\r\n\r\n"; - $postdata .= "$file_content\r\n"; - } - } - $postdata .= "--".$this->_mime_boundary."--\r\n"; - break; - } - - return $postdata; - } -} - -?> diff --git a/html/includes/rss/htdocs/cookbook.html b/html/includes/rss/htdocs/cookbook.html deleted file mode 100644 index 2a18e74..0000000 --- a/html/includes/rss/htdocs/cookbook.html +++ /dev/null @@ -1,237 +0,0 @@ - - - Magie RSS Recipes: Simple PHP RSS How To - - - -

-

MagpieRSS Recipes: Cooking with Corbies

- -

"Four and twenty blackbirds baked in a -pie."

-

-

-

    -
  1. Limit the Number of Headlines(aka Items) Returned
  2. -
  3. Display a Custom Error Message if Something Goes -Wrong
  4. -
  5. Generate a New RSS Feed
  6. -
  7. Display Headlines More Recent then X Date
  8. -
  9. Parse a Local File Containing RSS
  10. - -
-

- -

1. Limit the Number of Headlines(aka Items) Returned.

- -

Problem:

- -You want to display the 10 (or 3 or whatever) most recent headlines, but the RSS feed -contains 15. - -

Solution:

- -
-$num_items = 10;
-$rss = fetch_rss($url);
-
-$items = array_slice($rss->items, 0, $num_items);
-
-foreach ( $items as $item ) {
-
-

Discussion:

- -Rather then trying to limit the number of items Magpie parses, a much simpler, -and more flexible approach is to take a "slice" of the array of items. And -array_slice() is smart enough to do the right thing if the feed has less items -then $num_items. - -

See:

http://www.php.net/array_slice -

- -

2. Display a Custom Error Message if Something Goes Wrong

- -

Problem:

- -You don't want Magpie's error messages showing up if something goes wrong. - -

Solution:

-
-# Magpie throws USER_WARNINGS only
-# so you can cloak these, by only showing ERRORs
-error_reporting(E_ERROR);
-
-# check the return value of fetch_rss()
-
-$rss = fetch_rss($url);
-
-if ( $rss ) {
-...display rss feed...
-}
-else {
-   echo "An error occured!  " .
-        "Consider donating more $$$ for restoration of services." .
-        "<br>Error Message: " . magpie_error();
-}
-
-

Discussion:

- -MagpieRSS triggers a warning in a number of circumstances. The 2 most common -circumstances are: if the specified RSS file isn't properly formed (usually -because it includes illegal HTML), or if Magpie can't download the remote RSS -file, and there is no cached version. - -If you don't want your users to see these warnings change your error_reporting -settings to only display ERRORs.
-Another option is to turn off display_error, -so that WARNINGs, and NOTICEs still go to the error_log but not to the webpages. - -You can do this with: - -
-# you can also do this in your php.ini file
-ini_set('display_errors', 0);
-
- -

See:

-http://www.php.net/error_reporting,
-http://www.php.net/ini_set,
-http://www.php.net/manual/en/ref.errorfunc.php
- -

3. Generate a New RSS Feed

- -

Problem:

- -Create an RSS feed for other people to use. - -

Solution:

- -Use Useful Inc's RSSWriter. - -

Discussion:

- -An example of turning a Magpie parsed RSS object back into an RSS file is -forthcoming. In the meantime RSSWriter is well documented. - -

4. Display Headlines More Recent then X Date

- -

Problem:

- -You only want to display headlines that were published on, or after a certain -date. - - -

Solution:

-
-require_once('rss_utils.inc');
-
-# get all headlines published today
-$today = getdate();
-
-# today, 12AM
-$date = mktime(0,0,0,$today['mon'], $today['mday'], $today['year']);
-
-$rss = fetch_rss($url);
-
-foreach ( $rss->items as $item ) {
-   $published = parse_w3cdtf($item['dc']['date']);
-   if ( $published >= $date ) {
-        echo "Title: " . $item['title'];
-        echo "Published: " . date("h:i:s A", $published);
-        echo "<p>";
-    }
-}
-
-

Discussion:

- -This recipe only works for RSS 1.0 feeds that include the field. -(which is very good RSS style)
-parse_w3cdtf() is defined in -rss_utils.inc, and parses RSS style dates into Unix epoch -seconds. - -

See:

-http://www.php.net/manual/en/ref.datetime.php - - -

5. Parse a Local File Containing RSS

-

Problem:

-MagpieRSS provides fetch_rss() which takes a URL and returns a -parsed RSS object, but what if you want to parse a file stored locally that -doesn't have a URL? - -

Solution

-
-require_once('rss_parse.inc');
-
-$rss_file = 'some_rss_file.rdf';
-$rss_string = read_file($rss_file);
-$rss = new MagpieRSS( $rss_string );
-
-if ( $rss and !$rss->ERROR) {
-...display rss...
-}
-else {
-    echo "Error: " . $rss->ERROR;
-}
-
-# efficiently read a file into a string
-# in php >= 4.3.0 you can simply use file_get_contents()
-#
-function read_file($filename) {
-    $fh = fopen($filename, 'r') or die($php_errormsg);
-    $rss_string = fread($fh, filesize($filename) );
-    fclose($fh);
-    return $rss_string;
-}
-
- -

Discussion

-Here we are using MagpieRSS's RSS parser directly without the convience wrapper -of fetch_rss(). We read the contents of the RSS file into a -string, and pass it to the parser constructor. Notice also that error handling -is subtly different. - -

See:

-http://www.php.net/manual/en/ref.filesystem.php,
-http://www.php.net/manual/en/language.oop.php - - - - - diff --git a/html/includes/rss/htdocs/index.html b/html/includes/rss/htdocs/index.html deleted file mode 100644 index e6b24b5..0000000 --- a/html/includes/rss/htdocs/index.html +++ /dev/null @@ -1,419 +0,0 @@ - - - Magpie RSS - PHP RSS Parser - - - - - -

MagpieRSS

-

-

MagpieRSS provides an XML-based (expat) RSS parser in PHP.

-

- MagpieRSS is compatible with RSS .9 through RSS 1.0, and supports the - RSS 1.0's modules. (with a few exceptions) -

-

- -

News!

- -

-

- -

Why?

- I wrote MagpieRSS out of a frustration with the limitations of existing - solutions. In particular many of the existing PHP solutions seemed to: -
    -
  • use a parser based on regular expressions, making for an inherently - fragile solution -
  • only support early versions of RSS -
  • discard all the interesting information besides item title, description, - and link. -
  • not build proper separation between parsing the RSS and displaying it. -
- In particular I failed to find any PHP RSS parsers that could sufficiently - parse RSS 1.0 feeds, to be useful on the RSS based event feeds we generate - at Protest.net. -

-

- -

Features

- -
    -
  • -

    Easy to Use

    - As simple as: -
    -require('rss_fetch.inc');
    -$rss = fetch_rss($url);
    -
    - -
  • -
  • -

    Parses RSS 0.9 - RSS 1.0

    - - Parses most RSS formats, including support for - 1.0 modules and limited - namespace support. RSS is packed into convenient data structures; easy to - use in PHP, and appropriate for passing to a templating system, like - Smarty. -
  • -
  • -

    Integrated Object Cache

    - - Caching the parsed RSS means that the 2nd request is fast, and that -including the rss_fetch call in your PHP page won't destroy your performance, -and force you to reply on an external cron job. And it happens transparently. - -
  • -
  • -

    HTTP Conditional GETs

    - - Save bandwidth and speed up download times with intelligent use of - Last-Modified and ETag.
    See HTTP Conditional Get for RSS Hackers -
  • - -
  • Configurable

    - - Makes extensive use of constants to allow overriding default behaviour, and - installation on shared hosts. -
  • -
  • Modular

    -
      -
    • rss_fetch.inc - wraps a simple interface (fetch_rss()) - around the library. -
    • rss_parse.inc - provides the RSS parser, and the RSS object -
    • rss_cache.inc - a simple (no GC) object cache, optimized for RSS objects -
    • rss_utils.inc - utility functions for working with RSS. currently - provides parse_w3cdtf(), for parsing W3CDTF into epoch seconds. -
    -
- - -

-

- -

Magpie's approach to parsing RSS

- - Magpie takes a naive, and inclusive approach. Absolutely - non-validating, as long as the RSS feed is well formed, Magpie will - cheerfully parse new, and never before seen tags in your RSS feeds. -

-

- This makes it very simple support the varied versions of RSS simply, but - forces the consumer of a RSS feed to be cognizant of how it is - structured.(at least if you want to do something fancy) -

-

- Magpie parses a RSS feed into a simple object, with 4 fields: - channel, items, image, and - textinput. -

-

-

channel

- $rss->channel contains key-value pairs of all tags, without - nested tags, found between the root tag (<rdf:RDF>, or <rss>) - and the end of the document. -

-

-

items

- $rss->items is an array of associative arrays, each one - describing a single item. An example that looks like: -
-<item rdf:about="http://protest.net/NorthEast/calendrome.cgi?span=event&ID=210257">
-<title>Weekly Peace Vigil</title>
-<link>http://protest.net/NorthEast/calendrome.cgi?span=event&ID=210257</link>
-<description>Wear a white ribbon</description>
-<dc:subject>Peace</dc:subject>
-<ev:startdate>2002-06-01T11:00:00</ev:startdate>
-<ev:location>Northampton, MA</ev:location>
-<ev:enddate>2002-06-01T12:00:00</ev:enddate>
-<ev:type>Protest</ev:type>
-</item>
-	

- Is parsed, and pushed on the $rss->items array as: -

-array(
-	title => 'Weekly Peace Vigil',
-	link => 'http://protest.net/NorthEast/calendrome.cgi?span=event&ID=210257',
-	description => 'Wear a white ribbon',
-	dc => array (
-			subject => 'Peace'
-		),
-	ev => array (
-		startdate => '2002-06-01T11:00:00',
-		enddate => '2002-06-01T12:00:00',
-		type => 'Protest',
-		location => 'Northampton, MA'
-	)
-);
-
-

-

-

image and textinput

-$rss->image and $rss-textinput are associative arrays -including name-value pairs for anything found between the respective parent -tags. -

-

- -

Usage Examples:

- -A very simple example would be: -
-require_once 'rss_fetch.inc';
-
-$url = 'http://magpie.sf.net/samples/imc.1-0.rdf';
-$rss = fetch_rss($url);
-
-echo "Site: ", $rss->channel['title'], "<br>\n";
-foreach ($rss->items as $item ) {
-	$title = $item[title];
-	$url   = $item[link];
-	echo "<a href=$url>$title</a></li><br>\n";
-}
-
-More soon....in the meantime you can check out a -cool tool built with -MagpieRSS, version 0.1. -

-

- -

Todos

-

RSS Parser

-
    -
  • Swap in a smarter parser that includes optional - support for validation, and required fields.
  • - -
  • Support RSS 2.0 (as much as I'm annoyed by it)
  • - -
  • Improve support for modules that rely on attributes
  • -
- -

RSS Cache

-
    -
  • Light-weight garbage collection -
- -

Fetch RSS

- -

Misc

-
    -
  • More examples
  • -
  • A test suite
  • -
  • RSS generation, perhaps with RSSwriter? -
  • -
- -

-

-

RSS Resources

- . -

-

License and Contact Info

-Magpie is distributed under the GPL license... -

-coded by: kellan (at) protest.net, feedback is always appreciated. -

-SourceForge.net Logo - - - diff --git a/html/includes/rss/rss_cache.inc b/html/includes/rss/rss_cache.inc deleted file mode 100644 index b8d436c..0000000 --- a/html/includes/rss/rss_cache.inc +++ /dev/null @@ -1,200 +0,0 @@ - - * Version: 0.51 - * License: GPL - * - * The lastest version of MagpieRSS can be obtained from: - * http://magpierss.sourceforge.net - * - * For questions, help, comments, discussion, etc., please join the - * Magpie mailing list: - * http://lists.sourceforge.net/lists/listinfo/magpierss-general - * - */ - -class RSSCache { - var $BASE_CACHE = './cache'; // where the cache files are stored - var $MAX_AGE = 3600; // when are files stale, default one hour - var $ERROR = ""; // accumulate error messages - - function RSSCache ($base='', $age='') { - if ( $base ) { - $this->BASE_CACHE = $base; - } - if ( $age ) { - $this->MAX_AGE = $age; - } - - // attempt to make the cache directory - if ( ! file_exists( $this->BASE_CACHE ) ) { - $status = @mkdir( $this->BASE_CACHE, 0755 ); - - // if make failed - if ( ! $status ) { - $this->error( - "Cache couldn't make dir '" . $this->BASE_CACHE . "'." - ); - } - } - } - -/*=======================================================================*\ - Function: set - Purpose: add an item to the cache, keyed on url - Input: url from wich the rss file was fetched - Output: true on sucess -\*=======================================================================*/ - function set ($url, $rss) { - $this->ERROR = ""; - $cache_file = $this->file_name( $url ); - $fp = @fopen( $cache_file, 'w' ); - - if ( ! $fp ) { - $this->error( - "Cache unable to open file for writing: $cache_file" - ); - return 0; - } - - - $data = $this->serialize( $rss ); - fwrite( $fp, $data ); - fclose( $fp ); - - return $cache_file; - } - -/*=======================================================================*\ - Function: get - Purpose: fetch an item from the cache - Input: url from wich the rss file was fetched - Output: cached object on HIT, false on MISS -\*=======================================================================*/ - function get ($url) { - $this->ERROR = ""; - $cache_file = $this->file_name( $url ); - - if ( ! file_exists( $cache_file ) ) { - $this->debug( - "Cache doesn't contain: $url (cache file: $cache_file)" - ); - return 0; - } - - $fp = @fopen($cache_file, 'r'); - if ( ! $fp ) { - $this->error( - "Failed to open cache file for reading: $cache_file" - ); - return 0; - } - - if ($filesize = filesize($cache_file) ) { - $data = fread( $fp, filesize($cache_file) ); - $rss = $this->unserialize( $data ); - - return $rss; - } - - return 0; - } - -/*=======================================================================*\ - Function: check_cache - Purpose: check a url for membership in the cache - and whether the object is older then MAX_AGE (ie. STALE) - Input: url from wich the rss file was fetched - Output: cached object on HIT, false on MISS -\*=======================================================================*/ - function check_cache ( $url ) { - $this->ERROR = ""; - $filename = $this->file_name( $url ); - - if ( file_exists( $filename ) ) { - // find how long ago the file was added to the cache - // and whether that is longer then MAX_AGE - $mtime = filemtime( $filename ); - $age = time() - $mtime; - if ( $this->MAX_AGE > $age ) { - // object exists and is current - return 'HIT'; - } - else { - // object exists but is old - return 'STALE'; - } - } - else { - // object does not exist - return 'MISS'; - } - } - - function cache_age( $cache_key ) { - $filename = $this->file_name( $url ); - if ( file_exists( $filename ) ) { - $mtime = filemtime( $filename ); - $age = time() - $mtime; - return $age; - } - else { - return -1; - } - } - -/*=======================================================================*\ - Function: serialize -\*=======================================================================*/ - function serialize ( $rss ) { - return serialize( $rss ); - } - -/*=======================================================================*\ - Function: unserialize -\*=======================================================================*/ - function unserialize ( $data ) { - return unserialize( $data ); - } - -/*=======================================================================*\ - Function: file_name - Purpose: map url to location in cache - Input: url from wich the rss file was fetched - Output: a file name -\*=======================================================================*/ - function file_name ($url) { - $filename = md5( $url ); - return join( DIRECTORY_SEPARATOR, array( $this->BASE_CACHE, $filename ) ); - } - -/*=======================================================================*\ - Function: error - Purpose: register error -\*=======================================================================*/ - function error ($errormsg, $lvl=E_USER_WARNING) { - // append PHP's error message if track_errors enabled - if ( isset($php_errormsg) ) { - $errormsg .= " ($php_errormsg)"; - } - $this->ERROR = $errormsg; - if ( MAGPIE_DEBUG ) { - trigger_error( $errormsg, $lvl); - } - else { - error_log( $errormsg, 0); - } - } - - function debug ($debugmsg, $lvl=E_USER_NOTICE) { - if ( MAGPIE_DEBUG ) { - $this->error("MagpieRSS [debug] $debugmsg", $lvl); - } - } - -} - -?> diff --git a/html/includes/rss/rss_fetch.inc b/html/includes/rss/rss_fetch.inc deleted file mode 100644 index f2fa2fa..0000000 --- a/html/includes/rss/rss_fetch.inc +++ /dev/null @@ -1,458 +0,0 @@ - - * License: GPL - * - * The lastest version of MagpieRSS can be obtained from: - * http://magpierss.sourceforge.net - * - * For questions, help, comments, discussion, etc., please join the - * Magpie mailing list: - * magpierss-general@lists.sourceforge.net - * - */ - -// Setup MAGPIE_DIR for use on hosts that don't include -// the current path in include_path. -// with thanks to rajiv and smarty -if (!defined('DIR_SEP')) { - define('DIR_SEP', DIRECTORY_SEPARATOR); -} - -if (!defined('MAGPIE_DIR')) { - define('MAGPIE_DIR', dirname(__FILE__) . DIR_SEP); -} - -require_once( MAGPIE_DIR . 'rss_parse.inc' ); -require_once( MAGPIE_DIR . 'rss_cache.inc' ); - -// for including 3rd party libraries -define('MAGPIE_EXTLIB', MAGPIE_DIR . 'extlib' . DIR_SEP); -require_once( MAGPIE_EXTLIB . 'Snoopy.class.inc'); - - -/* - * CONSTANTS - redefine these in your script to change the - * behaviour of fetch_rss() currently, most options effect the cache - * - * MAGPIE_CACHE_ON - Should Magpie cache parsed RSS objects? - * For me a built in cache was essential to creating a "PHP-like" - * feel to Magpie, see rss_cache.inc for rationale - * - * - * MAGPIE_CACHE_DIR - Where should Magpie cache parsed RSS objects? - * This should be a location that the webserver can write to. If this - * directory does not already exist Mapie will try to be smart and create - * it. This will often fail for permissions reasons. - * - * - * MAGPIE_CACHE_AGE - How long to store cached RSS objects? In seconds. - * - * - * MAGPIE_CACHE_FRESH_ONLY - If remote fetch fails, throw error - * instead of returning stale object? - * - * MAGPIE_DEBUG - Display debugging notices? - * -*/ - - -/*=======================================================================*\ - Function: fetch_rss: - Purpose: return RSS object for the give url - maintain the cache - Input: url of RSS file - Output: parsed RSS object (see rss_parse.inc) - - NOTES ON CACHEING: - If caching is on (MAGPIE_CACHE_ON) fetch_rss will first check the cache. - - NOTES ON RETRIEVING REMOTE FILES: - If conditional gets are on (MAGPIE_CONDITIONAL_GET_ON) fetch_rss will - return a cached object, and touch the cache object upon recieving a - 304. - - NOTES ON FAILED REQUESTS: - If there is an HTTP error while fetching an RSS object, the cached - version will be return, if it exists (and if MAGPIE_CACHE_FRESH_ONLY is off) -\*=======================================================================*/ - -define('MAGPIE_VERSION', '0.72'); - -$MAGPIE_ERROR = ""; - -function fetch_rss ($url) { - // initialize constants - init(); - - if ( !isset($url) ) { - error("fetch_rss called without a url"); - return false; - } - - // if cache is disabled - if ( !MAGPIE_CACHE_ON ) { - // fetch file, and parse it - $resp = _fetch_remote_file( $url ); - if ( is_success( $resp->status ) ) { - return _response_to_rss( $resp ); - } - else { - error("Failed to fetch $url and cache is off"); - return false; - } - } - // else cache is ON - else { - // Flow - // 1. check cache - // 2. if there is a hit, make sure its fresh - // 3. if cached obj fails freshness check, fetch remote - // 4. if remote fails, return stale object, or error - - $cache = new RSSCache( MAGPIE_CACHE_DIR, MAGPIE_CACHE_AGE ); - - if (MAGPIE_DEBUG and $cache->ERROR) { - debug($cache->ERROR, E_USER_WARNING); - } - - - $cache_status = 0; // response of check_cache - $request_headers = array(); // HTTP headers to send with fetch - $rss = 0; // parsed RSS object - $errormsg = 0; // errors, if any - - // store parsed XML by desired output encoding - // as character munging happens at parse time - $cache_key = $url . MAGPIE_OUTPUT_ENCODING; - - if (!$cache->ERROR) { - // return cache HIT, MISS, or STALE - $cache_status = $cache->check_cache( $cache_key); - } - - // if object cached, and cache is fresh, return cached obj - if ( $cache_status == 'HIT' ) { - $rss = $cache->get( $cache_key ); - if ( isset($rss) and $rss ) { - // should be cache age - $rss->from_cache = 1; - if ( MAGPIE_DEBUG > 1) { - debug("MagpieRSS: Cache HIT", E_USER_NOTICE); - } - return $rss; - } - } - - // else attempt a conditional get - - // setup headers - if ( $cache_status == 'STALE' ) { - $rss = $cache->get( $cache_key ); - if ( $rss and $rss->etag and $rss->last_modified ) { - $request_headers['If-None-Match'] = $rss->etag; - $request_headers['If-Last-Modified'] = $rss->last_modified; - } - } - - $resp = _fetch_remote_file( $url, $request_headers ); - - if (isset($resp) and $resp) { - if ($resp->status == '304' ) { - // we have the most current copy - if ( MAGPIE_DEBUG > 1) { - debug("Got 304 for $url"); - } - // reset cache on 304 (at minutillo insistent prodding) - $cache->set($cache_key, $rss); - return $rss; - } - elseif ( is_success( $resp->status ) ) { - $rss = _response_to_rss( $resp ); - if ( $rss ) { - if (MAGPIE_DEBUG > 1) { - debug("Fetch successful"); - } - // add object to cache - $cache->set( $cache_key, $rss ); - return $rss; - } - } - else { - $errormsg = "Failed to fetch $url "; - if ( $resp->status == '-100' ) { - $errormsg .= "(Request timed out after " . MAGPIE_FETCH_TIME_OUT . " seconds)"; - } - elseif ( $resp->error ) { - # compensate for Snoopy's annoying habbit to tacking - # on '\n' - $http_error = substr($resp->error, 0, -2); - $errormsg .= "(HTTP Error: $http_error)"; - } - else { - $errormsg .= "(HTTP Response: " . $resp->response_code .')'; - } - } - } - else { - $errormsg = "Unable to retrieve RSS file for unknown reasons."; - } - - // else fetch failed - - // attempt to return cached object - if ($rss) { - if ( MAGPIE_DEBUG ) { - debug("Returning STALE object for $url"); - } - return $rss; - } - - // else we totally failed - error( $errormsg ); - - return false; - - } // end if ( !MAGPIE_CACHE_ON ) { -} // end fetch_rss() - -/*=======================================================================*\ - Function: error - Purpose: set MAGPIE_ERROR, and trigger error -\*=======================================================================*/ - -function error ($errormsg, $lvl=E_USER_WARNING) { - global $MAGPIE_ERROR; - - // append PHP's error message if track_errors enabled - if ( isset($php_errormsg) ) { - $errormsg .= " ($php_errormsg)"; - } - if ( $errormsg ) { - $errormsg = "MagpieRSS: $errormsg"; - $MAGPIE_ERROR = $errormsg; - trigger_error( $errormsg, $lvl); - } -} - -function debug ($debugmsg, $lvl=E_USER_NOTICE) { - trigger_error("MagpieRSS [debug] $debugmsg", $lvl); -} - -/*=======================================================================*\ - Function: magpie_error - Purpose: accessor for the magpie error variable -\*=======================================================================*/ -function magpie_error ($errormsg="") { - global $MAGPIE_ERROR; - - if ( isset($errormsg) and $errormsg ) { - $MAGPIE_ERROR = $errormsg; - } - - return $MAGPIE_ERROR; -} - -/*=======================================================================*\ - Function: _fetch_remote_file - Purpose: retrieve an arbitrary remote file - Input: url of the remote file - headers to send along with the request (optional) - Output: an HTTP response object (see Snoopy.class.inc) -\*=======================================================================*/ -function _fetch_remote_file ($url, $headers = "" ) { - // Snoopy is an HTTP client in PHP - $client = new Snoopy(); - $client->agent = MAGPIE_USER_AGENT; - $client->read_timeout = MAGPIE_FETCH_TIME_OUT; - $client->use_gzip = MAGPIE_USE_GZIP; - if (is_array($headers) ) { - $client->rawheaders = $headers; - } - - @$client->fetch($url); - return $client; - -} - -/*=======================================================================*\ - Function: _response_to_rss - Purpose: parse an HTTP response object into an RSS object - Input: an HTTP response object (see Snoopy) - Output: parsed RSS object (see rss_parse) -\*=======================================================================*/ -function _response_to_rss ($resp) { - $rss = new MagpieRSS( $resp->results, MAGPIE_OUTPUT_ENCODING, MAGPIE_INPUT_ENCODING, MAGPIE_DETECT_ENCODING ); - - // if RSS parsed successfully - if ( $rss and !$rss->ERROR) { - - // find Etag, and Last-Modified - foreach($resp->headers as $h) { - // 2003-03-02 - Nicola Asuni (www.tecnick.com) - fixed bug "Undefined offset: 1" - if (strpos($h, ": ")) { - list($field, $val) = explode(": ", $h, 2); - } - else { - $field = $h; - $val = ""; - } - - if ( $field == 'ETag' ) { - $rss->etag = $val; - } - - if ( $field == 'Last-Modified' ) { - $rss->last_modified = $val; - } - } - - return $rss; - } // else construct error message - else { - $errormsg = "Failed to parse RSS file."; - - if ($rss) { - $errormsg .= " (" . $rss->ERROR . ")"; - } - error($errormsg); - - return false; - } // end if ($rss and !$rss->error) -} - -/*=======================================================================*\ - Function: init - Purpose: setup constants with default values - check for user overrides -\*=======================================================================*/ -function init () { - if ( defined('MAGPIE_INITALIZED') ) { - return; - } - else { - define('MAGPIE_INITALIZED', true); - } - - if ( !defined('MAGPIE_CACHE_ON') ) { - define('MAGPIE_CACHE_ON', true); - } - - if ( !defined('MAGPIE_CACHE_DIR') ) { - define('MAGPIE_CACHE_DIR', './cache'); - } - - if ( !defined('MAGPIE_CACHE_AGE') ) { - define('MAGPIE_CACHE_AGE', 60*60); // one hour - } - - if ( !defined('MAGPIE_CACHE_FRESH_ONLY') ) { - define('MAGPIE_CACHE_FRESH_ONLY', false); - } - - if ( !defined('MAGPIE_OUTPUT_ENCODING') ) { - define('MAGPIE_OUTPUT_ENCODING', 'ISO-8859-1'); - } - - if ( !defined('MAGPIE_INPUT_ENCODING') ) { - define('MAGPIE_INPUT_ENCODING', null); - } - - if ( !defined('MAGPIE_DETECT_ENCODING') ) { - define('MAGPIE_DETECT_ENCODING', true); - } - - if ( !defined('MAGPIE_DEBUG') ) { - define('MAGPIE_DEBUG', 0); - } - - if ( !defined('MAGPIE_USER_AGENT') ) { - $ua = 'MagpieRSS/'. MAGPIE_VERSION . ' (+http://magpierss.sf.net'; - - if ( MAGPIE_CACHE_ON ) { - $ua = $ua . ')'; - } - else { - $ua = $ua . '; No cache)'; - } - - define('MAGPIE_USER_AGENT', $ua); - } - - if ( !defined('MAGPIE_FETCH_TIME_OUT') ) { - define('MAGPIE_FETCH_TIME_OUT', 5); // 5 second timeout - } - - // use gzip encoding to fetch rss files if supported? - if ( !defined('MAGPIE_USE_GZIP') ) { - define('MAGPIE_USE_GZIP', true); - } -} - -// NOTE: the following code should really be in Snoopy, or at least -// somewhere other then rss_fetch! - -/*=======================================================================*\ - HTTP STATUS CODE PREDICATES - These functions attempt to classify an HTTP status code - based on RFC 2616 and RFC 2518. - - All of them take an HTTP status code as input, and return true or false - - All this code is adapted from LWP's HTTP::Status. -\*=======================================================================*/ - - -/*=======================================================================*\ - Function: is_info - Purpose: return true if Informational status code -\*=======================================================================*/ -function is_info ($sc) { - return $sc >= 100 && $sc < 200; -} - -/*=======================================================================*\ - Function: is_success - Purpose: return true if Successful status code -\*=======================================================================*/ -function is_success ($sc) { - return $sc >= 200 && $sc < 300; -} - -/*=======================================================================*\ - Function: is_redirect - Purpose: return true if Redirection status code -\*=======================================================================*/ -function is_redirect ($sc) { - return $sc >= 300 && $sc < 400; -} - -/*=======================================================================*\ - Function: is_error - Purpose: return true if Error status code -\*=======================================================================*/ -function is_error ($sc) { - return $sc >= 400 && $sc < 600; -} - -/*=======================================================================*\ - Function: is_client_error - Purpose: return true if Error status code, and its a client error -\*=======================================================================*/ -function is_client_error ($sc) { - return $sc >= 400 && $sc < 500; -} - -/*=======================================================================*\ - Function: is_client_error - Purpose: return true if Error status code, and its a server error -\*=======================================================================*/ -function is_server_error ($sc) { - return $sc >= 500 && $sc < 600; -} - -?> diff --git a/html/includes/rss/rss_parse.inc b/html/includes/rss/rss_parse.inc deleted file mode 100644 index 56d420f..0000000 --- a/html/includes/rss/rss_parse.inc +++ /dev/null @@ -1,605 +0,0 @@ - -* @version 0.7a -* @license GPL -* -*/ - -define('RSS', 'RSS'); -define('ATOM', 'Atom'); - -require_once (MAGPIE_DIR . 'rss_utils.inc'); - -/** -* Hybrid parser, and object, takes RSS as a string and returns a simple object. -* -* see: rss_fetch.inc for a simpler interface with integrated caching support -* -*/ -class MagpieRSS { - var $parser; - - var $current_item = array(); // item currently being parsed - var $items = array(); // collection of parsed items - var $channel = array(); // hash of channel fields - var $textinput = array(); - var $image = array(); - var $feed_type; - var $feed_version; - var $encoding = ''; // output encoding of parsed rss - - var $_source_encoding = ''; // only set if we have to parse xml prolog - - var $ERROR = ""; - var $WARNING = ""; - - // define some constants - - var $_CONTENT_CONSTRUCTS = array('content', 'summary', 'info', 'title', 'tagline', 'copyright'); - var $_KNOWN_ENCODINGS = array('UTF-8', 'US-ASCII', 'ISO-8859-1'); - - // parser variables, useless if you're not a parser, treat as private - var $stack = array(); // parser stack - var $inchannel = false; - var $initem = false; - var $incontent = false; // if in Atom field - var $intextinput = false; - var $inimage = false; - var $current_namespace = false; - - - /** - * Set up XML parser, parse source, and return populated RSS object.. - * - * @param string $source string containing the RSS to be parsed - * - * NOTE: Probably a good idea to leave the encoding options alone unless - * you know what you're doing as PHP's character set support is - * a little weird. - * - * NOTE: A lot of this is unnecessary but harmless with PHP5 - * - * - * @param string $output_encoding output the parsed RSS in this character - * set defaults to ISO-8859-1 as this is PHP's - * default. - * - * NOTE: might be changed to UTF-8 in future - * versions. - * - * @param string $input_encoding the character set of the incoming RSS source. - * Leave blank and Magpie will try to figure it - * out. - * - * - * @param bool $detect_encoding if false Magpie won't attempt to detect - * source encoding. (caveat emptor) - * - */ - function MagpieRSS ($source, $output_encoding='ISO-8859-1', - $input_encoding=null, $detect_encoding=true) - { - # if PHP xml isn't compiled in, die - # - if (!function_exists('xml_parser_create')) { - $this->error( "Failed to load PHP's XML Extension. " . - "http://www.php.net/manual/en/ref.xml.php", - E_USER_ERROR ); - } - - list($parser, $source) = $this->create_parser($source, - $output_encoding, $input_encoding, $detect_encoding); - - - if (!is_resource($parser)) { - $this->error( "Failed to create an instance of PHP's XML parser. " . - "http://www.php.net/manual/en/ref.xml.php", - E_USER_ERROR ); - } - - - $this->parser = $parser; - - # pass in parser, and a reference to this object - # setup handlers - # - xml_set_object( $this->parser, $this ); - xml_set_element_handler($this->parser, - 'feed_start_element', 'feed_end_element' ); - - xml_set_character_data_handler( $this->parser, 'feed_cdata' ); - - $status = xml_parse( $this->parser, $source ); - - if (! $status ) { - $errorcode = xml_get_error_code( $this->parser ); - if ( $errorcode != XML_ERROR_NONE ) { - $xml_error = xml_error_string( $errorcode ); - $error_line = xml_get_current_line_number($this->parser); - $error_col = xml_get_current_column_number($this->parser); - $errormsg = "$xml_error at line $error_line, column $error_col"; - - $this->error( $errormsg ); - } - } - - xml_parser_free( $this->parser ); - - $this->normalize(); - } - - function feed_start_element($p, $element, &$attrs) { - $el = $element = strtolower($element); - $attrs = array_change_key_case($attrs, CASE_LOWER); - - // check for a namespace, and split if found - $ns = false; - if ( strpos( $element, ':' ) ) { - list($ns, $el) = split( ':', $element, 2); - } - if ( $ns and $ns != 'rdf' ) { - $this->current_namespace = $ns; - } - - # if feed type isn't set, then this is first element of feed - # identify feed from root element - # - if (!isset($this->feed_type) ) { - if ( $el == 'rdf' ) { - $this->feed_type = RSS; - $this->feed_version = '1.0'; - } - elseif ( $el == 'rss' ) { - $this->feed_type = RSS; - $this->feed_version = $attrs['version']; - } - elseif ( $el == 'feed' ) { - $this->feed_type = ATOM; - $this->feed_version = $attrs['version']; - $this->inchannel = true; - } - return; - } - - if ( $el == 'channel' ) - { - $this->inchannel = true; - } - elseif ($el == 'item' or $el == 'entry' ) - { - $this->initem = true; - if ( isset($attrs['rdf:about']) ) { - $this->current_item['about'] = $attrs['rdf:about']; - } - } - - // if we're in the default namespace of an RSS feed, - // record textinput or image fields - elseif ( - $this->feed_type == RSS and - $this->current_namespace == '' and - $el == 'textinput' ) - { - $this->intextinput = true; - } - - elseif ( - $this->feed_type == RSS and - $this->current_namespace == '' and - $el == 'image' ) - { - $this->inimage = true; - } - - # handle atom content constructs - elseif ( $this->feed_type == ATOM and in_array($el, $this->_CONTENT_CONSTRUCTS) ) - { - // avoid clashing w/ RSS mod_content - if ($el == 'content' ) { - $el = 'atom_content'; - } - - $this->incontent = $el; - - - } - - // if inside an Atom content construct (e.g. content or summary) field treat tags as text - elseif ($this->feed_type == ATOM and $this->incontent ) - { - // if tags are inlined, then flatten - $attrs_str = join(' ', - array_map('map_attrs', - array_keys($attrs), - array_values($attrs) ) ); - - $this->append_content( "<$element $attrs_str>" ); - - array_unshift( $this->stack, $el ); - } - - // Atom support many links per containging element. - // Magpie treats link elements of type rel='alternate' - // as being equivalent to RSS's simple link element. - // - elseif ($this->feed_type == ATOM and $el == 'link' ) - { - if ( isset($attrs['rel']) and $attrs['rel'] == 'alternate' ) - { - $link_el = 'link'; - } - else { - $link_el = 'link_' . $attrs['rel']; - } - - $this->append($link_el, $attrs['href']); - } - // set stack[0] to current element - else { - array_unshift($this->stack, $el); - } - } - - - - function feed_cdata ($p, $text) { - if ($this->feed_type == ATOM and $this->incontent) - { - $this->append_content( $text ); - } - else { - $current_el = join('_', array_reverse($this->stack)); - $this->append($current_el, $text); - } - } - - function feed_end_element ($p, $el) { - $el = strtolower($el); - - if ( $el == 'item' or $el == 'entry' ) - { - $this->items[] = $this->current_item; - $this->current_item = array(); - $this->initem = false; - } - elseif ($this->feed_type == RSS and $this->current_namespace == '' and $el == 'textinput' ) - { - $this->intextinput = false; - } - elseif ($this->feed_type == RSS and $this->current_namespace == '' and $el == 'image' ) - { - $this->inimage = false; - } - elseif ($this->feed_type == ATOM and in_array($el, $this->_CONTENT_CONSTRUCTS) ) - { - $this->incontent = false; - } - elseif ($el == 'channel' or $el == 'feed' ) - { - $this->inchannel = false; - } - elseif ($this->feed_type == ATOM and $this->incontent ) { - // balance tags properly - // note: i don't think this is actually neccessary - if ( $this->stack[0] == $el ) - { - $this->append_content(""); - } - else { - $this->append_content("<$el />"); - } - - array_shift( $this->stack ); - } - else { - array_shift( $this->stack ); - } - - $this->current_namespace = false; - } - - function concat (&$str1, $str2="") { - if (!isset($str1) ) { - $str1=""; - } - $str1 .= $str2; - } - - - - function append_content($text) { - if ( $this->initem ) { - $this->concat( $this->current_item[ $this->incontent ], $text ); - } - elseif ( $this->inchannel ) { - $this->concat( $this->channel[ $this->incontent ], $text ); - } - } - - // smart append - field and namespace aware - function append($el, $text) { - if (!$el) { - return; - } - if ( $this->current_namespace ) - { - if ( $this->initem ) { - $this->concat( - $this->current_item[ $this->current_namespace ][ $el ], $text); - } - elseif ($this->inchannel) { - $this->concat( - $this->channel[ $this->current_namespace][ $el ], $text ); - } - elseif ($this->intextinput) { - $this->concat( - $this->textinput[ $this->current_namespace][ $el ], $text ); - } - elseif ($this->inimage) { - $this->concat( - $this->image[ $this->current_namespace ][ $el ], $text ); - } - } - else { - if ( $this->initem ) { - $this->concat( - $this->current_item[ $el ], $text); - } - elseif ($this->intextinput) { - $this->concat( - $this->textinput[ $el ], $text ); - } - elseif ($this->inimage) { - $this->concat( - $this->image[ $el ], $text ); - } - elseif ($this->inchannel) { - $this->concat( - $this->channel[ $el ], $text ); - } - - } - } - - function normalize () { - // if atom populate rss fields - if ( $this->is_atom() ) { - $this->channel['description'] = $this->channel['tagline']; - for ( $i = 0; $i < count($this->items); $i++) { - $item = $this->items[$i]; - if ( isset($item['summary']) ) - $item['description'] = $item['summary']; - if ( isset($item['atom_content'])) - $item['content']['encoded'] = $item['atom_content']; - - $atom_date = (isset($item['issued']) ) ? $item['issued'] : $item['modified']; - if ( $atom_date ) { - $epoch = @parse_w3cdtf($atom_date); - if ($epoch and $epoch > 0) { - $item['date_timestamp'] = $epoch; - } - } - - $this->items[$i] = $item; - } - } - elseif ( $this->is_rss() ) { - $this->channel['tagline'] = $this->channel['description']; - for ( $i = 0; $i < count($this->items); $i++) { - $item = $this->items[$i]; - if ( isset($item['description'])) - $item['summary'] = $item['description']; - if ( isset($item['content']['encoded'] ) ) - $item['atom_content'] = $item['content']['encoded']; - - if ( $this->is_rss() == '1.0' and isset($item['dc']['date']) ) { - $epoch = @parse_w3cdtf($item['dc']['date']); - if ($epoch and $epoch > 0) { - $item['date_timestamp'] = $epoch; - } - } - elseif ( isset($item['pubdate']) ) { - $epoch = @strtotime($item['pubdate']); - if ($epoch > 0) { - $item['date_timestamp'] = $epoch; - } - } - - $this->items[$i] = $item; - } - } - } - - - function is_rss () { - if ( $this->feed_type == RSS ) { - return $this->feed_version; - } - else { - return false; - } - } - - function is_atom() { - if ( $this->feed_type == ATOM ) { - return $this->feed_version; - } - else { - return false; - } - } - - /** - * return XML parser, and possibly re-encoded source - * - */ - function create_parser($source, $out_enc, $in_enc, $detect) { - if ( substr(phpversion(),0,1) == 5) { - $parser = $this->php5_create_parser($in_enc, $detect); - } - else { - list($parser, $source) = $this->php4_create_parser($source, $in_enc, $detect); - } - if ($out_enc) { - $this->encoding = $out_enc; - xml_parser_set_option($parser, XML_OPTION_TARGET_ENCODING, $out_enc); - } - - return array($parser, $source); - } - - /** - * Instantiate an XML parser under PHP5 - * - * PHP5 will do a fine job of detecting input encoding - * if passed an empty string as the encoding. - * - * All hail libxml2! - * - */ - function php5_create_parser($in_enc, $detect) { - // by default php5 does a fine job of detecting input encodings - if(!$detect && $in_enc) { - return xml_parser_create($in_enc); - } - else { - return xml_parser_create(''); - } - } - - /** - * Instaniate an XML parser under PHP4 - * - * Unfortunately PHP4's support for character encodings - * and especially XML and character encodings sucks. As - * long as the documents you parse only contain characters - * from the ISO-8859-1 character set (a superset of ASCII, - * and a subset of UTF-8) you're fine. However once you - * step out of that comfy little world things get mad, bad, - * and dangerous to know. - * - * The following code is based on SJM's work with FoF - * @see http://minutillo.com/steve/weblog/2004/6/17/php-xml-and-character-encodings-a-tale-of-sadness-rage-and-data-loss - * - */ - function php4_create_parser($source, $in_enc, $detect) { - if ( !$detect ) { - return array(xml_parser_create($in_enc), $source); - } - - if (!$in_enc) { - if (preg_match('//m', $source, $m)) { - $in_enc = strtoupper($m[1]); - $this->source_encoding = $in_enc; - } - else { - $in_enc = 'UTF-8'; - } - } - - if ($this->known_encoding($in_enc)) { - return array(xml_parser_create($in_enc), $source); - } - - // the dectected encoding is not one of the simple encodings PHP knows - - // attempt to use the iconv extension to - // cast the XML to a known encoding - // @see http://php.net/iconv - - if (function_exists('iconv')) { - $encoded_source = iconv($in_enc,'UTF-8', $source); - if ($encoded_source) { - return array(xml_parser_create('UTF-8'), $encoded_source); - } - } - - // iconv didn't work, try mb_convert_encoding - // @see http://php.net/mbstring - if(function_exists('mb_convert_encoding')) { - $encoded_source = mb_convert_encoding($source, 'UTF-8', $in_enc ); - if ($encoded_source) { - return array(xml_parser_create('UTF-8'), $encoded_source); - } - } - - // else - $this->error("Feed is in an unsupported character encoding. ($in_enc) " . - "You may see strange artifacts, and mangled characters.", - E_USER_NOTICE); - - return array(xml_parser_create(), $source); - } - - function known_encoding($enc) { - $enc = strtoupper($enc); - if ( in_array($enc, $this->_KNOWN_ENCODINGS) ) { - return $enc; - } - else { - return false; - } - } - - function error ($errormsg, $lvl=E_USER_WARNING) { - // append PHP's error message if track_errors enabled - if ( isset($php_errormsg) ) { - $errormsg .= " ($php_errormsg)"; - } - if ( MAGPIE_DEBUG ) { - trigger_error( $errormsg, $lvl); - } - else { - error_log( $errormsg, 0); - } - - $notices = E_USER_NOTICE|E_NOTICE; - if ( $lvl&$notices ) { - $this->WARNING = $errormsg; - } else { - $this->ERROR = $errormsg; - } - } - - -} // end class RSS - -function map_attrs($k, $v) { - return "$k=\"$v\""; -} - -// patch to support medieval versions of PHP4.1.x, -// courtesy, Ryan Currie, ryan@digibliss.com - -if (!function_exists('array_change_key_case')) { - define("CASE_UPPER",1); - define("CASE_LOWER",0); - - - function array_change_key_case($array,$case=CASE_LOWER) { - if ($case=CASE_LOWER) $cmd=strtolower; - elseif ($case=CASE_UPPER) $cmd=strtoupper; - foreach($array as $key=>$value) { - $output[$cmd($key)]=$value; - } - return $output; - } - -} - -?> diff --git a/html/includes/rss/rss_utils.inc b/html/includes/rss/rss_utils.inc deleted file mode 100644 index 2a29e72..0000000 --- a/html/includes/rss/rss_utils.inc +++ /dev/null @@ -1,67 +0,0 @@ - - * Version: 0.51 - * License: GPL - * - * The lastest version of MagpieRSS can be obtained from: - * http://magpierss.sourceforge.net - * - * For questions, help, comments, discussion, etc., please join the - * Magpie mailing list: - * magpierss-general@lists.sourceforge.net - */ - - -/*======================================================================*\ - Function: parse_w3cdtf - Purpose: parse a W3CDTF date into unix epoch - - NOTE: http://www.w3.org/TR/NOTE-datetime -\*======================================================================*/ - -function parse_w3cdtf ( $date_str ) { - - # regex to match wc3dtf - $pat = "/(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2})(:(\d{2}))?(?:([-+])(\d{2}):?(\d{2})|(Z))?/"; - - if ( preg_match( $pat, $date_str, $match ) ) { - list( $year, $month, $day, $hours, $minutes, $seconds) = - array( $match[1], $match[2], $match[3], $match[4], $match[5], $match[6]); - - # calc epoch for current date assuming GMT - $epoch = gmmktime( $hours, $minutes, $seconds, $month, $day, $year); - - $offset = 0; - if ( $match[10] == 'Z' ) { - # zulu time, aka GMT - } - else { - list( $tz_mod, $tz_hour, $tz_min ) = - array( $match[8], $match[9], $match[10]); - - # zero out the variables - if ( ! $tz_hour ) { $tz_hour = 0; } - if ( ! $tz_min ) { $tz_min = 0; } - - $offset_secs = (($tz_hour*60)+$tz_min)*60; - - # is timezone ahead of GMT? then subtract offset - # - if ( $tz_mod == '+' ) { - $offset_secs = $offset_secs * -1; - } - - $offset = $offset_secs; - } - $epoch = $epoch + $offset; - return $epoch; - } - else { - return -1; - } -} - -?> diff --git a/html/includes/rss/scripts/README b/html/includes/rss/scripts/README deleted file mode 100644 index e37afe5..0000000 --- a/html/includes/rss/scripts/README +++ /dev/null @@ -1,27 +0,0 @@ -Some example on how to use Magpie: - -* magpie_simple.php * - Simple example of fetching and parsing an RSS file. Expects to be - called with a query param 'rss_url=http://' - -* simple_smarty.php * - Similiar to magpie_simple, but using the Smarty template engine to do - display. Also demostrates using rss_utils.inc and a smarty plugin to - parse and display when each RSS item was published. - -* magpie_debug.php * - Displays all the information available from a parsed feed. - -* smarty_plugin/modifier.rss_date_parse.php * - - A Smarty plugin for parsing RSS style dates. You must include rss_utils.inc - for this plugin to work. It also must be installed in the Smarty plugin - directory, see the Smarty docs for details. - -* templates/simple.smarty - A Smarty template used by simple_smarty.php which demostrates - displaying an RSS feed and using the date parse plugin. - - -The Smarty template engine and documentation on how to use it are available from -http://smarty.php.net diff --git a/html/includes/rss/scripts/magpie_debug.php b/html/includes/rss/scripts/magpie_debug.php deleted file mode 100644 index 84549db..0000000 --- a/html/includes/rss/scripts/magpie_debug.php +++ /dev/null @@ -1,80 +0,0 @@ -Example Output"; - echo "Channel: " . $rss->channel['title'] . "

"; - echo "

    "; - foreach ($rss->items as $item) { - $href = $item['link']; - $title = $item['title']; - echo "
  • $title
  • "; - } - echo "
"; -} -else { - echo "Error: " . magpie_error(); -} -?> - -
- RSS URL:
- -
- -

Parsed Results (var_dump'ed)

-
-
-
- -Error: PHP compiled without XML support (--with-xml), Mapgie won't work without PHP support for XML.
\n"; - exit; - } - else { - echo "OK: Found an XML parser.
\n"; - } - - if ( ! function_exists('gzinflate') ) { - echo "Warning: PHP compiled without Zlib support (--with-zlib). No support for GZIP encoding.
\n"; - } - else { - echo "OK: Support for GZIP encoding.
\n"; - } - - if ( ! (function_exists('iconv') and function_exists('mb_convert_encoding') ) ) { - echo "Warning: No support for iconv (--with-iconv) or multi-byte strings (--enable-mbstring)." . - "No support character set munging.
\n"; - } - else { - echo "OK: Support for character munging.
\n"; - } -} - -?> diff --git a/html/includes/rss/scripts/magpie_simple.php b/html/includes/rss/scripts/magpie_simple.php deleted file mode 100644 index 282735e..0000000 --- a/html/includes/rss/scripts/magpie_simple.php +++ /dev/null @@ -1,29 +0,0 @@ -channel['title'] . "

"; - echo "

    "; - foreach ($rss->items as $item) { - $href = $item['link']; - $title = $item['title']; - echo "
  • $title
  • "; - } - echo "
"; -} -?> - -
- RSS URL:
- -
- -

-

Security Note:

-This is a simple example script. If this was a real script we probably wouldn't allow strangers to submit random URLs, and we certainly wouldn't simply echo anything passed in the URL. Additionally its a bad idea to leave this example script lying around. -

\ No newline at end of file diff --git a/html/includes/rss/scripts/magpie_slashbox.php b/html/includes/rss/scripts/magpie_slashbox.php deleted file mode 100644 index bbef30b..0000000 --- a/html/includes/rss/scripts/magpie_slashbox.php +++ /dev/null @@ -1,66 +0,0 @@ - - - - -
- -
- -"; - $rss = fetch_rss( $url ); - echo slashbox ($rss); -} - -echo "
";
-print_r($rss);
-echo "
"; -?> - - - - -"; - echo ""; - - # get the channel title and link properties off of the rss object - # - $title = $rss->channel['title']; - $link = $rss->channel['link']; - - echo "$title"; - echo ""; - - # foreach over each item in the array. - # displaying simple links - # - # we could be doing all sorts of neat things with the dublin core - # info, or the event info, or what not, but keeping it simple for now. - # - foreach ($rss->items as $item ) { - echo ""; - echo ""; - echo $item['title']; - echo ""; - } - - echo ""; -} - -?> diff --git a/html/includes/rss/scripts/simple_smarty.php b/html/includes/rss/scripts/simple_smarty.php deleted file mode 100644 index a904d88..0000000 --- a/html/includes/rss/scripts/simple_smarty.php +++ /dev/null @@ -1,58 +0,0 @@ -compile_check = true; - -// url of an rss file -$url = $_GET['rss_url']; - - -if ( $url ) { - // assign a variable to smarty for use in the template - $smarty->assign('rss_url', $url); - - // use MagpieRSS to fetch remote RSS file, and parse it - $rss = fetch_rss( $url ); - - // if fetch_rss returned false, we encountered an error - if ( !$rss ) { - $smarty->assign( 'error', magpie_error() ); - } - $smarty->assign('rss', $rss ); - - $item = $rss->items[0]; - $date = parse_w3cdtf( $item['dc']['date'] ); - $smarty->assign( 'date', $date ); -} - -// parse smarty template, and display using the variables we assigned -$smarty->display('simple.smarty'); - -?> diff --git a/html/includes/rss/scripts/smarty_plugin/modifier.rss_date_parse.php b/html/includes/rss/scripts/smarty_plugin/modifier.rss_date_parse.php deleted file mode 100644 index 593270e..0000000 --- a/html/includes/rss/scripts/smarty_plugin/modifier.rss_date_parse.php +++ /dev/null @@ -1,31 +0,0 @@ - diff --git a/html/includes/rss/scripts/templates/simple.smarty b/html/includes/rss/scripts/templates/simple.smarty deleted file mode 100644 index c0761cf..0000000 --- a/html/includes/rss/scripts/templates/simple.smarty +++ /dev/null @@ -1,46 +0,0 @@ - - -A Simple RSS Box: I'm not a designer - - - -
-RSS File: - - -
- -Displaying: {$rss_url} -

- -{* if $error display the error - elseif parsed RSS object display the RSS - else solicit user for a URL -*} - -{if $error } -Error: {$error} -{elseif $rss} - - - - - {foreach from=$rss->items item=item} - - - - - {/foreach} -
- {$rss->channel.title} -
- {$item.title} - - {$item.dc.date|rss_date_parse|date_format:"%A, %B %e, %Y"} -
-{else} - Enter the URL of an RSS file to display. -{/if} - - - diff --git a/html/includes/utils.inc.php b/html/includes/utils.inc.php index 1fbd948..0a9a1d9 100644 --- a/html/includes/utils.inc.php +++ b/html/includes/utils.inc.php @@ -3,120 +3,6 @@ require_once(dirname(__FILE__).'/../config.inc.php'); -function get_update_information(){ - global $cfg; - - // initialize array - $updateinfo=array( - "found_update_info" => false, - "update_checks_enabled" => true, - "last_update_check" => "", - "update_available" => false, - "update_version" => "", - ); - - // first read CGI config file to determine main file location - $ccfc=read_cgi_config_file(); - //print_r($ccfc); - - // read main config file to determine file locations - if(isset($ccf['main_config_file'])) - $mcf=$ccf['main_config_file']; - else - $mcf=""; - $mcfc=read_main_config_file($mcf); - //print_r($mcfc); - - if(isset($mcf['status_file'])) - $sf=$mcf['status_file']; - else - $sf=""; - - if(isset($mcf['state_retention_file'])) - $rf=$mcf['state_retention_file']; - else - $rf=""; - - - /////////////////////////////////////////////// - // GET PROGRAM VARIABLES FROM MAIN CONFIG FILE - /////////////////////////////////////////////// - - // are update checks enabled? - if(isset($mcfc['check_for_updates']) && $mcfc['check_for_updates']=="0") - $updateinfo["update_checks_enabled"]=false; - - - ///////////////////////////////////////// - // DETERMINE UPDATE INFO FROM STATUS FILE - ///////////////////////////////////////// - - // read status file (just first few lines) - $sfc=read_status_file($sf,50); - //print_r($sfc); - //exit(); - - // last update time - if(isset($sfc['info']['last_update_check'])){ - $updateinfo["last_update_check"]=$sfc['info']['last_update_check']; - $updateinfo["found_update_info"]=true; - } - - // update available - if(isset($sfc['info']['update_available'])){ - if($sfc['info']['update_available']=="1") - $updateinfo["update_available"]=true; - else - $updateinfo["update_available"]=false; - } - - // update version - if(isset($sfc['info']['new_version'])){ - $updateinfo["update_version"]=$sfc['info']['new_version']; - } - - // did we find update information in the status file? if so, we're done - if($updateinfo["found_update_info"]==true) - return $updateinfo; - - - //////////////////////////////////////////// - // DETERMINE UPDATE INFO FROM RETENTION FILE - //////////////////////////////////////////// - - // Nagios might be shutdown (ie, no status file), so try and read data from the retention file - - // read retentiion file (just first few lines) - $rfc=read_retention_file($rf,50); - //print_r($rfc); - //exit(); - - // last update time - if(isset($rfc['info']['last_update_check'])){ - $updateinfo["last_update_check"]=$rfc['info']['last_update_check']; - $updateinfo["found_update_info"]=true; - } - - // update available - if(isset($rfc['info']['update_available'])){ - if($rfc['info']['update_available']=="1") - $updateinfo["update_available"]=true; - else - $updateinfo["update_available"]=false; - } - - // update version - if(isset($rfc['info']['new_version'])){ - $updateinfo["update_version"]=$rfc['info']['new_version']; - } - - - return $updateinfo; - } - - - - //////////////////////////////////////////////////////////////////////////////////////////////// // FILE PROCESSING FUNCTIONS //////////////////////////////////////////////////////////////////////////////////////////////// @@ -470,4 +356,4 @@ function read_retention_file($thefile="",$maxlines=0){ return $contents; } -?> \ No newline at end of file +?> diff --git a/html/main.php b/html/main.php index a3bff3c..607a023 100644 --- a/html/main.php +++ b/html/main.php @@ -13,17 +13,6 @@ $this_version="3.4.1"; Nagios Core - - - @@ -44,34 +33,6 @@ $this_version="3.4.1"; - -

- -
-
Warning: Automatic Update Checks are Disabled!
-
Disabling update checks presents a possible security risk. Visit nagios.org to check for updates manually or enable update checks in your Nagios config file.
-
- -
-
A new version of Nagios Core is available!
-
Visit nagios.org to download Nagios .
-
- -
- - -
@@ -87,12 +48,6 @@ $this_version="3.4.1";
- -
-

Don't Miss...

-
-
-
@@ -110,11 +65,6 @@ $this_version="3.4.1";
- -
-

Latest News

-
-
diff --git a/html/rss-corefeed.php b/html/rss-corefeed.php deleted file mode 100644 index fbf8215..0000000 --- a/html/rss-corefeed.php +++ /dev/null @@ -1,50 +0,0 @@ -"; - - foreach ($rss->items as $item){ - $x++; - if($x>3) - break; - //$href = $item['link']; - //$title = $item['title']; - $desc = $item['description']; - $html .="
  • {$item['description']}
  • "; - } - $html .=""; - - print $html; - } - else{ - $html = " - An error occurred while trying to fetch the Nagios Core feed. Stay on top of what's happening by visiting http://www.nagios.org/. - "; - print $html; - } - } - - -?> \ No newline at end of file diff --git a/html/rss-newsfeed.php b/html/rss-newsfeed.php deleted file mode 100644 index 52d7901..0000000 --- a/html/rss-newsfeed.php +++ /dev/null @@ -1,48 +0,0 @@ -\n"; - - foreach ($rss->items as $item){ - $x++; - if($x>3) - break; - $href = $item['link']; - $title = $item['title']; - $html .="
  • $title
  • "; - } - $html .=' -
  • More news...
  • - '; - - print $html; - } - else{ - $html = " - An error occurred while trying to fetch the latest Nagios news. Stay on top of what's happening by visiting http://www.nagios.org/news. - "; - print $html; - } - } - - -?> \ No newline at end of file debian/patches/52_nagios.cfg-debianize.patch0000664000000000000000000000776512226314525016135 0ustar Author: Alexander Wirt Description: Debianize nagios.cfg --- a/sample-config/nagios.cfg.in +++ b/sample-config/nagios.cfg.in @@ -2,10 +2,6 @@ # # NAGIOS.CFG - Sample Main Config File for Nagios @VERSION@ # -# Read the documentation for more information on this configuration -# file. I've provided some comments here, but things may not be so -# clear without further explanation. -# # Last Modified: 12-14-2008 # ############################################################################## @@ -16,9 +12,19 @@ # for historical purposes. This should be the first option specified # in the config file!!! -log_file=@localstatedir@/nagios.log +log_file=/var/log/nagios3/nagios.log +# Commands definitions +cfg_file=/etc/nagios3/commands.cfg +# Debian also defaults to using the check commands defined by the debian +# nagios-plugins package +cfg_dir=/etc/nagios-plugins/config + +# Debian uses by default a configuration directory where nagios3-common, +# other packages and the local admin can dump or link configuration +# files into. +cfg_dir=/etc/nagios3/conf.d # OBJECT CONFIGURATION FILE(S) # These are the object configuration files in which you define hosts, @@ -27,13 +33,10 @@ # if you wish (as shown below), or keep them all in a single config file. # You can specify individual object config files as shown below: -cfg_file=@sysconfdir@/objects/commands.cfg -cfg_file=@sysconfdir@/objects/contacts.cfg -cfg_file=@sysconfdir@/objects/timeperiods.cfg -cfg_file=@sysconfdir@/objects/templates.cfg - -# Definitions for monitoring the local (Linux) host -cfg_file=@sysconfdir@/objects/localhost.cfg +#cfg_file=@sysconfdir@/objects/commands.cfg +#cfg_file=@sysconfdir@/objects/contacts.cfg +#cfg_file=@sysconfdir@/objects/timeperiods.cfg +#cfg_file=@sysconfdir@/objects/templates.cfg # Definitions for monitoring a Windows machine #cfg_file=@sysconfdir@/objects/windows.cfg @@ -64,7 +67,7 @@ # directly) in order to prevent inconsistencies that can occur # when the config files are modified after Nagios starts. -object_cache_file=@localstatedir@/objects.cache +object_cache_file=/var/cache/nagios3/objects.cache @@ -103,7 +106,7 @@ # The contents of the status file are deleted every time Nagios # restarts. -status_file=@localstatedir@/status.dat +status_file=/var/cache/nagios3/status.dat @@ -140,7 +143,7 @@ # you will have to enable this. # Values: 0 = disable commands, 1 = enable commands -check_external_commands=1 +check_external_commands=0 @@ -169,6 +172,8 @@ # is running as (usually 'nobody'). Permissions should be set at the # directory level instead of on the file, as the file is deleted every # time its contents are processed. +# Debian Users: In case you didn't read README.Debian yet, _NOW_ is the +# time to do it. command_file=@localstatedir@/rw/nagios.cmd @@ -198,7 +203,7 @@ # is created, used, and deleted throughout the time that Nagios is # running. -temp_file=@localstatedir@/nagios.tmp +temp_file=/var/cache/nagios3/nagios.tmp @@ -264,7 +269,7 @@ # This is the directory where archived (rotated) log files should be # placed (assuming you've chosen to do log rotation). -log_archive_path=@localstatedir@/archives +log_archive_path=/var/log/nagios3/archives @@ -1112,7 +1117,7 @@ # strict-iso8601 (YYYY-MM-DDTHH:MM:SS) # -date_format=us +date_format=iso8601 @@ -1142,7 +1147,7 @@ # embedded Perl interpreter) is located. If you didn't compile # Nagios with embedded Perl support, this option has no effect. -p1_file=@bindir@/p1.pl +p1_file=/usr/lib/nagios3/p1.pl @@ -1226,8 +1231,8 @@ # using the $ADMINEMAIL$ and $ADMINPAGER$ macros in your notification # commands. -admin_email=@nagios_user@@localhost -admin_pager=page@nagios_user@@localhost +admin_email=root@localhost +admin_pager=pageroot@localhost @@ -1334,7 +1339,7 @@ # DEBUG FILE # This option determines where Nagios should write debugging information. -debug_file=@localstatedir@/nagios.debug +debug_file=/var/log/nagios3/nagios.debug debian/patches/51_commands.cfg-debianize.patch0000664000000000000000000001472312226314525016445 0ustar Author: Alexander Wirt Description: Debianize commands.cfg --- a/sample-config/template-object/commands.cfg.in +++ b/sample-config/template-object/commands.cfg.in @@ -3,23 +3,12 @@ # # Last Modified: 05-31-2007 # -# NOTES: This config file provides you with some example command definitions -# that you can reference in host, service, and contact definitions. -# -# You don't need to keep commands in a separate file from your other -# object definitions. This has been done just to make things easier to -# understand. -# ############################################################################### ################################################################################ # -# SAMPLE NOTIFICATION COMMANDS -# -# These are some example notification commands. They may or may not work on -# your system without modification. As an example, some systems will require -# you to use "/usr/bin/mailx" instead of "/usr/bin/mail" in the commands below. +# NOTIFICATION COMMANDS # ################################################################################ @@ -42,184 +31,16 @@ ################################################################################ # -# SAMPLE HOST CHECK COMMANDS +# HOST CHECK COMMANDS # ################################################################################ +# On Debian, check-host-alive is being defined from within the +# nagios-plugins-basic package -# This command checks to see if a host is "alive" by pinging it -# The check must result in a 100% packet loss or 5 second (5000ms) round trip -# average time to produce a critical error. -# Note: Five ICMP echo packets are sent (determined by the '-p 5' argument) - -# 'check-host-alive' command definition -define command{ - command_name check-host-alive - command_line $USER1$/check_ping -H $HOSTADDRESS$ -w 3000.0,80% -c 5000.0,100% -p 5 - } - - - - -################################################################################ -# -# SAMPLE SERVICE CHECK COMMANDS -# -# These are some example service check commands. They may or may not work on -# your system, as they must be modified for your plugins. See the HTML -# documentation on the plugins for examples of how to configure command definitions. -# -# NOTE: The following 'check_local_...' functions are designed to monitor -# various metrics on the host that Nagios is running on (i.e. this one). -################################################################################ - -# 'check_local_disk' command definition -define command{ - command_name check_local_disk - command_line $USER1$/check_disk -w $ARG1$ -c $ARG2$ -p $ARG3$ - } - - -# 'check_local_load' command definition -define command{ - command_name check_local_load - command_line $USER1$/check_load -w $ARG1$ -c $ARG2$ - } - - -# 'check_local_procs' command definition -define command{ - command_name check_local_procs - command_line $USER1$/check_procs -w $ARG1$ -c $ARG2$ -s $ARG3$ - } - - -# 'check_local_users' command definition -define command{ - command_name check_local_users - command_line $USER1$/check_users -w $ARG1$ -c $ARG2$ - } - - -# 'check_local_swap' command definition -define command{ - command_name check_local_swap - command_line $USER1$/check_swap -w $ARG1$ -c $ARG2$ - } - - -# 'check_local_mrtgtraf' command definition -define command{ - command_name check_local_mrtgtraf - command_line $USER1$/check_mrtgtraf -F $ARG1$ -a $ARG2$ -w $ARG3$ -c $ARG4$ -e $ARG5$ - } - - -################################################################################ -# NOTE: The following 'check_...' commands are used to monitor services on -# both local and remote hosts. ################################################################################ - -# 'check_ftp' command definition -define command{ - command_name check_ftp - command_line $USER1$/check_ftp -H $HOSTADDRESS$ $ARG1$ - } - - -# 'check_hpjd' command definition -define command{ - command_name check_hpjd - command_line $USER1$/check_hpjd -H $HOSTADDRESS$ $ARG1$ - } - - -# 'check_snmp' command definition -define command{ - command_name check_snmp - command_line $USER1$/check_snmp -H $HOSTADDRESS$ $ARG1$ - } - - -# 'check_http' command definition -define command{ - command_name check_http - command_line $USER1$/check_http -I $HOSTADDRESS$ $ARG1$ - } - - -# 'check_ssh' command definition -define command{ - command_name check_ssh - command_line $USER1$/check_ssh $ARG1$ $HOSTADDRESS$ - } - - -# 'check_dhcp' command definition -define command{ - command_name check_dhcp - command_line $USER1$/check_dhcp $ARG1$ - } - - -# 'check_ping' command definition -define command{ - command_name check_ping - command_line $USER1$/check_ping -H $HOSTADDRESS$ -w $ARG1$ -c $ARG2$ -p 5 - } - - -# 'check_pop' command definition -define command{ - command_name check_pop - command_line $USER1$/check_pop -H $HOSTADDRESS$ $ARG1$ - } - - -# 'check_imap' command definition -define command{ - command_name check_imap - command_line $USER1$/check_imap -H $HOSTADDRESS$ $ARG1$ - } - - -# 'check_smtp' command definition -define command{ - command_name check_smtp - command_line $USER1$/check_smtp -H $HOSTADDRESS$ $ARG1$ - } - - -# 'check_tcp' command definition -define command{ - command_name check_tcp - command_line $USER1$/check_tcp -H $HOSTADDRESS$ -p $ARG1$ $ARG2$ - } - - -# 'check_udp' command definition -define command{ - command_name check_udp - command_line $USER1$/check_udp -H $HOSTADDRESS$ -p $ARG1$ $ARG2$ - } - - -# 'check_nt' command definition -define command{ - command_name check_nt - command_line $USER1$/check_nt -H $HOSTADDRESS$ -p 12489 -v $ARG1$ $ARG2$ - } - - - -################################################################################ -# -# SAMPLE PERFORMANCE DATA COMMANDS # -# These are sample performance data commands that can be used to send performance -# data output to two text files (one for hosts, another for services). If you -# plan on simply writing performance data out to a file, consider using the -# host_perfdata_file and service_perfdata_file options in the main config file. +# PERFORMANCE DATA COMMANDS # ################################################################################ debian/nagios3-doc.install0000664000000000000000000000003611614535770012676 0ustar usr/share/nagios3/htdocs/docs debian/nagios3-common.nagios3.default0000664000000000000000000000067211614535770014747 0ustar # /etc/default/nagios3 # Enable Nagios3 at boottime? ("no" disables nagios3) # compatibility note: if this variable is _not_ found Nagios3 will start ENABLED="yes" # location of the nagios configuration file NAGIOSCFG="/etc/nagios3/nagios.cfg" # location of the CGI configuration file CGICFG="/etc/nagios3/cgi.cfg" # nicelevel to run nagios daemon with NICENESS=5 # if you use pam_tmpdir, you need to explicitly set TMPDIR: #TMPDIR=/tmp debian/nagios3-core.prerm0000664000000000000000000000075411614535770012547 0ustar #!/bin/sh -e # we attempt to stop nagios3 twice, once in nagios3-common's prerm # and once here. otherwise, if nagios3+nagios3-common are being purged, # the /usr/sbin/nagios3 binary could disappear before nagios3-common's # prerm script runs, which would prevent it from being able to stop # the binary. if [ -x "/etc/init.d/nagios3" ]; then if [ -x "`which invoke-rc.d 2>/dev/null`" ]; then invoke-rc.d nagios3 stop || true else /etc/init.d/nagios3 stop || true fi fi #DEBHELPER# debian/nagios3-dbg.prerm0000664000000000000000000000017711614535770012352 0ustar #!/bin/sh -e if [ "$1" != "upgrade" ]; then update-alternatives --remove mini_epn /usr/bin/mini_epn_nagios3 fi #DEBHELPER# debian/nagios3-cgi.install0000664000000000000000000000064112162741135012666 0ustar debian-configs/cgi.cfg /etc/nagios3 debian/httpd.webapps-common /usr/share/nagios3/debian usr/lib/cgi-bin/* usr/share/nagios3/htdocs/*.php usr/share/nagios3/htdocs/contexthelp usr/share/nagios3/htdocs/images usr/share/nagios3/htdocs/includes usr/share/nagios3/htdocs/media usr/share/nagios3/htdocs/robots.txt usr/share/nagios3/htdocs/stylesheets/* /etc/nagios3/stylesheets/ debian/apache2.conf usr/share/nagios3-cgi/ debian/nagios3-common.dirs0000664000000000000000000000034212241100624012673 0ustar etc/init.d etc/nagios3 etc/nagios3/conf.d usr/share/nagios3/plugins/eventhandlers var/lib/nagios3/rw var/lib/nagios3/spool var/lib/nagios3/spool/checkresults var/log/nagios3/archives var/cache/nagios3 usr/share/nagios3/debian debian/NEWS0000664000000000000000000000212411614535770007677 0ustar nagios3 (3.2.0-1) unstable; urgency=low I decided to remove the php frontend included with 3.2.0 and replace it with the old html frontend. Its my personal oppinion that php should not be used for administrational and security sensitive tasks. Also the new frontend looks exactly the same as the old. If you really want the php frontend look into README.Debian for instructions. The nagios3 package has been split up into two new packages: nagios3-core and nagios3-cgi so you are now able to remove the webfrontend if you don't need. The nagios3 package is now meta package which depends on nagios3-core and nagios3-cgi it can be removed if you don't need it. -- Alexander Wirt Sat, 19 Sep 2009 10:33:40 +0200 nagios3 (3.0.6-4) unstable; urgency=low The homedirectory of the nagios user moved to /var/lib/nagios which is now common on all nagios related packages. Its recommended that you migrate an already existing nagios user to use /var/lib/nagios as homedirectory. -- Alexander Wirt Sat, 21 Mar 2009 09:12:10 +0100 debian/copyright0000664000000000000000000000243611766654364011152 0ustar This package was debianized by Alexander Wirt based on the work of sean finney for Nagios 2. It was downloaded from http://www.nagios.org/ Current Debian Maintainers: The nagios packagingpackaging team http://alioth.debian.org/projects/pkg-nagios/ Mailing-List: pkg-nagios-devel@lists.alioth.debian.org Upstream Author: Ethan Galstad Copyright (c) 1999-2008 Ethan Galstad (nagios@nagios.org) License: This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. On Debian systems, the complete text of the GNU General Public License, version 2, can be found in /usr/share/common-licenses/GPL-2. p1.pl is Copyright 2007 by Stanley Hopcroft This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. On Debian systems, the complete text of the Artistic License, can be found in /usr/share/common-licenses/Artistic. The file common/snprintf.c is Copyright 1995 by Patrick Powell This code is based on code written by Patrick Powell (papowell@astart.com) It may be used for any purpose as long as this notice remains intact on all source code distributions debian/nagios3-cgi.templates0000664000000000000000000000107012162741135013213 0ustar Template: nagios3/adminpassword Type: password _Description: Nagios web administration password: Please provide the password to be created with the "nagiosadmin" user. . This is the username and password you will use to log in to your nagios installation after configuration is complete. If you do not provide a password, you will have to configure access to nagios yourself. Template: nagios3/adminpassword-repeat Type: password _Description: Password confirmation: Template: nagios3/adminpassword-mismatch Type: note _Description: The passwords do not match debian/watch0000664000000000000000000000007412225064755010232 0ustar version=3 http://sf.net/nagios/nagios-(3\.[0-9.]+)\.tar\.gz debian/README.Debian0000664000000000000000000000564511614535770011254 0ustar Welcome to the nagios3 package for Debian GNU/Linux! Below are some debian-specific notes which may be of help to you. If you have questions about using/configuring nagios, you should probably contact the nagios-users mailing list and NOT the maintainers: nagios-users@lists.sourceforge.net Of course we'd be happy to hear about any bugs you find, and are always open to discussing any ideas you might have for improvement. you can contact the debian nagios maintainers at: pkg-nagios-devel@lists.alioth.debian.org Upgrading from Nagios 1 or Nagios 2 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Nagios 1, Nagios 2 and Nagios 3 are independent packages. You can have both installed at the same time, and both services can run at the same time. There should be no interference between the two packages. That way, you can take your time in migrating over your configuration. nagios3 allows you to continue supporting the 1.x URLs. After removing and purging Nagios 1, either dpkg-reconfigure nagios3-common or manually edit /etc/nagios3/apache.conf (activating all lines preceded by "# nagios 1.x")to have nagios3 take over the nagios 1.x URLs. If you enable these with nagios 1 still present, the results are undefined. If you upgrade from Nagios 2 please note that the host-notify-by-email and notify-by-email have been renamed to notify-host-by-email and notify-service-by-email to make the naming more intuitivly. External Commands ^^^^^^^^^^^^^^^^^ Nagios 3 is not configured to look for external commands in the default configuration as a security feature. To enable external commands, you need to allow the web server write access to the nagios command pipe. the simplest way of doing this is to set check_external_commands=1 in your nagios configuration, and then change the permissions in a way which will be maintained across package upgrades (otherwise dpkg will overwrite your permission changes). The following is the recommended approach: - activate external command checks in the nagios configuration. this can be done by setting check_external_commands=1 in the file /etc/nagios3/nagios.cfg. - perform the following commands to change directory permissions and to make the changes permanent: /etc/init.d/nagios3 stop dpkg-statoverride --update --add nagios www-data 2710 /var/lib/nagios3/rw dpkg-statoverride --update --add nagios nagios 751 /var/lib/nagios3 /etc/init.d/nagios3 start Manually Providing / Overriding Authentication Configuration ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ The default debian configuration for nagios+apache is to use an htpasswd style file in /etc/nagios3/htpasswd.users. if you chose not to (or otherwise didn't) provide a password during package configuration, we assume that you know what you're doing and will not get in your way. however, if you don't know what you're doing, you should either dpkg-reconfigure nagios3-common and provide a password, or read the fine manual for htpasswd(1). debian/mini_epn_nagios3.80000664000000000000000000000257311614535770012522 0ustar '\" t .\" Title: mini_epn .\" Author: [see the "AUTHOR" section] .\" Generator: DocBook XSL Stylesheets v1.75.2 .\" Date: 09/19/2009 .\" Manual: mini_epn .\" Source: Nagios .\" Language: English .\" .TH "MINI_EPN" "8" "09/19/2009" "Nagios" "mini_epn" .\" ----------------------------------------------------------------- .\" * set default formatting .\" ----------------------------------------------------------------- .\" disable hyphenation .nh .\" disable justification (adjust text to left margin only) .ad l .\" ----------------------------------------------------------------- .\" * MAIN CONTENT STARTS HERE * .\" ----------------------------------------------------------------- .SH "NAME" mini_epn \- too to nagiosplugins inside of an embedded perl interpreter .SH "SYNOPSIS" .sp \fBmini_epn\fR .SH "DESCRIPTION" .sp After calling \fBmini_epn\fR an embedded perl interpreter gets started and asks for you a script to execute under the interpreter\&. To exit the interpreter loop press ^d at the prompt\&. .SH "EXAMPLES" .sp .if n \{\ .RS 4 .\} .nf # mini_epn Enter file name: /usr/lib/nagios/plugins/check_linux_raid embedded perl plugin return code and output was: 0 & \'OK md0 status=[UU]\&. md1 status=[UU]\&. .fi .if n \{\ .RE .\} .SH "AUTHOR" .sp This manpage was written by Alexander Wirt for the Debian Distribution\&. debian/nagios3-cgi.postrm0000664000000000000000000000050411614535770012551 0ustar #!/bin/sh -e # some shorthands for sanity en="/etc/nagios3" enc="/etc/nagios3/conf.d" usn="/usr/share/nagios3" case "$1" in remove) ;; purge) rm -f /etc/nagios3/htpasswd.users rm -f /etc/nagios3/apache2.conf if which ucf >/dev/null 2>&1; then ucf --purge /etc/nagios3/apache2.conf fi ;; esac #DEBHELPER# debian/nagios3-cgi.config0000664000000000000000000000155012172727675012503 0ustar #!/bin/sh -e . /usr/share/debconf/confmodule db_fget nagios3/adminpassword seen || true password_seen="$RET" if [ "$1" = "reconfigure" ]; then password_seen=false fi if [ "$rootpassword_seen" != "true" ]; then while [ ! "$passwordsmatch" ]; do db_input high nagios3/adminpassword || true db_input high nagios3/adminpassword-repeat || true db_go || true db_get nagios3/adminpassword p1="$RET" db_get nagios3/adminpassword-repeat p2="$RET" if [ "$p1" = "$p2" ]; then passwordsmatch="yes" else db_fset nagios3/adminpassword seen false db_fset nagios3/adminpassword-repeat seen false db_fset nagios3/adminpassword-mismatch seen false db_input critical nagios3/adminpassword-mismatch || true fi done fi db_go || true debian/nagios3-cgi.prerm0000664000000000000000000000115211614535770012352 0ustar #!/bin/sh -e . /usr/share/nagios3/debian/httpd.webapps-common apacheconf="/etc/nagios3/apache2.conf" if [ -f $apacheconf ]; then case "$1" in remove) # find the configured servers configured_servers=`wc_httpd_apache_configured $apacheconf nagios3` if [ "$configured_servers" ]; then # deconfigure them wc_httpd_apache_uninclude $apacheconf nagios3 $configured_servers # reload the configured servers if they are running running_servers="`wc_httpd_running $configured_servers`" if [ "$running_servers" ]; then wc_httpd_invoke "reload" $running_servers fi fi ;; esac fi #DEBHELPER# debian/apache2.conf0000664000000000000000000000370211614535770011355 0ustar # apache configuration for nagios 3.x # note to users of nagios 1.x and 2.x: # throughout this file are commented out sections which preserve # backwards compatibility with bookmarks/config for older nagios versios. # simply look for lines following "nagios 1.x:" and "nagios 2.x" comments. ScriptAlias /cgi-bin/nagios3 /usr/lib/cgi-bin/nagios3 ScriptAlias /nagios3/cgi-bin /usr/lib/cgi-bin/nagios3 # nagios 1.x: #ScriptAlias /cgi-bin/nagios /usr/lib/cgi-bin/nagios3 #ScriptAlias /nagios/cgi-bin /usr/lib/cgi-bin/nagios3 # nagios 2.x: #ScriptAlias /cgi-bin/nagios2 /usr/lib/cgi-bin/nagios3 #ScriptAlias /nagios2/cgi-bin /usr/lib/cgi-bin/nagios3 # Where the stylesheets (config files) reside Alias /nagios3/stylesheets /etc/nagios3/stylesheets # nagios 1.x: #Alias /nagios/stylesheets /etc/nagios3/stylesheets # nagios 2.x: #Alias /nagios2/stylesheets /etc/nagios3/stylesheets # Where the HTML pages live Alias /nagios3 /usr/share/nagios3/htdocs # nagios 2.x: #Alias /nagios2 /usr/share/nagios3/htdocs # nagios 1.x: #Alias /nagios /usr/share/nagios3/htdocs Options FollowSymLinks DirectoryIndex index.php index.html AllowOverride AuthConfig Order Allow,Deny Allow From All AuthName "Nagios Access" AuthType Basic AuthUserFile /etc/nagios3/htpasswd.users # nagios 1.x: #AuthUserFile /etc/nagios/htpasswd.users require valid-user Options +ExecCGI # Enable this ScriptAlias if you want to enable the grouplist patch. # See http://apan.sourceforge.net/download.html for more info # It allows you to see a clickable list of all hostgroups in the # left pane of the Nagios web interface # XXX This is not tested for nagios 2.x use at your own peril #ScriptAlias /nagios3/side.html /usr/lib/cgi-bin/nagios3/grouplist.cgi # nagios 1.x: #ScriptAlias /nagios/side.html /usr/lib/cgi-bin/nagios3/grouplist.cgi debian/nagios3-core.manpages0000664000000000000000000000004711614535770013210 0ustar debian/nagios3.8 debian/nagios3stats.8 debian/nagios3-common.install0000664000000000000000000000072111766654364013433 0ustar contrib/eventhandlers/* usr/share/nagios3/plugins/eventhandlers debian-configs/* /etc/nagios3 debian/conf.d/* /etc/nagios3/conf.d debian/resource.cfg /etc/nagios3 sample-config/*.cfg /usr/share/doc/nagios3-common/examples sample-config/README /usr/share/doc/nagios3-common/examples sample-config/template-object/*.cfg /usr/share/doc/nagios3-common/examples/template-object sample-config/template-object/README /usr/share/doc/nagios3-common/examples/template-object debian/nagios3.80000664000000000000000000000247111614535770010641 0ustar .TH nagios3 "8" "February 2006" "sean finney " "nagios" .SH NAME nagios3 \- network/systems status monitoring daemon .SH SYNOPSIS .B nagios3 [\-h] [\-v] [\-s] [\-d] .br .SH DESCRIPTION .B nagios3 is a daemon program that monitors the status of various network accessible systems, devices, and more. For more information, please consult the online documentation available at http://www.nagios.org, or on your nagios server's web page. .SH OPTIONS .TP main_config_file The main configuration file. On debian systems this defaults to /etc/nagios3/nagios.cfg .TP \fB\-h\fR A helpful usage message .TP \fB\-v\fR Reads all data in the configuration files and performs a basic verification/sanity check. Always make sure you verify your config data before (re)starting Nagios. .TP \fB\-s\fR Shows projected/recommended check scheduling information based on the current data in the configuration files. .TP \fB\-d\fR Starts Nagios in daemon mode (instead of as a foreground process). .SH FILES .TP .IP /etc/nagios3 Default configuration directory for nagios3 .SH AUTHOR nagios3 is written and maintained by Ethan Galstad . This manual page was written by sean finney for the Debian GNU/Linux operating system (but it may be freely used, modified, and redistributed by others). debian/nagios3-doc.lintian-overrides0000664000000000000000000000007711614535770014673 0ustar package-contains-empty-directory usr/share/nagios3/htdocs/ssi/ debian/nagios3-core.postinst0000664000000000000000000000052411614535770013300 0ustar #!/bin/sh -e #if we stop nagios3 in nagios3.prerm we should also start it here.. #(#481334) if [ -x "/etc/init.d/nagios3" ]; then if ! /etc/init.d/nagios3 status >/dev/null; then if [ -x "`which invoke-rc.d 2>/dev/null`" ]; then invoke-rc.d nagios3 start || true else /etc/init.d/nagios3 start || true fi fi fi #DEBHELPER# debian/tests/0000775000000000000000000000000012263534430010334 5ustar debian/tests/control0000664000000000000000000000010012263534430011726 0ustar Tests: nagios3 daemon Depends: nagios3 Restrictions: needs-root debian/tests/nagios30000664000000000000000000000036512263534430011626 0ustar #!/bin/bash #---------------- # Testing nagios3 #---------------- set -e result=$(python `dirname $0`/get_nagios_output.py /etc/nagios3/nagios.cfg 2>&1) if [ "$result" == "0" ]; then echo "OK" exit 0 else echo $result exit 1 fi debian/tests/daemon0000664000000000000000000000033012263534430011516 0ustar #!/bin/bash #----------------------- # Testing nagios3 daemon #----------------------- set -e if pidof -x nagios3 > /dev/null; then echo "OK" exit 0 else echo "ERROR: NAGIOS IS NOT RUNNING" exit 1 fi debian/tests/get_nagios_output.py0000664000000000000000000000131112263534430014441 0ustar import sys import subprocess import re if __name__ == '__main__': try: file_name = sys.argv[1] # call nagios with the given config file and parse output output = subprocess.check_output("nagios3 -v " + file_name, shell=True) if output: # check for total errors expression regex = re.compile(r"^.*Total\s*Errors:\s*(\d+).*$", re.VERBOSE | re.IGNORECASE | re.MULTILINE) r = regex.search(output) if r: errors = r.group(1) print errors exit() print "ERROR: THERE WAS A PROBLEM PARSING ERRORS" except Exception as e: print "ERROR: CANNOT FIND CONFIG FILE NAME" debian/rules0000775000000000000000000001125512241100267010247 0ustar #!/usr/bin/make -f # debian/rules makefile for nagios3 # Last modified: # $Id$ # export DH_VERBOSE=1 export DEB_BUILD_HARDENING=1 b := $(shell pwd)/debian export DEB_HOST_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE) export DEB_BUILD_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE) # -Wall disabled until source is fixed to not print tons of warnings with it. :) #CFLAGS = -Wall -g CFLAGS = -g ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS))) CFLAGS += -O0 else CFLAGS += -O2 endif SHELL = /bin/sh -e CONFIGURE = CFLAGS='$(CFLAGS)' ./configure --prefix=/usr \ --mandir=/usr/share/man \ --bindir=/usr/sbin \ --sbindir=/usr/lib/cgi-bin/nagios3 \ --datadir=/usr/share/nagios3/htdocs \ --sysconfdir=/etc/nagios3 \ --infodir=/usr/share/info \ --libexecdir=/usr/lib/nagios/plugins \ --localstatedir=/var/lib/nagios3 \ --enable-event-broker \ --enable-embedded-perl \ --with-nagios-user=nagios \ --with-nagios-group=nagios \ --with-command-user=nagios \ --with-command-group=nagios \ --with-init-dir=/etc/init.d \ --with-lockfile=/var/run/nagios3/nagios3.pid \ --with-mail=/usr/bin/mail \ --with-perlcache \ --build=$(DEB_BUILD_GNU_TYPE) \ --host=$(DEB_HOST_GNU_TYPE) \ --with-htmurl=/nagios3 \ --with-cgiurl=/cgi-bin/nagios3 clean: dh_testdir -a dh_testroot -a if test -f Makefile; then make distclean; fi rm -f install-stamp configure-stamp build-stamp fix-configs-stamp rm -rf debian-configs -rm contrib/perlxsi.c find -type d -name autom4te.cache -print0 | xargs -0 -r rm -rf \; -rm -f platform.h auto-include.h find -type d -name build -print0 | xargs -0 -r rm -rf \; dh_clean fix-configs: fix-configs-stamp fix-configs-stamp: configure-stamp mkdir -p debian-configs sed -e '/Sample CGI/ s/\([0-9]\.[0-9]\.[0-9]\)//' \ -e '/Last Modified/,+1 d' \ sample-config/cgi.cfg > debian-configs/cgi.cfg sed -e '/Sample Main Config/ s/\([0-9]\.[0-9]\.[0-9]\)//' \ -e '/Last Modified/ d' \ sample-config/nagios.cfg > debian-configs/nagios.cfg sed -e '/SAMPLE COMMAND DEFINITIONS/ s/\([0-9]\.[0-9]\.[0-9]\)//' \ -e '/Last Modified/,+1 d' \ -e '/^#$$/ d' sample-config/template-object/commands.cfg > debian-configs/commands.cfg configure: configure-stamp configure-stamp: dh_testdir -a @echo "Doing $@" if test -f Makefile; then make clean; fi ln -sf /usr/share/misc/config.sub . ln -sf /usr/share/misc/config.guess . rm -f config.cache $(CONFIGURE) touch configure-stamp build: build-stamp build-stamp: configure-stamp dh_testdir -a @echo "Doing $@" $(MAKE) all make -C contrib touch build-stamp install: install-stamp install-stamp: build-stamp fix-configs-stamp @echo "Doing $@" dh_testdir -a dh_testroot -a dh_installdirs -a -i # zero out INSTALL_OPTS to prevent chowning at build-time make install-unstripped DESTDIR=$b/tmp INSTALL_OPTS="" # move some arch-indep stuff to the other packages chgrp www-data ${b}/nagios3-common/var/cache/nagios3 chmod g+s ${b}/nagios3-common/var/cache/nagios3 chown root:www-data ${b}/nagios3-common/var/lib/nagios3/rw chmod 700 ${b}/nagios3-common/var/lib/nagios3/rw mv debian/tmp/usr/sbin/nagios ${b}/nagios3-core/usr/sbin/nagios3 mv debian/tmp/usr/sbin/nagiostats ${b}/nagios3-core/usr/sbin/nagios3stats dh_link -i dh_lintian dh_installdocs -i dh_installman -a -pnagios3 dh_installlogrotate dh_installchangelogs -i dh_install -i dh_installinit --name nagios3 -- defaults 30 18 dh_installexamples chmod 755 ${b}/nagios3-common/var/lib/nagios3 rm ${b}/nagios3-common/etc/nagios3/cgi.cfg touch install-stamp binary: binary-arch binary-indep binary-arch: install-stamp @echo "Doing $@" dh_testdir -a dh_testroot -a dh_link -a dh_installchangelogs -a dh_installdocs -a dh_installdebconf -a dh_install -a chmod 600 ${b}/nagios3-common/etc/nagios3/resource.cfg # fix permissions of p1 chmod 755 ${b}/nagios3-core/usr/lib/nagios3/p1.pl mkdir -p ${b}/nagios3-dbg/usr/bin/ mv contrib/mini_epn ${b}/nagios3-dbg/usr/bin/mini_epn_nagios3 dh_strip -a --dbg-package=nagios3-dbg dh_compress -a -X.php dh_fixperms -a -X/var/cache/nagios3 dh_makeshlibs -a -V dh_installdeb -a dh_perl -a dh_shlibdeps -a dh_gencontrol -a dh_md5sums -a dh_builddeb -a binary-indep: install-stamp dh_link -i dh_compress -i dh_fixperms -i -Xnagios3/resource.cfg dh_installdebconf -i dh_perl -i dh_installdeb -i dh_gencontrol -i dh_md5sums -i dh_builddeb -i .PHONY: binary-indep binary-arch build configure binary install debian/nagios3-core.links0000664000000000000000000000007011614535770012531 0ustar usr/share/doc/nagios3-common usr/share/doc/nagios3-core