diff --git a/src/warden-client/doc/CHANGELOG b/src/warden-client/doc/CHANGELOG
index 582b9c0f56d461e6686f7ca8e5ec2fb0f9cf817a..a2fdab2d402286a797e36718b017c2039be69a6b 100644
--- a/src/warden-client/doc/CHANGELOG
+++ b/src/warden-client/doc/CHANGELOG
@@ -1,3 +1,8 @@
+2012-00-00 v.2.1 stable version
+-------------------------------
+- receiving of all types of messages now supported
+
+
 2012-07-27 v.2.0 stable version and bugfix release of warden-client-2.0.0-beta
 ------------------------------------------------------------------------------
 - Sender client code fixed, so that it will not terminate "parent"
diff --git a/src/warden-client/doc/README.cesnet b/src/warden-client/doc/README.cesnet
index f4e69c1da5a4ab871d3c9b21333b88dbc957634a..b72568cab688bb3c5e516c37c6847f677460be33 100644
--- a/src/warden-client/doc/README.cesnet
+++ b/src/warden-client/doc/README.cesnet
@@ -138,6 +138,7 @@ D. Types of events
    * test - clients can use these at will when debugging/testing, these
             messages will be processed and stored, but ignored later
    * other - the rest, uncategorizable yet
+   * _any_ - clients can use these for receiving of all types of messages
 
    In case of complex scenarios with structured info more events with
    particular parts of information can be created.
diff --git a/src/warden-server/doc/CHANGELOG b/src/warden-server/doc/CHANGELOG
index 859ea60529cb2941651c3920687370347c0da9f2..7d07ced897d49e4fdeed2e8639394f7be2184ef3 100644
--- a/src/warden-server/doc/CHANGELOG
+++ b/src/warden-server/doc/CHANGELOG
@@ -1,3 +1,8 @@
+2012-00-00 v2.1 stable version
+------------------------------
+- receiving of all types of messages now supported
+
+
 2012-07-27 v2.0 stable version
 ------------------------------
 - MySQL database engine used
@@ -7,6 +12,7 @@
 - added automatic reconnect to DB
 - other minor bugs and issues fixed
 
+
 2012-03-02 v0.1.0 beta version
 ------------------------------
 - initial release of the Warden server
diff --git a/src/warden-server/doc/README b/src/warden-server/doc/README
index 0f36bcc613d2903b4dddf2b11875a0e007b56cc1..c6bad8ae16d16e28fcf424b377a819fc308062f2 100644
--- a/src/warden-server/doc/README
+++ b/src/warden-server/doc/README
@@ -1,5 +1,5 @@
 +----------------------------+
-| README - Warden Server 2.0 |
+| README - Warden Server 2.1 |
 +----------------------------+
 
 Content
@@ -23,7 +23,7 @@ A. Overall Information
 
  2. Version
   
-    2.0 (2012-07-27)
+    2.1 (2012-00-00)
     
  3. Package structure
  
@@ -87,11 +87,11 @@ C. Installation
 
  1. Check SHA1 checksum of the Warden server package archive.
 
-    $ sha1sum -c warden-server-2.0.tar.gz.sig
+    $ sha1sum -c warden-server-2.1.tar.gz.sig
 
  2. Untar it.
 
-    $ tar xzvf warden-server-2.0.tar.gz
+    $ tar xzvf warden-server-2.1.tar.gz
 
  3. Run install.sh. 
   
diff --git a/src/warden-server/lib/Warden.pm b/src/warden-server/lib/Warden.pm
index 5d07ae3da7a5591e734b0607da423b3150ebc14a..f56150f19704bc77b99aaf7e6fda82994e6299af 100755
--- a/src/warden-server/lib/Warden.pm
+++ b/src/warden-server/lib/Warden.pm
@@ -20,7 +20,7 @@ use DateTime;
 use MIME::Base64;
 use Crypt::X509;
 
