diff --git a/net/nfsen/Makefile b/net/nfsen/Makefile new file mode 100644 index 00000000000..75e6f444d4a --- /dev/null +++ b/net/nfsen/Makefile @@ -0,0 +1,60 @@ +# $OpenBSD: Makefile,v 1.1.1.1 2010/05/02 20:52:32 sthen Exp $ + +MULTI_PACKAGES= -main -web +COMMENT-main= web-based front end for the nfdump netflow tools +COMMENT-web= html/php parts for nfsen + +V= 1.3.2 +DISTNAME= nfsen-$V +PKGNAME-main= ${DISTNAME} +PKGNAME-web= nfsen-web-$V +CATEGORIES= net www +HOMEPAGE= http://nfsen.sourceforge.net/ + +MAINTAINER= Stuart Henderson + +# BSD +PERMIT_PACKAGE_CDROM= Yes +PERMIT_PACKAGE_FTP= Yes +PERMIT_DISTFILES_CDROM= Yes +PERMIT_DISTFILES_FTP= Yes + +MASTER_SITES= ${MASTER_SITE_SOURCEFORGE:=nfsen/} + +MODULES= perl +BUILD_DEPENDS= :p5-RRD-*:net/rrdtool,-perl \ + ::mail/p5-Mail-Tools \ + :nfprofile-*:net/nfdump,-nfprofile \ + :nfdump->=1.5.8p0:net/nfdump +RUN_DEPENDS-main= ${BUILD_DEPENDS} \ + :nfsen-web-$V:net/nfsen,-web +RUN_DEPENDS-web= ::www/php5/core + +NO_BUILD= Yes +NO_REGRESS= Yes +PREFIX-web= /var/www +PKG_ARCH= * + +post-extract: + rm ${WRKSRC}/html/nfsen.php.orig # in the distfile + +pre-configure: + ${SUBST_CMD} ${WRKSRC}/etc/nfsen-dist.conf + +do-install: + ${INSTALL_DATA_DIR} ${WRKINST}/var/www/htdocs + ${INSTALL_DATA_DIR} ${PREFIX}/share/examples/nfsen + ${INSTALL_DATA_DIR} ${PREFIX}/${P5SITE}/NfSen/installer-items + cd ${WRKSRC} && INSTDIR=${WRKINST}/ ./install.pl etc/nfsen-dist.conf copy < /dev/null + ${INSTALL_DATA} ${WRKINST}/etc/nfsen.conf ${PREFIX}/share/examples/nfsen + rm ${WRKINST}/etc/nfsen* + ${INSTALL_SCRIPT} ${WRKSRC}/install.pl ${PREFIX}/bin/install-nfsen.pl + perl -pi \ + -e 's,use lib "./libexec";,use lib "${TRUEPREFIX}/${P5SITE}/NfSen";,;' \ + -e 's,use lib "./installer-items";,use lib "${TRUEPREFIX}/${P5SITE}/NfSen/installer-items";,' \ + ${PREFIX}/bin/install-nfsen.pl + ${INSTALL_SCRIPT} ${WRKSRC}/installer-items/* ${PREFIX}/${P5SITE}/NfSen/installer-items + chown -R ${SHAREOWN}:${SHAREGRP} ${WRKINST}/var/www/htdocs/nfsen ${PREFIX}/share/doc/nfsen + chown -R ${SHAREOWN}:${SHAREGRP} ${PREFIX}/bin ${PREFIX}/lib ${PREFIX}/libdata + +.include diff --git a/net/nfsen/distinfo b/net/nfsen/distinfo new file mode 100644 index 00000000000..b75a15ccd11 --- /dev/null +++ b/net/nfsen/distinfo @@ -0,0 +1,5 @@ +MD5 (nfsen-1.3.2.tar.gz) = OoI6ONbncX4VY/vNnU0t4A== +RMD160 (nfsen-1.3.2.tar.gz) = 8eKT/kEniqwlj5owu9R0AeJloQg= +SHA1 (nfsen-1.3.2.tar.gz) = KbopYqUZyTH/ooWu688szLJi9pI= +SHA256 (nfsen-1.3.2.tar.gz) = pR3IH4OtInMgG6DKHuZ9WYtaZ9xk6oQwq5/2DSOyWcE= +SIZE (nfsen-1.3.2.tar.gz) = 6539382 diff --git a/net/nfsen/patches/patch-etc_nfsen-dist_conf b/net/nfsen/patches/patch-etc_nfsen-dist_conf new file mode 100644 index 00000000000..7dcfe414671 --- /dev/null +++ b/net/nfsen/patches/patch-etc_nfsen-dist_conf @@ -0,0 +1,91 @@ +$OpenBSD: patch-etc_nfsen-dist_conf,v 1.1.1.1 2010/05/02 20:52:32 sthen Exp $ +--- etc/nfsen-dist.conf.orig Wed Jun 10 08:54:50 2009 ++++ etc/nfsen-dist.conf Fri Apr 30 23:10:21 2010 +@@ -8,6 +8,10 @@ + # Set all the values to fit your NfSen setup and run the 'install.pl' + # script from the nfsen distribution directory. + # ++### OPENBSD PACKAGE NOTE: the directory-related values are set at ### ++### port build time. For post-install configuration, please start with ### ++### "BASEDIR unrelated vars" below. ### ++# + # The syntax must conform to Perl syntax. + # + ############################## +@@ -18,7 +22,7 @@ + + # + # Required for default layout +-$BASEDIR = "/data/nfsen"; ++$BASEDIR = "${PREFIX}"; + + # + # Where to install the NfSen binaries +@@ -26,25 +30,25 @@ $BINDIR="${BASEDIR}/bin"; + + # + # Where to install the NfSen Perl modules +-$LIBEXECDIR="${BASEDIR}/libexec"; ++$LIBEXECDIR="${BASEDIR}/${P5SITE}/NfSen"; + + # + # Where to install the config files +-$CONFDIR="${BASEDIR}/etc"; ++$CONFDIR="${SYSCONFDIR}"; + + # + # NfSen html pages directory: + # All php scripts will be installed here. + # URL: Entry point for nfsen: http:///nfsen/nfsen.php +-$HTMLDIR = "/var/www/nfsen/"; ++$HTMLDIR = "/var/www/htdocs/nfsen"; + + # + # Where to install the docs +-$DOCDIR="${HTMLDIR}/doc"; ++$DOCDIR="${BASEDIR}/share/doc/nfsen"; + + # + # Var space for NfSen +-$VARDIR="${BASEDIR}/var"; ++$VARDIR="/var/db/nfsen"; + + # + # directory for all pid files +@@ -53,15 +57,15 @@ $VARDIR="${BASEDIR}/var"; + # + # The Profiles stat directory, where all profile information + # RRD DBs and png pictures of the profile are stored +-$PROFILESTATDIR="${BASEDIR}/profiles-stat"; ++$PROFILESTATDIR="${VARDIR}/profiles-stat"; + + # + # The Profiles directory, where all netflow data is stored +-$PROFILEDATADIR="${BASEDIR}/profiles-data"; ++$PROFILEDATADIR="${VARDIR}/profiles-data"; + + # + # Where go all the backend plugins +-$BACKEND_PLUGINDIR="${BASEDIR}/plugins"; ++$BACKEND_PLUGINDIR="${BASEDIR}/lib/nfsen/plugins"; + + # + # Where go all the frontend plugins +@@ -69,7 +73,7 @@ $FRONTEND_PLUGINDIR="${HTMLDIR}/plugins"; + + # + # nfdump tools path +-$PREFIX = '/usr/local/bin'; ++$PREFIX = '${PREFIX}/bin'; + + # + # nfsend communication socket +@@ -81,7 +85,7 @@ $PREFIX = '/usr/local/bin'; + # This may be a different or the same uid than your web server. + # Note: This user must be in group $WWWGROUP, otherwise nfcapd + # is not able to write data files! +-$USER = "netflow"; ++$USER = "_nfcapd"; + + # user and group of the web server process + # All netflow processing will be done with this user diff --git a/net/nfsen/patches/patch-install_pl b/net/nfsen/patches/patch-install_pl new file mode 100644 index 00000000000..1a432ffcfd5 --- /dev/null +++ b/net/nfsen/patches/patch-install_pl @@ -0,0 +1,310 @@ +$OpenBSD: patch-install_pl,v 1.1.1.1 2010/05/02 20:52:32 sthen Exp $ +--- install.pl.orig Wed Jun 10 09:34:16 2009 ++++ install.pl Fri Apr 30 23:05:08 2010 +@@ -60,6 +60,8 @@ my @ProfileTag = ( + "# \n", + ); + ++my $instdir = $ENV{'INSTDIR'}; ++ + my @RequiredDirs = ( 'PREFIX', 'BINDIR', 'LIBEXECDIR', 'CONFDIR', 'DOCDIR', + 'VARDIR', 'PROFILESTATDIR', 'PROFILEDATADIR', + 'BACKEND_PLUGINDIR', 'FRONTEND_PLUGINDIR', 'HTMLDIR' ); +@@ -87,11 +89,11 @@ sub GetPerl { + my $ans; + $whichperl = FindCommand("perl"); + if ( defined $whichperl ) { +- print "Perl to use: [$whichperl] "; +- chomp($ans = ); +- if ( length $ans ) { +- $whichperl = $ans; +- } ++ print "Perl to use: [$whichperl]\n"; ++# chomp($ans = ); ++# if ( length $ans ) { ++# $whichperl = $ans; ++# } + } else { + print "No Perl found in your PATH. Please specify where to find perl [] "; + chomp($whichperl = ); +@@ -116,6 +118,7 @@ sub GetPerl { + sub CopyDir { + my $orig = shift; + my $dest = shift; ++ $dest = $instdir.$dest; + + my $DIR; + mkdir $dest unless -d $dest; +@@ -160,14 +163,14 @@ sub VerifyUser { + if ( !defined $gid_name ) { + die "Group '$user_gid' not found on this system\n"; + } +- # Check the members list +- foreach my $member ( split /\s+/, $group_members ) { +- if ( $member eq $user ) { +- # user found ++# # Check the members list ++# foreach my $member ( split /\s+/, $group_members ) { ++# if ( $member eq $user ) { ++# # user found + return $uid; +- } +- } +- die "User '$user' not a member of group '$NfConf::WWWGROUP'\n"; ++# } ++# } ++# die "User '$user' not a member of group '$NfConf::WWWGROUP'\n"; + + } # End of VerifyUser + +@@ -192,7 +195,7 @@ sub VerifyConfig { + } + + die "Missing PREFIX directory of nfdump tools!\n" unless defined $NfConf::PREFIX; +- die "Configured PREFIX directory '$NfConf::PREFIX' not found!\n" unless -d $NfConf::PREFIX; ++ die "Configured PREFIX directory '$instdir$NfConf::PREFIX' not found!\n" unless -d $instdir.$NfConf::PREFIX; + foreach my $binary ( 'nfcapd', 'nfdump', 'nfprofile' ) { + die "nfdump tools installation error: '$binary' not found in '$NfConf::PREFIX'" unless -f "$NfConf::PREFIX/$binary"; + } +@@ -283,8 +286,8 @@ sub PatchVars { + sub PatchAllScripts { + + my %GlobList = ( +- "bin/*" => "$NfConf::BINDIR", +- "libexec/*" => "$NfConf::LIBEXECDIR" ++ "bin/*" => "$instdir$NfConf::BINDIR", ++ "libexec/*" => "$instdir$NfConf::LIBEXECDIR" + ); + + foreach my $glob_list ( keys %GlobList ) { +@@ -334,15 +337,15 @@ sub SetupHTML { + my ( $nfsen_uid, $www_gid ) = @_; + + print "Setup php and html files.\n"; +- mkdir "$NfConf::HTMLDIR" unless -d "$NfConf::HTMLDIR"; +- die "Could not create HTMl directory '$NfConf::HTMLDIR': $!\n" unless -d $NfConf::HTMLDIR; ++ mkdir "$instdir$NfConf::HTMLDIR" unless -d "$instdir$NfConf::HTMLDIR"; ++ die "Could not create HTMl directory '$instdir$NfConf::HTMLDIR': $!\n" unless -d $instdir.$NfConf::HTMLDIR; + + $CopyRecursive::CopyLink = 1; + $CopyRecursive::MODE = 0644; + $CopyRecursive::UID = 0; + $CopyRecursive::GID = $www_gid; +- CopyRecursive::dircopy("html", "$NfConf::HTMLDIR"); +- open CONF, ">$NfConf::HTMLDIR/conf.php" || die "Can't open conf.php for writing: $!\n"; ++ CopyRecursive::dircopy("html", "$instdir$NfConf::HTMLDIR"); ++ open CONF, ">$instdir$NfConf::HTMLDIR/conf.php" || die "Can't open conf.php for writing: $!\n"; + print CONF "; +- chomp($pid); +- close PID; +- die "Can't extract PID out of '$NfConf::VARDIR/run/$pid_name'. Stop upgrade" if !defined $pid; +- if ( kill(0, $pid) == 1 ) { +- print "Stop nfsend while upgrading ."; +- kill 15, $pid; +- my $cnt = 0; +- while ( -f "$NfConf::VARDIR/run/$pid_name" && $cnt < 300 ) { +- print "."; +- $cnt++; +- sleep(1); +- } +- if ( -f "$NfConf::VARDIR/run/$pid_name" ) { +- print "\nnfsend doesn't want to die! It's not save to upgrade NfSen!\n"; +- exit; ++ if ( -f "$NfConf::VARDIR/run/$pid_name" ) { ++ open PID, "$NfConf::VARDIR/run/$pid_name" || die "Can't open pid file: $!\n"; ++ my $pid = ; ++ chomp($pid); ++ close PID; ++ die "Can't extract PID out of '$NfConf::VARDIR/run/$pid_name'. Stop upgrade" if !defined $pid; ++ if ( kill(0, $pid) == 1 ) { ++ print "Stop nfsend while upgrading ."; ++ kill 15, $pid; ++ my $cnt = 0; ++ while ( -f "$NfConf::VARDIR/run/$pid_name" && $cnt < 300 ) { ++ print "."; ++ $cnt++; ++ sleep(1); ++ } ++ if ( -f "$NfConf::VARDIR/run/$pid_name" ) { ++ print "\nnfsend doesn't want to die! It's not save to upgrade NfSen!\n"; ++ exit; ++ } else { ++ print "done.\n"; ++ $nfsen_run = 1; ++ } + } else { +- print "done.\n"; +- $nfsen_run = 1; ++ print "nfsend pid file exists, but no process is running.\n"; ++ unlink "$NfConf::VARDIR/run/$pid_name"; + } +- } else { +- print "nfsend pid file exists, but no process is running.\n"; +- unlink "$NfConf::VARDIR/run/$pid_name"; + } + } + +-SetupHTML($nfsen_uid, $www_gid); +-CopyAllFiles($ConfigFile, $nfsen_uid, $www_gid); +-PatchAllScripts(); ++if ($copy) { ++ SetupHTML($nfsen_uid, $www_gid); ++ CopyAllFiles($ConfigFile, $nfsen_uid, $www_gid); ++ PatchAllScripts(); ++} ++ ++if ($configure) { # Not indented; cvs keywords in following block will break ports tree patches + Cleanup(); + SetupEnv($nfsen_uid, $www_gid); + +@@ -787,9 +804,10 @@ $$$hints{'version'} = $nfsen_version; + $$$hints{'installed'} = time(); + NfSen::StoreHints(); + chown $nfsen_uid, $www_gid, "$NfConf::PROFILESTATDIR/hints" || die "Can't chown hints db: $!\n"; ++} + print "Setup done.\n\n"; + +-if ( $nfsen_run ) { ++if ( $copy && $nfsen_run ) { + print "Restart nfsend\n"; + system("$NfConf::BINDIR/nfsend"); + } diff --git a/net/nfsen/pkg/DESCR-main b/net/nfsen/pkg/DESCR-main new file mode 100644 index 00000000000..2ed1f5adab9 --- /dev/null +++ b/net/nfsen/pkg/DESCR-main @@ -0,0 +1,15 @@ +NfSen is a graphical web based front end for the nfdump netflow +tools, allowing you to: + +* Display your netflow data: + Flows, Packets and Bytes using RRD (Round Robin Database). +* Easily navigate through the netflow data. +* Process the netflow data within the specified time span. +* Create history as well as continuous profiles. +* Set alerts, based on various conditions. +* Write your own plugins to process netflow data on a regular interval. + +Different tasks need different interfaces to your netflow data. +NfSen allows you to keep all the convenient advantages of the command +line using nfdump directly and gives you also a graphical overview +over your netflow data. diff --git a/net/nfsen/pkg/DESCR-web b/net/nfsen/pkg/DESCR-web new file mode 100644 index 00000000000..c221dae8dd3 --- /dev/null +++ b/net/nfsen/pkg/DESCR-web @@ -0,0 +1,17 @@ +NfSen is a graphical web based front end for the nfdump netflow +tools, allowing you to: + +* Display your netflow data: + Flows, Packets and Bytes using RRD (Round Robin Database). +* Easily navigate through the netflow data. +* Process the netflow data within the specified time span. +* Create history as well as continuous profiles. +* Set alerts, based on various conditions. +* Write your own plugins to process netflow data on a regular interval. + +Different tasks need different interfaces to your netflow data. +NfSen allows you to keep all the convenient advantages of the command +line using nfdump directly and gives you also a graphical overview +over your netflow data. + +This package contains the website parts (html, PHP, etc.) diff --git a/net/nfsen/pkg/MESSAGE-main b/net/nfsen/pkg/MESSAGE-main new file mode 100644 index 00000000000..d16f34c689e --- /dev/null +++ b/net/nfsen/pkg/MESSAGE-main @@ -0,0 +1,16 @@ +Note: the _nfcapd user has been added to group www. + +To proceed with an installation or upgrade, adjust ${SYSCONFDIR}/nfsen.conf +as required and run the configuration tool: + +# install-nfsen.pl ${SYSCONFDIR}/nfsen.conf + +If your httpd runs in a chroot jail of /var/www you may adapt like this: + +# mkdir -p /var/www/var/db +# mv /var/db/nfsen /var/www/var/db/nfsen +# ln -s /var/www/var/db/nfsen /var/db/nfsen + +To start the daemon at boot, you may add this to /etc/rc.local: + +[ -x ${PREFIX}/bin/nfsen ] && ${PREFIX}/bin/nfsen start diff --git a/net/nfsen/pkg/PLIST-main b/net/nfsen/pkg/PLIST-main new file mode 100644 index 00000000000..1f678e55135 --- /dev/null +++ b/net/nfsen/pkg/PLIST-main @@ -0,0 +1,95 @@ +@comment $OpenBSD: PLIST-main,v 1.1.1.1 2010/05/02 20:52:32 sthen Exp $ +bin/RebuildHierarchy.pl +bin/install-nfsen.pl +bin/nfsen +bin/nfsend +bin/testPlugin +lib/nfsen/ +lib/nfsen/plugins/ +lib/nfsen/plugins/demoplugin.pm +lib/nfsen/plugins/smily.jpg +${P5SITE}/NfSen/ +${P5SITE}/NfSen/Log.pm +${P5SITE}/NfSen/Lookup.pm +${P5SITE}/NfSen/NfAlert.pm +${P5SITE}/NfSen/NfConf.pm +${P5SITE}/NfSen/NfProfile.pm +${P5SITE}/NfSen/NfSen.pm +${P5SITE}/NfSen/NfSenRC.pm +${P5SITE}/NfSen/NfSenRRD.pm +${P5SITE}/NfSen/NfSenSim.pm +${P5SITE}/NfSen/Nfcomm.pm +${P5SITE}/NfSen/Nfsources.pm +${P5SITE}/NfSen/Notification.pm +${P5SITE}/NfSen/installer-items/ +${P5SITE}/NfSen/installer-items/CopyRecursive.pm +${P5SITE}/NfSen/installer-items/RRDconvertv1.pm +share/doc/nfsen/ +share/doc/nfsen/AlertArmTrigger.png +share/doc/nfsen/AlertArmed.png +share/doc/nfsen/AlertArmedMultiple.png +share/doc/nfsen/AlertBlocked.png +share/doc/nfsen/AlertConditions1.png +share/doc/nfsen/AlertConditions2.png +share/doc/nfsen/AlertCreateDialoge.png +share/doc/nfsen/AlertDefinition.png +share/doc/nfsen/AlertFired.png +share/doc/nfsen/AlertFiredOnce.png +share/doc/nfsen/AlertFlow.png +share/doc/nfsen/AlertInactive.png +share/doc/nfsen/AlertInfo.png +share/doc/nfsen/AlertList.png +share/doc/nfsen/AlertTrigger.png +share/doc/nfsen/BSD-license.html +share/doc/nfsen/Bookmark.png +share/doc/nfsen/BuildingProfile.png +share/doc/nfsen/ChannelDialog.png +share/doc/nfsen/DefaultFilter.png +share/doc/nfsen/DisabledSources.png +share/doc/nfsen/DragHandle.png +share/doc/nfsen/ExpandStat.png +share/doc/nfsen/Lookup.png +share/doc/nfsen/Navigating.png +share/doc/nfsen/Navigating.psd +share/doc/nfsen/NewProfile.png +share/doc/nfsen/OutOfData.png +share/doc/nfsen/PluginGuide/ +share/doc/nfsen/PluginGuide/plugin-alertaction.png +share/doc/nfsen/PluginGuide/plugin-alertcondition.png +share/doc/nfsen/PluginGuide/plugin-guide.html +share/doc/nfsen/PluginGuide/plugins-comm.png +share/doc/nfsen/PluginGuide/plugins-concept.png +share/doc/nfsen/PluginGuide/plugins-frontend-flow.png +share/doc/nfsen/PortTracker.png +share/doc/nfsen/ProcessingControls.png +share/doc/nfsen/ProcessingOutput.png +share/doc/nfsen/ProfileChannels.png +share/doc/nfsen/ProfileCommit.png +share/doc/nfsen/ProfileConversion.png +share/doc/nfsen/ProfileCreated.png +share/doc/nfsen/ProfileExamples.png +share/doc/nfsen/SelectWindow.png +share/doc/nfsen/StatSummary.png +share/doc/nfsen/TimeWindow.png +share/doc/nfsen/WinScale.png +share/doc/nfsen/alerting.png +share/doc/nfsen/cursor_control.png +share/doc/nfsen/custom-format.png +share/doc/nfsen/details-graphs.png +share/doc/nfsen/dirstruct.png +share/doc/nfsen/edit.png +share/doc/nfsen/flows.png +share/doc/nfsen/index.html +share/doc/nfsen/linegraph.png +share/doc/nfsen/navigation.png +share/doc/nfsen/nfsen-dist.conf +share/doc/nfsen/overview.png +share/doc/nfsen/processing-1.png +share/doc/nfsen/selectprofile.png +share/doc/nfsen/stat.png +share/doc/nfsen/trigger.png +share/examples/nfsen/ +share/examples/nfsen/nfsen.conf +@sample ${SYSCONFDIR}/nfsen.conf +@exec-add usermod -v -G www _nfcapd +@extraunexec rm -rf /var/db/nfsen diff --git a/net/nfsen/pkg/PLIST-web b/net/nfsen/pkg/PLIST-web new file mode 100644 index 00000000000..98cfda5cba0 --- /dev/null +++ b/net/nfsen/pkg/PLIST-web @@ -0,0 +1,58 @@ +@comment $OpenBSD: PLIST-web,v 1.1.1.1 2010/05/02 20:52:32 sthen Exp $ +htdocs/nfsen/ +htdocs/nfsen/alerting.php +htdocs/nfsen/colour_palette.html +htdocs/nfsen/colour_picker.html +htdocs/nfsen/conf.php +htdocs/nfsen/css/ +htdocs/nfsen/css/alerting.css +htdocs/nfsen/css/detail.css +htdocs/nfsen/css/lookup.css +htdocs/nfsen/css/nfsen.css +htdocs/nfsen/css/profileadmin.css +htdocs/nfsen/details.php +htdocs/nfsen/icons/ +htdocs/nfsen/icons/EmptyGraph.png +htdocs/nfsen/icons/Error.png +htdocs/nfsen/icons/ErrorGraph.png +htdocs/nfsen/icons/arrow.blue.down.png +htdocs/nfsen/icons/arrow.blue.right.png +htdocs/nfsen/icons/arrow.yellow.down.png +htdocs/nfsen/icons/arrow.yellow.right.png +htdocs/nfsen/icons/close.png +htdocs/nfsen/icons/cursor-line.png +htdocs/nfsen/icons/cursor-start.png +htdocs/nfsen/icons/cursor-stop.png +htdocs/nfsen/icons/edit.png +htdocs/nfsen/icons/help.png +htdocs/nfsen/icons/invisible.png +htdocs/nfsen/icons/minus.png +htdocs/nfsen/icons/ok.png +htdocs/nfsen/icons/plus.png +htdocs/nfsen/icons/progress.png +htdocs/nfsen/icons/save.png +htdocs/nfsen/icons/shade.gif +htdocs/nfsen/icons/shade.png +htdocs/nfsen/icons/shadeactive.png +htdocs/nfsen/icons/space.png +htdocs/nfsen/icons/spyglas.png +htdocs/nfsen/icons/trash.png +htdocs/nfsen/icons/trigger.png +htdocs/nfsen/js/ +htdocs/nfsen/js/ColorPicker2.js +htdocs/nfsen/js/alerting.js +htdocs/nfsen/js/detail.js +htdocs/nfsen/js/global.js +htdocs/nfsen/js/menu.js +htdocs/nfsen/js/profileadmin.js +htdocs/nfsen/lookup.php +htdocs/nfsen/navigator.php +htdocs/nfsen/nfsen.php +htdocs/nfsen/nfsenutil.php +htdocs/nfsen/overview.php +htdocs/nfsen/pic.php +htdocs/nfsen/plugins/ +htdocs/nfsen/plugins/demoplugin.php +htdocs/nfsen/process.php +htdocs/nfsen/profileadmin.php +htdocs/nfsen/rrdgraph.php