diff --git a/install/dist/conf/centos72.conf.php b/install/dist/conf/centos72.conf.php
index 221cc5d7c40cbaf72a014f61bdb2bb2947f646e8..8bb2ca5239875b47d37a36a7ca940517f8091b57 100644
--- a/install/dist/conf/centos72.conf.php
+++ b/install/dist/conf/centos72.conf.php
@@ -96,6 +96,9 @@ $conf['web']['apps_vhost_servername'] = '';
 $conf['web']['apps_vhost_user'] = 'ispapps';
 $conf['web']['apps_vhost_group'] = 'ispapps';
 
+//* AWStats settings
+$conf['awstats']['pl'] = '/usr/share/awstats/wwwroot/cgi-bin/awstats.pl';
+
 //* Fastcgi
 $conf['fastcgi']['fastcgi_phpini_path'] = '/etc/';
 $conf['fastcgi']['fastcgi_starter_path'] = '/var/www/php-fcgi-scripts/[system_user]/';
diff --git a/install/dist/conf/centos80.conf.php b/install/dist/conf/centos80.conf.php
index 04257d4dfece9aab36e1b2506431a7f5a934df7c..0411fb9ce5e95238cf29c0cf1afb374cd5458209 100644
--- a/install/dist/conf/centos80.conf.php
+++ b/install/dist/conf/centos80.conf.php
@@ -96,6 +96,9 @@ $conf['web']['apps_vhost_servername'] = '';
 $conf['web']['apps_vhost_user'] = 'ispapps';
 $conf['web']['apps_vhost_group'] = 'ispapps';
 
+//* AWStats settings
+$conf['awstats']['pl'] = '/usr/share/awstats/wwwroot/cgi-bin/awstats.pl';
+
 //* Fastcgi
 $conf['fastcgi']['fastcgi_phpini_path'] = '/etc/';
 $conf['fastcgi']['fastcgi_starter_path'] = '/var/www/php-fcgi-scripts/[system_user]/';
