diff --git a/config/backup/includes/imspector b/config/backup/includes/imspector
deleted file mode 100644
index cc7ef16bf..000000000
--- a/config/backup/includes/imspector
+++ /dev/null
@@ -1,3 +0,0 @@
-/etc/imspector/acl.txt
-/etc/imspector/badwords.txt
-/etc/imspector/imspector.conf
\ No newline at end of file
diff --git a/config/imspector/imspector.conf b/config/imspector/imspector.conf
deleted file mode 100644
index a37241df6..000000000
--- a/config/imspector/imspector.conf
+++ /dev/null
@@ -1,24 +0,0 @@
-# The listening port for redirected connections
-port=16667
-
-# For dropping privs - you probably want to do this.
-user=nobody
-group=nobody
-
-# Prefix and postfix to all responses using all responder plugins
-response_prefix=Message from IMSpector: -=
-response_postfix==-
-
-# Will load enabled plugins in plugin_dir
-icq_protocol=on
-irc_protocol=on
-msn_protocol=on
-yahoo_protocol=on
-gg_protocol=on
-jabber_protocol=on
-
-# Location where the file logging plugin will start from.
-file_logging_dir=/var/log/imspector/
-log_typing_events=on
-
-plugin_dir=/usr/lib/imspector
diff --git a/config/menu/EX-imspector.menu b/config/menu/EX-imspector.menu
deleted file mode 100644
index c88866f5f..000000000
--- a/config/menu/EX-imspector.menu
+++ /dev/null
@@ -1,5 +0,0 @@
- $subipfire->{'30.imspector'} = {'caption' => 'Imspector',
- 'uri' => '/cgi-bin/imspector.cgi',
- 'title' => 'Imspector',
- 'enabled' => 1,
- };
diff --git a/config/rootfiles/common/configroot b/config/rootfiles/common/configroot
index 8b5d9f43d..911a780ec 100644
--- a/config/rootfiles/common/configroot
+++ b/config/rootfiles/common/configroot
@@ -111,7 +111,6 @@ var/ipfire/menu.d/70-log.menu
#var/ipfire/menu.d/EX-asterisk.menu
#var/ipfire/menu.d/EX-bluetooth.menu
#var/ipfire/menu.d/EX-guardian.menu
-#var/ipfire/menu.d/EX-imspector.menu
#var/ipfire/menu.d/EX-mpfire.menu
#var/ipfire/menu.d/EX-samba.menu
#var/ipfire/menu.d/EX-tor.menu
diff --git a/config/rootfiles/common/web-user-interface b/config/rootfiles/common/web-user-interface
index 1330ed7a8..f204f1657 100644
--- a/config/rootfiles/common/web-user-interface
+++ b/config/rootfiles/common/web-user-interface
@@ -29,7 +29,6 @@ srv/web/ipfire/cgi-bin/gui.cgi
srv/web/ipfire/cgi-bin/hardwaregraphs.cgi
srv/web/ipfire/cgi-bin/hosts.cgi
srv/web/ipfire/cgi-bin/ids.cgi
-#srv/web/ipfire/cgi-bin/imspector.cgi
srv/web/ipfire/cgi-bin/index.cgi
srv/web/ipfire/cgi-bin/ipinfo.cgi
srv/web/ipfire/cgi-bin/iptables.cgi
diff --git a/config/rootfiles/packages/imspector b/config/rootfiles/packages/imspector
deleted file mode 100644
index 945c3774d..000000000
--- a/config/rootfiles/packages/imspector
+++ /dev/null
@@ -1,28 +0,0 @@
-etc/imspector
-etc/imspector.conf
-#etc/imspector/acl.txt
-#etc/imspector/badwords.txt
-#etc/imspector/imspector.conf
-usr/lib/imspector
-usr/lib/imspector/aclfilterplugin.so
-usr/lib/imspector/badwordsfilterplugin.so
-usr/lib/imspector/catsloggingplugin.so
-usr/lib/imspector/censordfilterplugin.so
-usr/lib/imspector/debugloggingplugin.so
-usr/lib/imspector/fileloggingplugin.so
-usr/lib/imspector/ggprotocolplugin.so
-usr/lib/imspector/httpsprotocolplugin.so
-usr/lib/imspector/icqprotocolplugin.so
-usr/lib/imspector/ircprotocolplugin.so
-usr/lib/imspector/jabberprotocolplugin.so
-usr/lib/imspector/miscfilterplugin.so
-usr/lib/imspector/msnprotocolplugin.so
-usr/lib/imspector/yahooprotocolplugin.so
-usr/lib/libimspector.so
-usr/sbin/imspector
-var/ipfire/backup/addons/includes/imspector
-var/lib/imspector
-var/log/imspector
-etc/rc.d/init.d/imspector
-srv/web/ipfire/cgi-bin/imspector.cgi
-var/ipfire/menu.d/EX-imspector.menu
diff --git a/html/cgi-bin/imspector.cgi b/html/cgi-bin/imspector.cgi
deleted file mode 100644
index fff4329d7..000000000
--- a/html/cgi-bin/imspector.cgi
+++ /dev/null
@@ -1,607 +0,0 @@
-#!/usr/bin/perl
-#
-# IMSpector real-time log viewer
-# (c) SmoothWall Ltd 2008
-#
-# Released under the GPL v2.
-
-use POSIX qw(strftime);
-
-# Common configuration parameters.
-
-my $logbase = "/var/log/imspector/";
-my $oururl = '/cgi-bin/imspector.cgi';
-
-# Colours
-
-my $protocol_colour = '#06264d';
-my $local_colour = '#1d398b';
-my $remote_colour = '#2149c1';
-my $conversation_colour = '#335ebe';
-
-my $local_user_colour = 'blue';
-my $remote_user_colour = 'green';
-
-# No need to change anything from this point
-
-# Page declaration, The following code should parse the CGI headers, and render the page
-# accordingly... How you do this depends what environment you're in.
-
-my %cgiparams;
-
-print "Content-type: text/html\n";
-print "\n";
-
-if ($ENV{'QUERY_STRING'})
-{
- my @vars = split('\&', $ENV{'QUERY_STRING'});
- foreach $_ (@vars)
- {
- my ($var, $val) = split(/\=/);
- $cgiparams{$var} = $val;
- }
-}
-
-# Act in Tail mode (as in just generate the raw logs and pass back to the other CGI
-
-if ( defined $cgiparams{'mode'} and $cgiparams{'mode'} eq "render" ){
- &parser( $cgiparams{'section'}, $cgiparams{'offset'}, $cgiparams{'conversation'}, $cgiparams{'skimhtml'} );
- exit;
-}
-
-# Start rendering the Page using Express' rendering functions
-
-my $script = &scriptheader();
-
-# Print Some header information
-
-print qq|
-
-
-
- IMSpector real-time log viewer
- $script
-
-
-|;
-
-print &pagebody();
-
-# and now finish off the HTML page.
-
-print qq|
-
-
-|;
-
-exit;
-
-# -----------------------------------------------------------------------------
-# ---------------------- IMSPector Log Viewer Code ----------------------------
-# -----------------------------------------------------------------------------
-# ^"^ ^"^
-
-# Scriptheader
-# ------------
-# Return the bulk of the page, which should reside in the pages field
-
-sub scriptheader
-{
- my ( $sec, $min, $hour, $mday, $mon, $year, $wday, $yday ) = localtime( time() );
- $year += 1900; $mon++;
- my $conversation = sprintf( "%.4d-%.2d-%.2d", $year, $mon, $mday );
-
- my $script = qq {
-
- };
-
- return $script;
-}
-
-# pagebody function
-# -----------------
-# Return the HTML fragment which includes the page body.
-
-sub pagebody
-{
- my $body = qq {
- Updating
-
-
-
- |
-
-
-
-
-
- For conversations on:
-
-
-
- [HTML]
- [SCROLL LOCK]
-
-
- |
-
-
-
- };
- return $body;
-}
-
-# Parser function ...
-# ---------------
-# Retrieves the IMspector logs from their nestling place and displays them accordingly.
-
-sub parser
-{
- my ( $section, $offset, $conversationdate, $skimhtml ) = @_;
- # render the user list ...
-
- chomp $offset;
-
- unless ( $offset =~ /^([\d]*)$/ ){
- print STDERR "Illegal offset ($offset $1) resetting...\n";
- $offset = 0;
- }
-
- # browse for the available protocols
- unless ( opendir DIR, $logbase ){
- exit;
- }
-
- my %conversationaldates;
- my @protocols = grep {!/^\./} readdir(DIR);
-
- foreach my $protocol ( @protocols ){
- unless ( opendir LUSER, "$logbase$protocol" ){
- next;
- }
-
- my @localusers = grep {!/^\./} readdir(LUSER);
- foreach my $localuser ( @localusers ){
- unless ( opendir RUSER, "$logbase$protocol/$localuser/" ){
- next;
- }
- my @remoteusers = grep {!/^\./} readdir( RUSER );
- foreach my $remoteuser ( @remoteusers ){
- unless ( opendir CONVERSATIONS, "$logbase$protocol/$localuser/$remoteuser/" ){
- next;
- }
- my @conversations = grep {!/^\./} readdir( CONVERSATIONS );
- foreach my $conversation ( @conversations ){
- $conversationaldates{ $conversation } = $localuser;
- }
-
- closedir CONVERSATIONS;
-
- my ( $sec, $min, $hour, $mday, $mon, $year, $wday, $yday ) = localtime( time() );
- $year += 1900; $mon++;
- my $conversation = sprintf( "%.4d-%.2d-%.2d", $year, $mon, $mday );
-
- $conversation = $conversationdate if ( defined $conversationdate and $conversationdate ne "" );
-
- if ( -e "$logbase$protocol/$localuser/$remoteuser/$conversation" ){
- my $modi = -M "$logbase$protocol/$localuser/$remoteuser/$conversation";
- print "|$protocol|$localuser|$remoteuser|$conversation|$modi\n";
- }
- }
- closedir RUSER;
- }
- closedir LUSER;
- }
- closedir DIR;
-
- print "--END--\n";
-
- # display a list of conversational dates .. i.e. the dates which we have conversations on.
- foreach my $key ( sort keys %conversationaldates ){
- print "$key\n";
- }
-
- print "--END--\n";
-
-
- # now check the log file ...
-
- if ( $section ne "none" ){
- my ( $protocol, $localuser, $remoteuser, $conversation ) = split /\|/, $section;
-
- print "$protocol, $localuser, $remoteuser, $conversation\n";
- print "--END--\n";
-
- my $filename = "$logbase$protocol/$localuser/$remoteuser/$conversation";
-
- unless ( open(FD, "$filename" ) ){
- exit;
- };
-
- # perform some *reasonably* complicated file hopping and stuff of that ilk.
- # it's not beyond reason that logs *could* be extremely large, so what we
- # should do to speed up their processing is to jump to the end of the file,
- # then backtrack a little (say a meg, which is a reasonably amount of logs)
- # and parse from that point onwards. This, *post* filtering might of course
- # not leave us with the desired resolution for the tail. If this is the case,
- # we keep that array and jump back another meg and have another go, concatinating
- # the logs as we go....
-
- my $jumpback = 100000; # not quite a meg, but hey ho
- my $goneback = 0;
- my $gonebacklimit = 1000000000; # don't go back more than 100MB
-
- # firstly jump to the end of the file.
- seek( FD, 0, 2 );
-
- my $log_position = tell( FD );
- my $end = $log_position;
- my $end_position = $log_position;
-
- my $lines;
- my @content;
-
- my $TAILSIZE = 100;
-
- do {
- $end_position = $log_position;
-
- if ( $offset != 0 ){
- # we were given a hint as to where we should have been anyhow ..
- # so we might as well use that to go back to.
- $log_position = $offset;
- $goneback = $end_position - $log_position;
- } else {
- $log_position -= $jumpback;
- $goneback += $jumpback;
- }
-
- last if ( $goneback > $gonebacklimit );
-
- if ( $log_position > 0 ){
- seek( FD, $log_position, 0 );
- } else {
- seek( FD, 0, 0 );
- }
-
- my @newcontent;
-
- while ( my $line = and ( tell( FD ) <= $end_position ) ){
- chomp $line;
- push @content, $line;
- }
- shift @content if $#content >= $TAILSIZE;
- } while ( $#content < $TAILSIZE and $log_position > 0 and $offset == 0 );
-
- # trim the content down as we may have more entries than we should.
-
- while ( $#content > $TAILSIZE ){ shift @content; };
- close FD;
-
- print "$end_position\n--END--\n";
-
- foreach my $line ( @content ){
- my ( $address, $timestamp, $direction, $type, $filtered, $cat, $data );
-
- ( $address, $timestamp, $direction, $type, $filtered, $cat, $data ) = ( $line =~ /([^,]*),(\d+),(\d+),(\d+),(\d+),([^,]*),(.*)/ );
-
- # are we using the oldstyle or new style logs ?
- if ( not defined $address and not defined $timestamp ){
- ( $address, $timestamp, $type, $data ) = ( $line =~ /([^,]*),([^,]*),([^,]*),(.*)/ );
- if ( $type eq "1" ){
- $direction = 0;
- $type = 1;
- } elsif ( $type eq "2" ){
- $direction = 1;
- $type = 1;
- } elsif ( $type eq "3" ){
- $direction = 0;
- $type = 2;
- } elsif ( $type eq "4" ){
- $direction = 1;
- $type = 4;
- }
- }
-
- my ( $severity, $classification ) = '0', 'None';
- if ($cat) {
- ( $severity, $classification) = split(/ /, $cat, 2); }
- else {
- $cat = 'N/A'; }
-
- my $red = 255;
- my $green = 255;
- my $blue = 255;
-
- if ($severity < 0 && $severity >= -5) {
- $red = 0; $green = abs($severity) * (255 / 5); $blue = 0; }
- elsif ($severity > 0 && $severity <= 5) {
- $red = $severity * (255 / 5); $green = 0; $blue = 0; }
- else {
- $red = 0; $green = 0; $blue = 0; }
-
- my $severitycolour = '';
- if ($cat ne 'N/A') {
- $severitycolour = sprintf("background-color: #%02x%02x%02x;", $red, $green, $blue); }
-
- # some protocols (ICQ, I'm looking in your direction) have a habit of starting
- # and ending each sentence with HTML (evil program)
-
- if ( defined $skimhtml and $skimhtml eq "1" ){
- $data =~ s/^]*>]*>//ig;
- $data =~ s/<\/FONT><\/BODY><\/HTML>//ig;
- }
-
- $data = &htmlescape($data);
- $data =~ s/\r\\n/
\n/g;
- my $user = "";
-
- my $bstyle = "";
- $bstyle = "style='background-color: #FFE4E1;'" if ( $filtered eq "1" );
-
- if ( $type eq "1" ){
- # a message message (from remote user)
- if ( $direction eq "0" ){
- # incoming
- my $u = $remoteuser;
- $u =~ s/\@.*//g;
- $user = "<$u>";
- } else {
- # outgoing message
- my $u = $localuser;
- $u =~ s/\@.*//g;
- $user = "<$u>";
- }
- } elsif ($type eq "2") {
- if ( $direction eq "0" ){
- # incoming file
- my $u = $remoteuser;
- $u =~ s/\@.*//g;
- $user = "<$u>";
- } else {
- # outgoing file
- my $u = $localuser;
- $u =~ s/\@.*//g;
- $user = "<$u>";
- }
- }
-
- my $t = strftime "%H:%M:%S", localtime($timestamp);
- if ($type eq "3" or $type eq "4") {
- $data = "$data";
- }
- print "| [$t] | | $user | $data |
";
- }
- }
- return;
-}
-
-sub htmlescape
-{
- my ($value) = @_;
- $value =~ s/&/\&/g;
- $value =~ s/\</g;
- $value =~ s/>/\>/g;
- $value =~ s/"/\"/g;
- $value =~ s/'/\'/g;
- return $value;
-}
diff --git a/lfs/imspector b/lfs/imspector
deleted file mode 100644
index d4aa9b1e0..000000000
--- a/lfs/imspector
+++ /dev/null
@@ -1,98 +0,0 @@
-###############################################################################
-# #
-# IPFire.org - A linux based firewall #
-# Copyright (C) 2010 Michael Tremer & Christian Schmidt #
-# #
-# This program is free software: you can redistribute it and/or modify #
-# it under the terms of the GNU General Public License as published by #
-# the Free Software Foundation, either version 3 of the License, or #
-# (at your option) any later version. #
-# #
-# This program 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 General Public License for more details. #
-# #
-# You should have received a copy of the GNU General Public License #
-# along with this program. If not, see . #
-# #
-###############################################################################
-
-###############################################################################
-# Definitions
-###############################################################################
-
-include Config
-
-VER = 20101008
-
-THISAPP = imspector-$(VER)
-DL_FILE = $(THISAPP).tar.gz
-DL_FROM = $(URL_IPFIRE)
-DIR_APP = $(DIR_SRC)/imspector
-TARGET = $(DIR_INFO)/$(THISAPP)
-PROG = imspector
-PAK_VER = 3
-
-DEPS = ""
-
-###############################################################################
-# Top-level Rules
-###############################################################################
-
-objects = $(DL_FILE)
-
-$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-
-$(DL_FILE)_MD5 = 032407bb13ccddb77328f83eded102ee
-
-install : $(TARGET)
-
-check : $(patsubst %,$(DIR_CHK)/%,$(objects))
-
-download :$(patsubst %,$(DIR_DL)/%,$(objects))
-
-md5 : $(subst %,%_MD5,$(objects))
-
-dist:
- @$(PAK)
-
-###############################################################################
-# Downloading, checking, md5sum
-###############################################################################
-
-$(patsubst %,$(DIR_CHK)/%,$(objects)) :
- @$(CHECK)
-
-$(patsubst %,$(DIR_DL)/%,$(objects)) :
- @$(LOAD)
-
-$(subst %,%_MD5,$(objects)) :
- @$(MD5)
-
-###############################################################################
-# Installation Details
-###############################################################################
-
-$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
- @$(PREBUILD)
- @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
-
- cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/imspector-20101008-ssl.patch
- cd $(DIR_SRC)/imspector && sed -e "s/^SSL_LIBS.*/& -lcrypto/" -i Makefile
- cd $(DIR_SRC)/imspector && make install
-
- -mv /usr/etc/imspector /etc/imspector
- -mv /etc/imspector/imspector /etc/imspector
-
- install -v -m 755 $(DIR_CONF)/imspector/imspector.conf /etc/imspector.conf
- install -v -m 644 $(DIR_SRC)/config/backup/includes/imspector /var/ipfire/backup/addons/includes/imspector
-
- chmod 755 /srv/web/ipfire/cgi-bin/imspector.cgi
- chown nobody:nobody -R /var/log/imspector
-
- #install initscripts
- $(call INSTALL_INITSCRIPT,imspector)
-
- @rm -rf $(DIR_APP)
- @$(POSTBUILD)
diff --git a/make.sh b/make.sh
index 3ebf0b8d0..4f53e4654 100755
--- a/make.sh
+++ b/make.sh
@@ -805,7 +805,6 @@ buildipfire() {
lfsmake2 pound
lfsmake2 minicom
lfsmake2 ddrescue
- lfsmake2 imspector
lfsmake2 miniupnpd
lfsmake2 client175
lfsmake2 powertop
diff --git a/src/initscripts/packages/imspector b/src/initscripts/packages/imspector
deleted file mode 100644
index 7a5a98653..000000000
--- a/src/initscripts/packages/imspector
+++ /dev/null
@@ -1,54 +0,0 @@
-#!/bin/sh
-# Begin $rc_base/init.d/imspector
-
-. /etc/sysconfig/rc
-. $rc_functions
-
-case "$1" in
- start)
- boot_mesg "Inserting imspector redirects..."
- iptables -t nat -A CUSTOMPREROUTING -p tcp --destination-port 1863 -j REDIRECT --to-ports 16667
- iptables -t nat -A CUSTOMPREROUTING -p tcp --destination-port 5222 -j REDIRECT --to-ports 16667
- iptables -t nat -A CUSTOMPREROUTING -p tcp --destination-port 5223 -j REDIRECT --to-ports 16667
- iptables -t nat -A CUSTOMPREROUTING -p tcp --destination-port 5190 -j REDIRECT --to-ports 16667
- iptables -t nat -A CUSTOMPREROUTING -p tcp --destination-port 5050 -j REDIRECT --to-ports 16667
- iptables -t nat -A CUSTOMPREROUTING -p tcp --destination-port 6667 -j REDIRECT --to-ports 16667
- iptables -t nat -A CUSTOMPREROUTING -p tcp --destination-port 8074 -j REDIRECT --to-ports 16667
-
- boot_mesg "Starting imspector Deamon..."
- loadproc imspector -c /etc/imspector/imspector.conf
- evaluate_retval
- ;;
-
- stop)
- boot_mesg "Stopping imspector Deamon..."
- killproc /usr/sbin/imspector
- evaluate_retval
-
- boot_mesg "Remove imspector redirects..."
- iptables -t nat -D CUSTOMPREROUTING -p tcp --destination-port 1863 -j REDIRECT --to-ports 16667
- iptables -t nat -D CUSTOMPREROUTING -p tcp --destination-port 5222 -j REDIRECT --to-ports 16667
- iptables -t nat -D CUSTOMPREROUTING -p tcp --destination-port 5223 -j REDIRECT --to-ports 16667
- iptables -t nat -D CUSTOMPREROUTING -p tcp --destination-port 5190 -j REDIRECT --to-ports 16667
- iptables -t nat -D CUSTOMPREROUTING -p tcp --destination-port 5050 -j REDIRECT --to-ports 16667
- iptables -t nat -D CUSTOMPREROUTING -p tcp --destination-port 6667 -j REDIRECT --to-ports 16667
- iptables -t nat -D CUSTOMPREROUTING -p tcp --destination-port 8074 -j REDIRECT --to-ports 16667
- ;;
-
- restart)
- $0 stop
- sleep 1
- $0 start
- ;;
-
- status)
- statusproc /usr/sbin/imspector
- ;;
-
- *)
- echo "Usage: $0 {start|stop|restart|status}"
- exit 1
- ;;
-esac
-
-# End $rc_base/init.d/imspector
diff --git a/src/patches/imspector-20101008-ssl.patch b/src/patches/imspector-20101008-ssl.patch
deleted file mode 100644
index 32ac76629..000000000
--- a/src/patches/imspector-20101008-ssl.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- imspector/sslstate.h 2010-02-23 18:21:56.000000000 +0100
-+++ imspector/sslstate.h 2013-12-14 15:40:04.796370688 +0100
-@@ -52,7 +52,7 @@
- int sslverify; //!< Our VERIFY_ choice.
-
- bool localdebugmode; //!< Saves us from passing this around.
-- SSL_METHOD *method; //!< openssl method handle.
-+ const SSL_METHOD *method; //!< openssl method handle.
- SSL_CTX *connectctx; //!< Our IM server-sde CTX.
- SSL_CTX *ctx; //!< Our IM client-side CTX.
-