-our $VERSION = "2.0";
+our $VERSION = "2.1";
 
 
 ################################################################################
@@ -127,57 +127,56 @@ sub getAltNames
 
 sub authorizeClient
 {
-    my ($alt_names, $ip, $service_type, $client_type, $function_name) = @_;
-
-    my $sth;
-    # obtain cidr based on rigth common name and alternate names, service and client_type
-    if($function_name eq 'saveNewEvent') {
-        $sth = $DBH->prepare(   "SELECT hostname, ip_net_client, receive_own_events 
-                                FROM clients WHERE hostname IN ($alt_names) AND service = ? AND client_type = ? 
-                                ORDER BY SUBSTRING_INDEX(ip_net_client,'/', -1) DESC;");
-    }
-    elsif($function_name eq 'getNewEvents') {
-        $sth = $DBH->prepare(   "SELECT hostname, ip_net_client, receive_own_events 
-                                FROM clients WHERE hostname IN ($alt_names) AND type = ? AND client_type = ? 
-                                ORDER BY SUBSTRING_INDEX(ip_net_client,'/', -1) DESC;");
-    }
+  my ($alt_names, $ip, $service_type, $client_type, $function_name) = @_;
+  my $sth;
 
-    if (!defined $sth) { die("Cannot prepare authorization statement in $function_name: $DBI::errstr\n")}
-    $sth->execute($service_type, $client_type);
-    
-    my ($an, $cidr, $receive_own, $cidr_list);
-    my $correct_ip_source = 0;
-    my %ret;
-
-    while(($an, $cidr, $receive_own)  = $sth->fetchrow()) {
-        my $cidr_list = Net::CIDR::Lite-> new -> add($cidr);
-        
-        $ret{'dns'} = $an;
-        $ret{'cidr'} = $cidr;
-        $ret{'receive_own'} = $receive_own;
-           
-        if ($cidr_list->bin_find($ip)) {
-            $correct_ip_source = 1;
-            last;
-        }
-    };
-
-    # check if client is registered
-    if ($sth->rows == 0) {
-        write2log ("err", "Unauthorized access to $function_name from: $ip (CN(AN): $alt_names), used service '$service_type' - client is not registered");
-        die("Access denied - client is not registered at warden server!");
-        return undef;
-    }
+  # obtain cidr based on rigth common name and alternate names, service and client_type
+  if($function_name eq 'saveNewEvent') {
+    $sth = $DBH->prepare("SELECT hostname, ip_net_client, receive_own_events 
+                          FROM clients WHERE hostname IN ($alt_names) AND service = ? AND client_type = ? 
+                          ORDER BY SUBSTRING_INDEX(ip_net_client,'/', -1) DESC;");
+  } elsif($function_name eq 'getNewEvents') {
+    $sth = $DBH->prepare("SELECT hostname, ip_net_client, receive_own_events 
+                          FROM clients WHERE hostname IN ($alt_names) AND type = ? AND client_type = ? 
+                          ORDER BY SUBSTRING_INDEX(ip_net_client,'/', -1) DESC;");
+  }
+
+  if (!defined $sth) { die("Cannot prepare authorization statement in $function_name: $DBI::errstr\n")}
+  $sth->execute($service_type, $client_type);
+
+  my ($an, $cidr, $receive_own, $cidr_list);
+  my $correct_ip_source = 0;
+  my %ret;
+
+  while(($an, $cidr, $receive_own)  = $sth->fetchrow()) {
+    my $cidr_list = Net::CIDR::Lite-> new -> add($cidr);
 
-    # check if client has IP from registered CIDR
-    if (!$correct_ip_source) {
-        write2log ("err", "Unauthorized access to $function_name from: $ip (CN(AN): $alt_names), used service '$service_type' - access from bad subnet: Registered subnet '" . $ret{'cidr'} . "'");
-        die("Access denied - access from unauthorized subnet!");
-        return undef;
+    $ret{'dns'} = $an;
+    $ret{'cidr'} = $cidr;
+    $ret{'receive_own'} = $receive_own;
+
+    if ($cidr_list->bin_find($ip)) {
+      $correct_ip_source = 1;
+      last;
     }
+  }
 
-    return %ret;
-}
+  # check if client is registered
+  if ($sth->rows == 0) {
+    write2log ("err", "Unauthorized access to $function_name from: $ip (CN(AN): $alt_names), used service '$service_type' - client is not registered");
+    die("Access denied - client is not registered at warden server!");
+    return undef;
+  }
+
+  # check if client has IP from registered CIDR
+  if (!$correct_ip_source) {
+    write2log ("err", "Unauthorized access to $function_name from: $ip (CN(AN): $alt_names), used service '$service_type' - access from bad subnet: Registered subnet '" . $ret{'cidr'} . "'");
+    die("Access denied - access from unauthorized subnet!");
+    return undef;
+  }
+
+  return %ret;
+} # END of authorizeClient
 
 
 ################################################################################
@@ -205,26 +204,23 @@ sub saveNewEvent
   # parse object (event) parameters
   my $service		= $data->{'SERVICE'};
   my $detected		= $data->{'DETECTED'};
-  my $type		    = $data->{'TYPE'};
+  my $type		= $data->{'TYPE'};
   my $source_type	= $data->{'SOURCE_TYPE'};
   my $source		= $data->{'SOURCE'};
   my $target_proto	= $data->{'TARGET_PROTO'};
   my $target_port	= $data->{'TARGET_PORT'};
   my $attack_scale 	= $data->{'ATTACK_SCALE'};
-  my $note		    = $data->{'NOTE'};
+  my $note		= $data->{'NOTE'};
   my $priority		= $data->{'PRIORITY'};
   my $timeout		= $data->{'TIMEOUT'};
 
-
-   my %client = authorizeClient($alt_names, $ip, $service, $client_type, 'saveNewEvent');
-   if(defined %client) {
+  my %client = authorizeClient($alt_names, $ip, $service, $client_type, 'saveNewEvent');
+  if(defined %client) {
     # insert new events into DB
     $sth=$DBH->prepare("INSERT INTO events VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?);");
     if (!defined $sth) { die("Cannot do insert statement in saveNewEvent: $DBI::errstr\n") }
-
     $sth->execute(undef, $client{'dns'}, $service, $detected, $received, $type, $source_type, $source, $target_proto, $target_port, $attack_scale, $note, $priority, $timeout, $valid);
-
-      return 1;
+    return 1;
   }
 } # END of saveNewEvent
 
@@ -239,30 +235,41 @@ sub getNewEvents
   my ($id, $hostname, $service, $detected, $type, $source_type, $source, $target_proto, $target_port, $attack_scale, $note, $priority, $timeout);
 
   # client network information
-  my $cn	    = $ENV{'SSL_CLIENT_S_DN_CN'};
-  my $alt_names = getAltNames(undef);
-  my $ip	    = $ENV{'REMOTE_ADDR'};
-
-  my $client_type	= "r";	# incoming client MUST be sender
+  my $cn	= $ENV{'SSL_CLIENT_S_DN_CN'};
+  my $alt_names	= getAltNames(undef);
+  my $ip	= $ENV{'REMOTE_ADDR'};
+  my $client_type = "r";	# incoming client MUST be sender
 
   # parse SOAP data object
   my $requested_type = $data->{'REQUESTED_TYPE'};
-  my $last_id		 = $data->{'LAST_ID'};
-
+  my $last_id	     = $data->{'LAST_ID'};
 
   my %client = authorizeClient($alt_names, $ip, $requested_type, $client_type, 'getNewEvents');
   if(defined %client) {
-    # check if client want your own events or not
-    if ($client{'receive_own'} eq 't') {
-      $sth = $DBH->prepare("SELECT * FROM events WHERE type != 'test' AND id > ? AND type = ? AND valid = 't' ORDER BY id ASC;");
-      if (!defined $sth) {die("Cannot prepare ROE statement in getNewEvents: $DBI::errstr\n")}
-      $sth->execute($last_id, $requested_type);
+    if ($client{'receive_own'} eq 't') {	# check if client want your own events or not
+      if ($requested_type eq '_any_') {		  # check if client want each or only one type of messages
+        $sth = $DBH->prepare("SELECT * FROM events WHERE type != 'test' AND id > ? AND valid = 't' ORDER BY id ASC;");
+        if (!defined $sth) {die("Cannot prepare ROE-ANY statement in getNewEvents: $DBI::errstr\n")}
+        $sth->execute($last_id);
+      } else {
+        $sth = $DBH->prepare("SELECT * FROM events WHERE type != 'test' AND id > ? AND type = ? AND valid = 't' ORDER BY id ASC;");
+        if (!defined $sth) {die("Cannot prepare ROE statement in getNewEvents: $DBI::errstr\n")}
+        $sth->execute($last_id, $requested_type);
+      }
     } else {
-      $sth = $DBH->prepare("SELECT * FROM events WHERE type != 'test' AND id > ? AND type = ? AND valid = 't' AND hostname NOT LIKE ? ORDER BY id ASC;");
-      if (!defined $sth) {die("Cannot prepare statement in getNewEvents: $DBI::errstr\n")}
-      my ($domain) = $cn =~ /([^\.]+\.[^\.]+)$/;
-      $domain = '\%' . $domain;
-      $sth->execute($last_id, $requested_type, $domain);
+      if ($requested_type eq '_any_') {
+        $sth = $DBH->prepare("SELECT * FROM events WHERE type != 'test' AND id > ? AND valid = 't' AND hostname NOT LIKE ? ORDER BY id ASC;");
+        if (!defined $sth) {die("Cannot prepare ANY statement in getNewEvents: $DBI::errstr\n")}
+        my ($domain) = $cn =~ /([^\.]+\.[^\.]+)$/;
+        $domain = '\%' . $domain;
+        $sth->execute($last_id, $domain);
+      } else {
+        $sth = $DBH->prepare("SELECT * FROM events WHERE type != 'test' AND id > ? AND type = ? AND valid = 't' AND hostname NOT LIKE ? ORDER BY id ASC;");
+        if (!defined $sth) {die("Cannot prepare statement in getNewEvents: $DBI::errstr\n")}
+        my ($domain) = $cn =~ /([^\.]+\.[^\.]+)$/;
+        $domain = '\%' . $domain;
+        $sth->execute($last_id, $requested_type, $domain);
+      }
     }
 
     # parse items of events stored in DB
@@ -276,19 +283,19 @@ sub getNewEvents
       $source	 	= $result[7];
       $target_proto	= $result[8];
       $target_port 	= $result[9];
-      $attack_scale = $result[10];
+      $attack_scale	= $result[10];
       $note 		= $result[11];
       $priority 	= $result[12];
       $timeout	 	= $result[13];
 
       # create SOAP data object
       $event = SOAP::Data->name(event => \SOAP::Data->value(
-        SOAP::Data->name(ID		    => $id),
+        SOAP::Data->name(ID		=> $id),
         SOAP::Data->name(HOSTNAME	=> $hostname),
         SOAP::Data->name(SERVICE	=> $service),
         SOAP::Data->name(DETECTED	=> $detected),
         SOAP::Data->name(TYPE		=> $type),
-        SOAP::Data->name(SOURCE_TYPE=> $source_type),
+        SOAP::Data->name(SOURCE_TYPE	=> $source_type),
         SOAP::Data->name(SOURCE		=> $source),
         SOAP::Data->name(TARGET_PROTO	=> $target_proto),
         SOAP::Data->name(TARGET_PORT	=> $target_port),