diff --git a/interface/lib/classes/auth.inc.php b/interface/lib/classes/auth.inc.php
index d5dcfd1fe4d6fe66785fd7f4f4e05c191de2321e..a69d43da2ec1a079c0d4aefe906684f389d4ffa4 100644
--- a/interface/lib/classes/auth.inc.php
+++ b/interface/lib/classes/auth.inc.php
@@ -58,7 +58,7 @@ class auth {
 
 		$userid = $app->functions->intval($userid);
 		$client = $app->db->queryOneRecord("SELECT client.limit_client FROM sys_user, client WHERE sys_user.userid = ? AND sys_user.client_id = client.client_id", $userid);
-		if($client['limit_client'] != 0) {
+		if(is_array($client) && $client['limit_client'] != 0) {
 			return true;
 		} else {
 			return false;
diff --git a/interface/lib/lang/ar.lng b/interface/lib/lang/ar.lng
index 1d577862b7e31e4808ba94f3cf7a93c96d05e924..2763f8e82b62ca71763dcba6434898d7eb1f1fac 100644
--- a/interface/lib/lang/ar.lng
+++ b/interface/lib/lang/ar.lng
@@ -119,6 +119,9 @@ $wb['datalog_status_u_server'] = 'Update server settings';
 $wb['datalog_status_d_server'] = 'Delete server';
 $wb['datalog_status_i_cron'] = 'Create cron job';
 $wb['datalog_status_u_cron'] = 'Update cron job';
+$wb['datalog_status_i_server_ip'] = 'Add server IP';
+$wb['datalog_status_u_server_ip'] = 'Update server IP';
+$wb['datalog_status_d_server_ip'] = 'Delete server IP';
 $wb['datalog_status_d_cron'] = 'Delete cron job';
 $wb['datalog_status_i_mail_get'] = 'Create mail fetcher account';
 $wb['datalog_status_u_mail_get'] = 'Update mail fetcher account';
diff --git a/interface/lib/lang/bg.lng b/interface/lib/lang/bg.lng
index 36a7f7081fe33a2274068e0d37b4e8370090be42..94dfaa8ad19b9f45499558418abcb46ea7cb49de 100644
--- a/interface/lib/lang/bg.lng
+++ b/interface/lib/lang/bg.lng
@@ -119,6 +119,9 @@ $wb['datalog_status_u_server'] = 'Update server settings';
 $wb['datalog_status_d_server'] = 'Delete server';
 $wb['datalog_status_i_cron'] = 'Създай автоматична задача';
 $wb['datalog_status_u_cron'] = 'Обнови автоматична задача';
+$wb['datalog_status_i_server_ip'] = 'Add server IP';
+$wb['datalog_status_u_server_ip'] = 'Update server IP';
+$wb['datalog_status_d_server_ip'] = 'Delete server IP';
 $wb['datalog_status_d_cron'] = 'Изтрий автоматична задача';
 $wb['datalog_status_i_mail_get'] = 'Създай имейл акаунт за извличане на поща';
 $wb['datalog_status_u_mail_get'] = 'Обнови имейл акаунт за извличане на поща';
diff --git a/interface/lib/lang/br.lng b/interface/lib/lang/br.lng
index a236cd5f810364c0ee2cbe85057181e96bb21e4c..92507a6a7c1e0a6f5b57545b4a434346a3d6e7d0 100644
--- a/interface/lib/lang/br.lng
+++ b/interface/lib/lang/br.lng
@@ -122,6 +122,9 @@ $wb['datalog_status_u_server'] = 'Update server settings';
 $wb['datalog_status_d_server'] = 'Delete server';
 $wb['datalog_status_i_cron'] = 'Adicionar tarefa no cron';
 $wb['datalog_status_u_cron'] = 'Atualizar tarefa no cron';
+$wb['datalog_status_i_server_ip'] = 'Add server IP';
+$wb['datalog_status_u_server_ip'] = 'Update server IP';
+$wb['datalog_status_d_server_ip'] = 'Delete server IP';
 $wb['datalog_status_d_cron'] = 'Remover tarefa no cron';
 $wb['datalog_status_i_mail_get'] = 'Adicionar conta de busca de e-mail';
 $wb['datalog_status_u_mail_get'] = 'Atualizar conta de busca de e-mail';
diff --git a/interface/lib/lang/ca.lng b/interface/lib/lang/ca.lng
index 123748fd0d574035b8aeaa9439098d21be6d0697..c57185fd108c8efb9df79f46b0b1acd786b73844 100644
--- a/interface/lib/lang/ca.lng
+++ b/interface/lib/lang/ca.lng
@@ -122,6 +122,9 @@ $wb['datalog_status_u_server'] = 'Update server settings';
 $wb['datalog_status_d_server'] = 'Delete server';
 $wb['datalog_status_i_cron'] = 'Créer une tâche cron';
 $wb['datalog_status_u_cron'] = 'Modifier une tâche cron';
+$wb['datalog_status_i_server_ip'] = 'Add server IP';
+$wb['datalog_status_u_server_ip'] = 'Update server IP';
+$wb['datalog_status_d_server_ip'] = 'Delete server IP';
 $wb['datalog_status_d_cron'] = 'Supprimer une tâche cron';
 $wb['datalog_status_i_mail_get'] = 'Créer un compte mail récupérateur';
 $wb['datalog_status_u_mail_get'] = 'Modifier un compte mail récupérateur';
diff --git a/interface/lib/lang/cz.lng b/interface/lib/lang/cz.lng
index 28e76397b451beae87db22b126b2da6cb9dd70bd..a3c2fe440c478c7d3755e3bd27231de1a4aa6787 100644
--- a/interface/lib/lang/cz.lng
+++ b/interface/lib/lang/cz.lng
@@ -122,6 +122,9 @@ $wb['datalog_status_u_server'] = 'Update server settings';
 $wb['datalog_status_d_server'] = 'Delete server';
 $wb['datalog_status_i_cron'] = 'Vytvoření shell uživatele';
 $wb['datalog_status_u_cron'] = 'Aktualizace nastavení shell uživatele';
+$wb['datalog_status_i_server_ip'] = 'Add server IP';
+$wb['datalog_status_u_server_ip'] = 'Update server IP';
+$wb['datalog_status_d_server_ip'] = 'Delete server IP';
 $wb['datalog_status_d_cron'] = 'Odstranění shell uživatele';
 $wb['datalog_status_i_mail_get'] = 'Vytvoření účtu pro získávání externí e-mailové pošty';
 $wb['datalog_status_u_mail_get'] = 'Aktualizace nastavení účtu pro získávání externí e-mailové pošty';
diff --git a/interface/lib/lang/de.lng b/interface/lib/lang/de.lng
index 22c33380fedb3e9f91f656e86a3f9250c29f2693..11a5e21a5d2ef0f62e26d18627c4b0cab444da93 100644
--- a/interface/lib/lang/de.lng
+++ b/interface/lib/lang/de.lng
@@ -123,6 +123,9 @@ $wb['datalog_status_u_server'] = 'Update server settings';
 $wb['datalog_status_d_server'] = 'Delete server';
 $wb['datalog_status_i_cron'] = 'Cronjob anlegen';
 $wb['datalog_status_u_cron'] = 'Cronjob ändern';
+$wb['datalog_status_i_server_ip'] = 'Add server IP';
+$wb['datalog_status_u_server_ip'] = 'Update server IP';
+$wb['datalog_status_d_server_ip'] = 'Delete server IP';
 $wb['datalog_status_d_cron'] = 'Cronjob löschen';
 $wb['datalog_status_i_mail_get'] = 'E-Mailabruf anlegen';
 $wb['datalog_status_u_mail_get'] = 'E-Mailabruf ändern';
diff --git a/interface/lib/lang/dk.lng b/interface/lib/lang/dk.lng
index 0ffea486c2eb3b9d1576e875ba8f316e097f0a6c..9d09f1dc8dd97691652d4f1353d2fc9ae9490300 100644
--- a/interface/lib/lang/dk.lng
+++ b/interface/lib/lang/dk.lng
@@ -122,6 +122,9 @@ $wb['datalog_status_u_server'] = 'Update server settings';
 $wb['datalog_status_d_server'] = 'Delete server';
 $wb['datalog_status_i_cron'] = 'Opret cron job';
 $wb['datalog_status_u_cron'] = 'Opdater cron job';
+$wb['datalog_status_i_server_ip'] = 'Add server IP';
+$wb['datalog_status_u_server_ip'] = 'Update server IP';
+$wb['datalog_status_d_server_ip'] = 'Delete server IP';
 $wb['datalog_status_d_cron'] = 'Slet cron job';
 $wb['datalog_status_i_mail_get'] = 'Opret mail-hentnings konto';
 $wb['datalog_status_u_mail_get'] = 'Opdater mail-hentnings konto';
diff --git a/interface/lib/lang/el.lng b/interface/lib/lang/el.lng
index b0c6507e2765acad0d95e75a5c097927f71a2b01..31829d5f937f3b5effcfc0a26974a8298a82cf70 100644
--- a/interface/lib/lang/el.lng
+++ b/interface/lib/lang/el.lng
@@ -119,6 +119,9 @@ $wb['datalog_status_u_server'] = 'Update server settings';
 $wb['datalog_status_d_server'] = 'Delete server';
 $wb['datalog_status_i_cron'] = 'Create cron job';
 $wb['datalog_status_u_cron'] = 'Update cron job';
+$wb['datalog_status_i_server_ip'] = 'Add server IP';
+$wb['datalog_status_u_server_ip'] = 'Update server IP';
+$wb['datalog_status_d_server_ip'] = 'Delete server IP';
 $wb['datalog_status_d_cron'] = 'Delete cron job';
 $wb['datalog_status_i_mail_get'] = 'Create mail fetcher account';
 $wb['datalog_status_u_mail_get'] = 'Update mail fetcher account';
diff --git a/interface/lib/lang/en.lng b/interface/lib/lang/en.lng
index 904e7e30e4571143152051a6dfe9c62f90f46820..dbffc95b8c9bdcb6a821b6038fa40c72ee35131b 100644
--- a/interface/lib/lang/en.lng
+++ b/interface/lib/lang/en.lng
@@ -123,6 +123,9 @@ $wb['datalog_status_u_server'] = 'Update server settings';
 $wb['datalog_status_d_server'] = 'Delete server';
 $wb['datalog_status_i_cron'] = 'Create cron job';
 $wb['datalog_status_u_cron'] = 'Update cron job';
+$wb['datalog_status_i_server_ip'] = 'Add server IP';
+$wb['datalog_status_u_server_ip'] = 'Update server IP';
+$wb['datalog_status_d_server_ip'] = 'Delete server IP';
 $wb['datalog_status_d_cron'] = 'Delete cron job';
 $wb['datalog_status_i_mail_get'] = 'Create mail fetcher account';
 $wb['datalog_status_u_mail_get'] = 'Update mail fetcher account';
diff --git a/interface/lib/lang/es.lng b/interface/lib/lang/es.lng
index 5af12b6dddae3b6ee3085d03839847fbcf60f4de..3a421e7af51352f0c7e1be5b2e8d1bc0b7e6a301 100644
--- a/interface/lib/lang/es.lng
+++ b/interface/lib/lang/es.lng
@@ -122,6 +122,9 @@ $wb['datalog_status_u_server'] = 'Update server settings';
 $wb['datalog_status_d_server'] = 'Delete server';
 $wb['datalog_status_i_cron'] = 'Añadir cron job';
 $wb['datalog_status_u_cron'] = 'Actualizar cron job';
+$wb['datalog_status_i_server_ip'] = 'Add server IP';
+$wb['datalog_status_u_server_ip'] = 'Update server IP';
+$wb['datalog_status_d_server_ip'] = 'Delete server IP';
 $wb['datalog_status_d_cron'] = 'Borrar cron job';
 $wb['datalog_status_i_mail_get'] = 'Añadir cuenta de rescatador de correo';
 $wb['datalog_status_u_mail_get'] = 'Actualizar cuenta de rescatador de correo';
diff --git a/interface/lib/lang/fi.lng b/interface/lib/lang/fi.lng
index c399b497f221a6840616c56449cee4aec226c08d..f6648e88c6bcc0a07ca3e187f6bf3aea32ce780a 100644
--- a/interface/lib/lang/fi.lng
+++ b/interface/lib/lang/fi.lng
@@ -119,6 +119,9 @@ $wb['datalog_status_u_server'] = 'Update server settings';
 $wb['datalog_status_d_server'] = 'Delete server';
 $wb['datalog_status_i_cron'] = 'Create cron job';
 $wb['datalog_status_u_cron'] = 'Update cron job';
+$wb['datalog_status_i_server_ip'] = 'Add server IP';
+$wb['datalog_status_u_server_ip'] = 'Update server IP';
+$wb['datalog_status_d_server_ip'] = 'Delete server IP';
 $wb['datalog_status_d_cron'] = 'Delete cron job';
 $wb['datalog_status_i_mail_get'] = 'Create mail fetcher account';
 $wb['datalog_status_u_mail_get'] = 'Update mail fetcher account';
diff --git a/interface/lib/lang/fr.lng b/interface/lib/lang/fr.lng
index 8017f43742f6a346a6e8f30e0b5b3a0ac53edf91..15e8294e0c91aa97a15e19774432a0464a8a5d2c 100644
--- a/interface/lib/lang/fr.lng
+++ b/interface/lib/lang/fr.lng
@@ -122,6 +122,9 @@ $wb['datalog_status_u_server'] = 'Update server settings';
 $wb['datalog_status_d_server'] = 'Delete server';
 $wb['datalog_status_i_cron'] = 'Créer une tâche cron';
 $wb['datalog_status_u_cron'] = 'Modifier une tâche cron';
+$wb['datalog_status_i_server_ip'] = 'Add server IP';
+$wb['datalog_status_u_server_ip'] = 'Update server IP';
+$wb['datalog_status_d_server_ip'] = 'Delete server IP';
 $wb['datalog_status_d_cron'] = 'Supprimer une tâche cron';
 $wb['datalog_status_i_mail_get'] = 'Créer un compte mail récupérateur';
 $wb['datalog_status_u_mail_get'] = 'Modifier un compte mail récupérateur';
diff --git a/interface/lib/lang/hr.lng b/interface/lib/lang/hr.lng
index 52d78a6b946d613a900657b43e794f454744b7dc..fdb09cbff53d220195ae9b313dba6aea71c86aad 100644
--- a/interface/lib/lang/hr.lng
+++ b/interface/lib/lang/hr.lng
@@ -119,6 +119,9 @@ $wb['datalog_status_u_server'] = 'Update server settings';
 $wb['datalog_status_d_server'] = 'Delete server';
 $wb['datalog_status_i_cron'] = 'Kreiraj cron zadatak';
 $wb['datalog_status_u_cron'] = 'Podesi cron zadatak';
+$wb['datalog_status_i_server_ip'] = 'Add server IP';
+$wb['datalog_status_u_server_ip'] = 'Update server IP';
+$wb['datalog_status_d_server_ip'] = 'Delete server IP';
 $wb['datalog_status_d_cron'] = 'Obriši cron zadatak';
 $wb['datalog_status_i_mail_get'] = 'Kreiraj mail fetcher račun';
 $wb['datalog_status_u_mail_get'] = 'Podesi mail fetcher račun';
diff --git a/interface/lib/lang/hu.lng b/interface/lib/lang/hu.lng
index 3893db11742bfe402d42aee21873080d3f96e6fe..8e65d4c97416c77f9964c24afc0d0bbd5e96f3dd 100644
--- a/interface/lib/lang/hu.lng
+++ b/interface/lib/lang/hu.lng
@@ -119,6 +119,9 @@ $wb['datalog_status_u_server'] = 'Update server settings';
 $wb['datalog_status_d_server'] = 'Delete server';
 $wb['datalog_status_i_cron'] = 'Create cron job';
 $wb['datalog_status_u_cron'] = 'Update cron job';
+$wb['datalog_status_i_server_ip'] = 'Add server IP';
+$wb['datalog_status_u_server_ip'] = 'Update server IP';
+$wb['datalog_status_d_server_ip'] = 'Delete server IP';
 $wb['datalog_status_d_cron'] = 'Delete cron job';
 $wb['datalog_status_i_mail_get'] = 'Create mail fetcher account';
 $wb['datalog_status_u_mail_get'] = 'Update mail fetcher account';
diff --git a/interface/lib/lang/id.lng b/interface/lib/lang/id.lng
index 42e95be1fc57909910fd6874b378c03415a78feb..693ca49015657476fd703df309c8a45f8dd2cd4c 100644
--- a/interface/lib/lang/id.lng
+++ b/interface/lib/lang/id.lng
@@ -119,6 +119,9 @@ $wb['datalog_status_u_server'] = 'Update server settings';
 $wb['datalog_status_d_server'] = 'Delete server';
 $wb['datalog_status_i_cron'] = 'Create cron job';
 $wb['datalog_status_u_cron'] = 'Update cron job';
+$wb['datalog_status_i_server_ip'] = 'Add server IP';
+$wb['datalog_status_u_server_ip'] = 'Update server IP';
+$wb['datalog_status_d_server_ip'] = 'Delete server IP';
 $wb['datalog_status_d_cron'] = 'Delete cron job';
 $wb['datalog_status_i_mail_get'] = 'Create mail fetcher account';
 $wb['datalog_status_u_mail_get'] = 'Update mail fetcher account';
diff --git a/interface/lib/lang/it.lng b/interface/lib/lang/it.lng
index 1924c2a1d3086177310793b24ddbf3658ab9d5fc..1333cc907f541947ec262ecedf708e01985281a0 100644
--- a/interface/lib/lang/it.lng
+++ b/interface/lib/lang/it.lng
@@ -118,6 +118,9 @@ $wb['datalog_status_u_server'] = 'Update server settings';
 $wb['datalog_status_d_server'] = 'Delete server';
 $wb['datalog_status_i_cron'] = 'Crea  cron job';
 $wb['datalog_status_u_cron'] = 'Aggiorna   cron job';
+$wb['datalog_status_i_server_ip'] = 'Add server IP';
+$wb['datalog_status_u_server_ip'] = 'Update server IP';
+$wb['datalog_status_d_server_ip'] = 'Delete server IP';
 $wb['datalog_status_d_cron'] = 'Elimina cron job';
 $wb['datalog_status_i_mail_mailinglist'] = 'Crea  mailing list';
 $wb['datalog_status_u_mail_mailinglist'] = 'Aggiorna   mailing list';
diff --git a/interface/lib/lang/ja.lng b/interface/lib/lang/ja.lng
index 6cd1393ba3066111e1c2541ba1b8dc57fbe7b356..2d24f9a1f70ab5bbdbebd7d53927546ffd52153c 100644
--- a/interface/lib/lang/ja.lng
+++ b/interface/lib/lang/ja.lng
@@ -119,6 +119,9 @@ $wb['datalog_status_u_server'] = 'Update server settings';
 $wb['datalog_status_d_server'] = 'Delete server';
 $wb['datalog_status_i_cron'] = 'Create cron job';
 $wb['datalog_status_u_cron'] = 'Update cron job';
+$wb['datalog_status_i_server_ip'] = 'Add server IP';
+$wb['datalog_status_u_server_ip'] = 'Update server IP';
+$wb['datalog_status_d_server_ip'] = 'Delete server IP';
 $wb['datalog_status_d_cron'] = 'Delete cron job';
 $wb['datalog_status_i_mail_get'] = 'Create mail fetcher account';
 $wb['datalog_status_u_mail_get'] = 'Update mail fetcher account';
diff --git a/interface/lib/lang/nl.lng b/interface/lib/lang/nl.lng
index 5335efa2e6824eee7ce797b172927290f03d6bcd..3af436ca485348404bc1c3bde176ac4356b9246f 100644
--- a/interface/lib/lang/nl.lng
+++ b/interface/lib/lang/nl.lng
@@ -119,6 +119,9 @@ $wb['datalog_status_u_server'] = 'Update server settings';
 $wb['datalog_status_d_server'] = 'Delete server';
 $wb['datalog_status_i_cron'] = 'Aanmaken cron job';
 $wb['datalog_status_u_cron'] = 'Bijwerken cron job';
+$wb['datalog_status_i_server_ip'] = 'Add server IP';
+$wb['datalog_status_u_server_ip'] = 'Update server IP';
+$wb['datalog_status_d_server_ip'] = 'Delete server IP';
 $wb['datalog_status_d_cron'] = 'Verwijderen cron job';
 $wb['datalog_status_i_mail_get'] = 'Create mail fetcher account';
 $wb['datalog_status_u_mail_get'] = 'Update mail fetcher account';
diff --git a/interface/lib/lang/pl.lng b/interface/lib/lang/pl.lng
index b790794b5bcbdff12a594dcf701a90e24f60fe5b..4a1cd0384e1c8b5f2042bfc954630fc97ec43a1b 100644
--- a/interface/lib/lang/pl.lng
+++ b/interface/lib/lang/pl.lng
@@ -122,6 +122,9 @@ $wb['datalog_status_u_server'] = 'Update server settings';
 $wb['datalog_status_d_server'] = 'Delete server';
 $wb['datalog_status_i_cron'] = 'Utwórz zadanie Cron';
 $wb['datalog_status_u_cron'] = 'Edytuj zadanie Cron';
+$wb['datalog_status_i_server_ip'] = 'Add server IP';
+$wb['datalog_status_u_server_ip'] = 'Update server IP';
+$wb['datalog_status_d_server_ip'] = 'Delete server IP';
 $wb['datalog_status_d_cron'] = 'Usuń zadanie Cron';
 $wb['datalog_status_i_mail_get'] = 'Utwórz konto mail fetcher';
 $wb['datalog_status_u_mail_get'] = 'Edytuj konto mail fetcher';
diff --git a/interface/lib/lang/pt.lng b/interface/lib/lang/pt.lng
index c95845032967440fff491fc63c624bd74f389884..86d4442c42d2f31eb4d6d83359ce2a30db1cc9af 100644
--- a/interface/lib/lang/pt.lng
+++ b/interface/lib/lang/pt.lng
@@ -119,6 +119,9 @@ $wb['datalog_status_u_server'] = 'Update server settings';
 $wb['datalog_status_d_server'] = 'Delete server';
 $wb['datalog_status_i_cron'] = 'Create cron job';
 $wb['datalog_status_u_cron'] = 'Update cron job';
+$wb['datalog_status_i_server_ip'] = 'Add server IP';
+$wb['datalog_status_u_server_ip'] = 'Update server IP';
+$wb['datalog_status_d_server_ip'] = 'Delete server IP';
 $wb['datalog_status_d_cron'] = 'Delete cron job';
 $wb['datalog_status_i_mail_get'] = 'Create mail fetcher account';
 $wb['datalog_status_u_mail_get'] = 'Update mail fetcher account';
diff --git a/interface/lib/lang/ro.lng b/interface/lib/lang/ro.lng
index 6cc88b6c4da728c23d1e1615edabe0851a933fdf..4f032832eb92c4b26c261892e3ca6a1268a42e79 100644
--- a/interface/lib/lang/ro.lng
+++ b/interface/lib/lang/ro.lng
@@ -119,6 +119,9 @@ $wb['datalog_status_u_server'] = 'Update server settings';
 $wb['datalog_status_d_server'] = 'Delete server';
 $wb['datalog_status_i_cron'] = 'Create cron job';
 $wb['datalog_status_u_cron'] = 'Update cron job';
+$wb['datalog_status_i_server_ip'] = 'Add server IP';
+$wb['datalog_status_u_server_ip'] = 'Update server IP';
+$wb['datalog_status_d_server_ip'] = 'Delete server IP';
 $wb['datalog_status_d_cron'] = 'Delete cron job';
 $wb['datalog_status_i_mail_get'] = 'Create mail fetcher account';
 $wb['datalog_status_u_mail_get'] = 'Update mail fetcher account';
diff --git a/interface/lib/lang/ru.lng b/interface/lib/lang/ru.lng
index f886c4168abda7f8afb908df1a23de1ef7e6c830..2d18c9f628a418d3e3232819798e0ff14d0364ca 100644
--- a/interface/lib/lang/ru.lng
+++ b/interface/lib/lang/ru.lng
@@ -119,6 +119,9 @@ $wb['datalog_status_u_server'] = 'Update server settings';
 $wb['datalog_status_d_server'] = 'Delete server';
 $wb['datalog_status_i_cron'] = 'Создать задание Пданировщика задач';
 $wb['datalog_status_u_cron'] = 'Обновить задание Пданировщика задач';
+$wb['datalog_status_i_server_ip'] = 'Add server IP';
+$wb['datalog_status_u_server_ip'] = 'Update server IP';
+$wb['datalog_status_d_server_ip'] = 'Delete server IP';
 $wb['datalog_status_d_cron'] = 'Удалить задание Пданировщика задач';
 $wb['datalog_status_i_mail_get'] = 'Создать аккаунт сборщика почты';
 $wb['datalog_status_u_mail_get'] = 'Обновить аккаунт сборщика почты';
diff --git a/interface/lib/lang/se.lng b/interface/lib/lang/se.lng
index d134ce898b7901f298861c6d2b4a106fa971c9a1..5e8b3c7123a96af9a3e5697bbc3855cea19bc668 100644
--- a/interface/lib/lang/se.lng
+++ b/interface/lib/lang/se.lng
@@ -119,6 +119,9 @@ $wb['datalog_status_u_server'] = 'Update server settings';
 $wb['datalog_status_d_server'] = 'Delete server';
 $wb['datalog_status_i_cron'] = 'Skapa cron-jobb';
 $wb['datalog_status_u_cron'] = 'Uppdatera cron-jobb';
+$wb['datalog_status_i_server_ip'] = 'Add server IP';
+$wb['datalog_status_u_server_ip'] = 'Update server IP';
+$wb['datalog_status_d_server_ip'] = 'Delete server IP';
 $wb['datalog_status_d_cron'] = 'Radera cron-jobb';
 $wb['datalog_status_i_mail_get'] = 'Skapa eposthämtarkonto';
 $wb['datalog_status_u_mail_get'] = 'Uppdatera eposthämtarkonto';
diff --git a/interface/lib/lang/sk.lng b/interface/lib/lang/sk.lng
index 232a383d9740dce33f75cf65fdcc798db2c7f7eb..cab3ea1f8f9b8017ca6b92747e5eb5ef062e5640 100644
--- a/interface/lib/lang/sk.lng
+++ b/interface/lib/lang/sk.lng
@@ -119,6 +119,9 @@ $wb['datalog_status_u_server'] = 'Update server settings';
 $wb['datalog_status_d_server'] = 'Delete server';
 $wb['datalog_status_i_cron'] = 'Create cron job';
 $wb['datalog_status_u_cron'] = 'Update cron job';
+$wb['datalog_status_i_server_ip'] = 'Add server IP';
+$wb['datalog_status_u_server_ip'] = 'Update server IP';
+$wb['datalog_status_d_server_ip'] = 'Delete server IP';
 $wb['datalog_status_d_cron'] = 'Delete cron job';
 $wb['datalog_status_i_mail_get'] = 'Create mail fetcher account';
 $wb['datalog_status_u_mail_get'] = 'Update mail fetcher account';
diff --git a/interface/lib/lang/tr.lng b/interface/lib/lang/tr.lng
index c87cb26af6fb788748925f87412d60dc8d068a17..041c8d71030e856a9e93ba18bb90a145eb4bfbdc 100644
--- a/interface/lib/lang/tr.lng
+++ b/interface/lib/lang/tr.lng
@@ -123,6 +123,9 @@ $wb['datalog_status_u_server'] = 'Update server settings';
 $wb['datalog_status_d_server'] = 'Delete server';
 $wb['datalog_status_i_cron'] = 'Zamanlanmış Görev Ekle';
 $wb['datalog_status_u_cron'] = 'Zamanlanmış Görevi Güncelle';
+$wb['datalog_status_i_server_ip'] = 'Add server IP';
+$wb['datalog_status_u_server_ip'] = 'Update server IP';
+$wb['datalog_status_d_server_ip'] = 'Delete server IP';
 $wb['datalog_status_d_cron'] = 'Zamanlanmış Görevi Sil';
 $wb['datalog_status_i_mail_get'] = 'E-posta Alma Hesabı Ekle';
 $wb['datalog_status_u_mail_get'] = 'E-posta Alma Hesabını Güncelle';
diff --git a/interface/web/client/templates/clients_list.htm b/interface/web/client/templates/clients_list.htm
index 2ffd7dfa78acd49aa24bc82b8d2fe38fdfcdef38..21ad0c7bc95ece94c56fe97a579246cd1a073777 100644
--- a/interface/web/client/templates/clients_list.htm
+++ b/interface/web/client/templates/clients_list.htm
@@ -5,12 +5,12 @@
 
 
         <p class="fieldset-legend">{tmpl_var name="toolsarea_head_txt"}</p>
-            
+
                 <button class="btn btn-default formbutton-success" type="button" data-load-content="client/client_edit.php">{tmpl_var name="add_new_record_txt"}</button>
-            
-        
 
-    
+
+
+
         <p class="fieldset-legend"><tmpl_var name="list_head_txt"></p>
             <div class="table-wrapper marginTop15">
 			<table class="table">
@@ -74,13 +74,13 @@
                     </tmpl_loop>
                     <tmpl_unless name="records">
                         <tr class="tbl_row_noresults tbl_row_{tmpl_if name='__EVEN__'}even{tmpl_else}uneven{/tmpl_if}">
-                            <td colspan="{tmpl_if name="has_robot"}9{tmpl_else}8{/tmpl_if}">{tmpl_var name='globalsearch_noresults_text_txt'}</td>
+                            <td colspan="{tmpl_if name="has_robot"}10{tmpl_else}9{/tmpl_if}">{tmpl_var name='globalsearch_noresults_text_txt'}</td>
                         </tr>
                     </tmpl_unless>
                 </tbody>
                 <tfoot>
                     <tr>
-                        <td colspan="{tmpl_if name="has_robot"}9{tmpl_else}8{/tmpl_if}"><tmpl_var name="paging"></td>
+                        <td colspan="{tmpl_if name="has_robot"}10{tmpl_else}9{/tmpl_if}"><tmpl_var name="paging"></td>
                     </tr>
                 </tfoot>
             </table>
diff --git a/interface/web/sites/templates/database_admin_list.htm b/interface/web/sites/templates/database_admin_list.htm
index 724027ca910193620e7cb03aa49b565780eb15f9..08c4447fabf59f8a8b4f0f2fd98493ee703d2502 100644
--- a/interface/web/sites/templates/database_admin_list.htm
+++ b/interface/web/sites/templates/database_admin_list.htm
@@ -4,12 +4,12 @@
 
 
         <p class="fieldset-legend">{tmpl_var name="toolsarea_head_txt"}</p>
-            
+
                 <button class="btn btn-default formbutton-success" type="button" data-load-content="sites/database_edit.php">{tmpl_var name="add_new_record_txt"}</button>
-            
-        
 
-    
+
+
+
         <p class="fieldset-legend"><tmpl_var name="list_head_txt"></p>
             <div class="table-wrapper marginTop15">
 <table class="table">
@@ -67,7 +67,7 @@
                     </tmpl_loop>
                     <tmpl_unless name="records">
                         <tr class="tbl_row_noresults tbl_row_<tmpl_if name='__EVEN__'}even<tmpl_else>uneven</tmpl_if>">
-                            <td colspan="9">{tmpl_var name='globalsearch_noresults_text_txt'}</td>
+                            <td colspan="8">{tmpl_var name='globalsearch_noresults_text_txt'}</td>
                         </tr>
                     </tmpl_unless>
                 </tbody>
diff --git a/interface/web/sites/templates/database_user_admin_list.htm b/interface/web/sites/templates/database_user_admin_list.htm
index 0b7eb1be098ccf09cd3583234d4aaca3f4698af7..821dc13abee01389b6fff18b8ad38c45e2b9af2e 100644
--- a/interface/web/sites/templates/database_user_admin_list.htm
+++ b/interface/web/sites/templates/database_user_admin_list.htm
@@ -5,12 +5,12 @@
 
 
         <p class="fieldset-legend">{tmpl_var name="toolsarea_head_txt"}</p>
-            
+
                 <button class="btn btn-default formbutton-success" type="button" data-load-content="sites/database_user_edit.php">{tmpl_var name="add_new_record_txt"}</button>
-            
-        
 
-    
+
+
+
         <p class="fieldset-legend"><tmpl_var name="list_head_txt"></p>
             <div class="table-wrapper marginTop15">
 <table class="table">
@@ -22,7 +22,7 @@
                     </tr>
                     <tr>
                         <td><input class="form-control" type="text" name="search_database_user" value="{tmpl_var name='search_database_user'}"/></td>
-                        <td><select class="form-control" name="search_sys_groupid">{tmpl_var name='search_sys_groupid'}</select></td>                        
+                        <td><select class="form-control" name="search_sys_groupid">{tmpl_var name='search_sys_groupid'}</select></td>
                         <td class="text-right"><button type="button" class="btn btn-default formbutton-default formbutton-narrow" name="Filter" id="Filter" value="{tmpl_var name="filter_txt"}" data-submit-form="pageForm" data-form-action="sites/database_user_list.php"><span class="icon icon-filter"></span></button></td>
                     </tr>
                 </thead>
@@ -30,7 +30,7 @@
                     <tmpl_loop name="records">
                         <tr>
                             <td><a href="#" data-load-content="sites/database_user_edit.php?id={tmpl_var name='id'}">{tmpl_var name="database_user"}</a></td>
-                            <td><a href="#" data-load-content="sites/database_user_edit.php?id={tmpl_var name='id'}">{tmpl_var name="sys_groupid"}</a></td>                            
+                            <td><a href="#" data-load-content="sites/database_user_edit.php?id={tmpl_var name='id'}">{tmpl_var name="sys_groupid"}</a></td>
                             <td class="text-right">
                                 <a class="btn btn-default formbutton-default formbutton-narrow" data-load-content="sites/database_user_edit.php?id={tmpl_var name='id'}"><span class="icon icon-edit"></span></a>
                                 <a class="btn btn-default formbutton-danger formbutton-narrow" href="javascript: ISPConfig.confirm_action('sites/database_user_del.php?id={tmpl_var name='id'}&_csrf_id={tmpl_var name='csrf_id'}&_csrf_key={tmpl_var name='csrf_key'}&phpsessid={tmpl_var name='phpsessid'}','{tmpl_var name='delete_confirmation'}');"><span class="icon icon-delete"></span></a>
@@ -39,16 +39,14 @@
                     </tmpl_loop>
                     <tmpl_unless name="records">
                         <tr class="tbl_row_noresults tbl_row_<tmpl_if name='__EVEN__'}even<tmpl_else>uneven</tmpl_if>">
-                            <td colspan="2">{tmpl_var name='globalsearch_noresults_text_txt'}</td>
+                            <td colspan="3">{tmpl_var name='globalsearch_noresults_text_txt'}</td>
                         </tr>
                     </tmpl_unless>
                 </tbody>
                 <tfoot>
                     <tr>
-                        <td colspan="2"><tmpl_var name="paging"></td>
+                        <td colspan="3"><tmpl_var name="paging"></td>
                     </tr>
                 </tfoot>
             </table>
 </div>
-        
-    
\ No newline at end of file
diff --git a/server/lib/classes/system.inc.php b/server/lib/classes/system.inc.php
index 32afb9943ccdc5fdbfc9f1f2f618db6e046beae0..45eb9d213f458db283523c53633e233c7d2eeec4 100644
--- a/server/lib/classes/system.inc.php
+++ b/server/lib/classes/system.inc.php
@@ -1031,6 +1031,61 @@ class system{
 		}
 	}
 
+	function remove_recursive_symlinks($path, $chroot_basedir='', $recursive=false) {
+		global $app;
+
+		if ($path != '/') {
+			$path = rtrim($path, '/');
+		}
+		if (strlen($chroot_basedir) > 0) {
+			if (!is_dir($chroot_basedir)) {
+				$app->log("remove_recursive_symlink: invalid chroot basedir: $chroot_basedir", LOGLEVEL_DEBUG);
+				return false;
+			}
+			if (!(substr($path, 0, strlen($chroot_basedir)) === $chroot_basedir)) {
+				$app->log("remove_recursive_symlink: path $path is not below chroot basedir $chroot_basedir", LOGLEVEL_DEBUG);
+				return false;
+			}
+			if ($chroot_basedir != '/') {
+				$chroot_basedir = rtrim($chroot_basedir, '/');
+			}
+		}
+		if (is_dir($path)) {
+			$objects = array_diff(scandir($path), array('.', '..'));
+			foreach ($objects as $object) {
+				if (is_dir("$path/$object") && $recursive) {
+					$this->remove_recursive_symlinks("$path/$object", $chroot_basedir, $recursive);
+				} elseif (is_link("$path/$object")) {
+					$realpath = realpath("$path/$object");
+					if (strlen($chroot_basedir) > 0 ) {
+						$root_path = substr("$path/$object", strlen($chroot_basedir));
+						if ($root_path && $realpath == $root_path) {
+							$app->log("removing recursive symlink $path/$object", LOGLEVEL_DEBUG);
+							unlink ("$path/$object");
+						}
+					}
+					if ($realpath = "" || $realpath == "$path/$object") {
+						$app->log("removing recursive symlink $path/$object", LOGLEVEL_DEBUG);
+						unlink ("$path/$object");
+					}
+				}
+			}
+		} elseif (is_link("$path")) {
+			$realpath = realpath($path);
+			if (strlen($chroot_basedir) > 0 ) {
+				$root_path = substr($path, strlen($chroot_basedir));
+				if ($root_path && $realpath == $root_path) {
+					$app->log("removing recursive symlink $path", LOGLEVEL_DEBUG);
+					unlink ($path);
+				}
+			}
+			if ($realpath = "" || $realpath == $path) {
+				$app->log("removing recursive symlink $path", LOGLEVEL_DEBUG);
+				unlink ($path);
+			}
+		}
+	}
+
 	function checkpath($path) {
 		$path = trim($path);
 		//* We allow only absolute paths
@@ -2485,6 +2540,7 @@ $app->log("update_jailkit_chroot called for $home_dir with options ".print_r($op
 			}
 
 			$this->remove_broken_symlinks($jail_dir, true);
+			$this->remove_recursive_symlinks($jail_dir, $home_dir, true);
 
 			// save list of hardlinked files
 			if (!(in_array('hardlink', $opts) || in_array('allow_hardlink', $options))) {
@@ -2531,18 +2587,22 @@ $app->log('jk_update returned: '.print_r($this->_last_exec_out, true), LOGLEVEL_
 		foreach ($this->_last_exec_out as $line) {
 			# jk_update sample output:
 			# skip /var/www/clients/client1/web1/opt/
-			if (substr( $line, 0, 4 ) === "skip") {
+			# removing outdated file /var/www/clients/client15/web19/usr/bin/host
+			# removing deprecated directory /var/www/clients/client15/web19/usr/lib/x86_64-linux-gnu/libtasn1.so.6.5.3
+			# Creating symlink /var/www/clients/client15/web19/lib/x86_64-linux-gnu/libicudata.so.65 to libicudata.so.65.1
+			# Copying /usr/bin/mysql to /var/www/clients/client15/web19/usr/bin/mysql
+			if (preg_match('@^(skip|removing (outdated|deprecated)|Creating|Copying)@', $line)) {
 				continue;
 			}
 
 			# jk_update sample output:
 			# ERROR: failed to remove deprecated directory /var/www/clients/client1/web10/usr/lib/x86_64-linux-gnu/libGeoIP.so.1.6.9
-			if (preg_match('@^(?:[^ ]+){6}(?:.+)('.preg_quote($home_dir, '@').'.+)@', $line, $matches)) {
+			if (preg_match('@^(?:[^ ]+ ){6}(?:.+)('.preg_quote($home_dir, '@').'.+)@', $line, $matches)) {
 				# remove deprecated files that jk_update failed to remove
-				if (is_file($matches[1])) {
+				if (is_file($matches[1]) || is_link($matches[1])) {
 $app->log("update_jailkit_chroot: removing deprecated file which jk_update failed to remove:  ".$matches[1], LOGLEVEL_DEBUG);
 					unlink($matches[1]);
-				} elseif (is_dir($matches[1])) {
+				} elseif (is_dir($matches[1]) && !is_link($matches[1])) {
 $app->log("update_jailkit_chroot: removing deprecated directory which jk_update failed to remove:  ".$matches[1], LOGLEVEL_DEBUG);
 					$this->rmdir($matches[1], true);
 				} else {