diff --git a/root/usr/share/smanager/lib/SrvMngr/Controller/Letsencrypt-Custom.pm b/root/usr/share/smanager/lib/SrvMngr/Controller/Letsencrypt-Custom.pm
index 126d967..e01192c 100644
--- a/root/usr/share/smanager/lib/SrvMngr/Controller/Letsencrypt-Custom.pm
+++ b/root/usr/share/smanager/lib/SrvMngr/Controller/Letsencrypt-Custom.pm
@@ -7,20 +7,15 @@
#
use esmith::util;
use esmith::util::network;
-use esmith::ConfigDB;
-use esmith::HostsDB;
-use esmith::AccountsDB;
-use esmith::NetworksDB;
-use esmith::DomainsDB;
+use esmith::ConfigDB::UTF8;
+use esmith::HostsDB::UTF8;
+use esmith::AccountsDB::UTF8;
+use esmith::NetworksDB::UTF8;
+use esmith::DomainsDB::UTF8;
use constant FALSE => 0;
use constant TRUE => 1;
-#The most common ones
-#our $cdb = esmith::ConfigDB->open() || die("Couldn't open config db");
-#our $adb = esmith::AccountsDB->open() || die("Couldn't open Accounts db");
-#our $ndb = esmith::NetworksDB->open() || die("Couldn't open Network db");
-#our $hdb = esmith::HostsDB->open() || die("Couldn't open Hosts db");
-#our $ddb = esmith::DomainsDB->open() || die("Couldn't open Domains db");
+our ($cdb,$adb,$ndb,$hdb,$ddb);
# Validation routines - parameters for each panel
sub validate_LIST {
@@ -161,7 +156,7 @@ sub validate_CHECKONEDOMAIN {
# Get singleton data for each panel
sub get_data_for_panel_LIST {
- my $cdb = esmith::ConfigDB->open() || die("Couldn't open config db");
+ $cdb = esmith::ConfigDB->open() || die("Couldn't open config db");
# Return a hash with the fields required which will be loaded into the shared data
my $c = shift;
@@ -186,7 +181,7 @@ sub get_data_for_panel_PARAMS {
# Return a hash with the fields required which will be loaded into the shared data
my $c = shift;
- my $cdb = esmith::ConfigDB->open() || die("Couldn't open config db");
+ $cdb = esmith::ConfigDB->open() || die("Couldn't open config db");
my %ret = (
'Data1' => 'Data for PARAMS', #Example
# fields from Inputs in PARAMS $fields['PARAMS']
@@ -274,8 +269,8 @@ sub actual_DomainList {
# #print $element . "\n";
# push @list, $element;
# }
- my $ddb = esmith::DomainsDB->open() || die("Couldn't open Domains db");
- my $hdb = esmith::HostsDB->open() || die("Couldn't open Hosts db");
+ $ddb = esmith::DomainsDB::UTF8->open() || die("Couldn't open Domains db");
+ $hdb = esmith::HostsDB::UTF8->open() || die("Couldn't open Hosts db");
my @data = ();
my $check = $c->l('Check Domain');
@@ -288,7 +283,7 @@ sub actual_DomainList {
my $checklink = "" . $check . "";
#my $checklink = "check";
- $isincert = "Y" if ($dname ~~ @list);
+ $isincert = "Y" if (grep(/^$dname$/, @list));
# domain
push @data,
@@ -303,13 +298,14 @@ sub actual_DomainList {
#and hosts
for my $h ($hdb->get_hosts_by_domain($dname)) {
- next if $ddb->get($h->key);
+ my $hname = $h->key;
+ next if $ddb->get($hname);
next unless ($h->prop('HostType') eq "Self" || $h->prop('HostType') eq "Local");
$le = $h->prop('letsencryptSSLcert') || 'disabled'; #letsencrypt configure all
$isincert = "N";
- $isincert = "Y" if ($h->key ~~ @list);
+ $isincert = "Y" if (grep(/^$hname$/, @list));
push @data, {
- Domain => "--> " . $h->key,
+ Domain => "--> " . $hname,
$h->props,
Description => $h->prop('ExternalIP') || $h->prop('InternalIP') || "",
Content => $h->prop('HostType'),
@@ -444,7 +440,7 @@ sub perform_PARAMS {
my $c = shift;
my $prefix_data = shift; #Data hash as parameter
my $ret = "";
- my $cdb = esmith::ConfigDB->open() || die("Couldn't open config db");
+ $cdb = esmith::ConfigDB::UTF8->open() || die("Couldn't open config db");
my $db = $cdb; #maybe one of the others
my $dbkey = 'letsencrypt';
@@ -485,7 +481,7 @@ sub perform_CHECKALLDOMAINS {
my $c = shift;
my $prefix_data = shift; #Data hash as parameter
my $ret = "";
- my $cdb = esmith::ConfigDB->open() || die("Couldn't open config db");
+ $cdb = esmith::ConfigDB::UTF8->open() || die("Couldn't open config db");
my $db = $cdb; #maybe one of the others
my $dbkey = 'ChangeThis';
@@ -502,7 +498,7 @@ sub perform_CHECKALLENABLEDDOMAINS {
my $c = shift;
my $prefix_data = shift; #Data hash as parameter
my $ret = "";
- my $cdb = esmith::ConfigDB->open() || die("Couldn't open config db");
+ $cdb = esmith::ConfigDB::UTF8->open() || die("Couldn't open config db");
my $db = $cdb; #maybe one of the others
my $dbkey = 'ChangeThis';
@@ -553,7 +549,7 @@ sub get_my_ip {
sub update_one_domain {
my ($self, $domain) = @_;
- my $ddb = esmith::DomainsDB->open() || die("Couldn't open Domains db");
+ $ddb = esmith::DomainsDB::UTF8->open() || die("Couldn't open Domains db");
return "$domain not domain" unless ($ddb->get($domain) || $hdb->get($domain));
($domain) = ($domain =~ /([\w\p{L}.]+)/);
my $output = `/etc/e-smith/events/actions/letsencrypt-setdomains " " $domain `;
diff --git a/root/usr/share/smanager/lib/SrvMngr/Controller/Letsencrypt.pm b/root/usr/share/smanager/lib/SrvMngr/Controller/Letsencrypt.pm
index 6e700e7..45d1937 100644
--- a/root/usr/share/smanager/lib/SrvMngr/Controller/Letsencrypt.pm
+++ b/root/usr/share/smanager/lib/SrvMngr/Controller/Letsencrypt.pm
@@ -30,11 +30,11 @@ use SrvMngr qw(theme_list init_session);
use Data::Dumper;
use esmith::util;
use esmith::util::network;
-use esmith::ConfigDB;
-use esmith::AccountsDB;
-use esmith::NetworksDB;
-use esmith::HostsDB;
-use esmith::DomainsDB;
+use esmith::ConfigDB::UTF8;
+use esmith::AccountsDB::UTF8;
+use esmith::NetworksDB::UTF8;
+use esmith::HostsDB::UTF8;
+use esmith::DomainsDB::UTF8;
require
'/usr/share/smanager/lib/SrvMngr/Controller/Letsencrypt-Custom.pm'; #The code that is to be added by the developer
@@ -53,11 +53,11 @@ sub main {
$c->app->log->info($c->log_req);
#The most common ones
- my $cdb = esmith::ConfigDB->open() || die("Couldn't open config db");
- my $adb = esmith::AccountsDB->open() || die("Couldn't open Accounts db");
- my $ndb = esmith::NetworksDB->open() || die("Couldn't open Network db");
- my $hdb = esmith::HostsDB->open() || die("Couldn't open Hosts db");
- my $ddb = esmith::DomainsDB->open() || die("Couldn't open Domains db");
+ my $cdb = esmith::ConfigDB::UTF8->open() || die("Couldn't open config db");
+ my $adb = esmith::AccountsDB::UTF8->open() || die("Couldn't open Accounts db");
+ my $ndb = esmith::NetworksDB::UTF8->open() || die("Couldn't open Network db");
+ my $hdb = esmith::HostsDB::UTF8->open() || die("Couldn't open Hosts db");
+ my $ddb = esmith::DomainsDB::UTF8->open() || die("Couldn't open Domains db");
my %lets_data = ();
my $title = $c->l('lets_Letsencrypt_certificate');
my $modul = '';
@@ -98,11 +98,11 @@ sub do_update {
my $modul = '';
#The most common ones - you might want to comment out any not used.
- my $cdb = esmith::ConfigDB->open() || die("Couldn't open config db");
- my $adb = esmith::AccountsDB->open() || die("Couldn't open Accounts db");
- my $ndb = esmith::NetworksDB->open() || die("Couldn't open Network db");
- my $hdb = esmith::HostsDB->open() || die("Couldn't open Hosts db");
- my $ddb = esmith::DomainsDB->open() || die("Couldn't open Domains db");
+ my $cdb = esmith::ConfigDB::UTF8->open() || die("Couldn't open config db");
+ my $adb = esmith::AccountsDB::UTF8->open() || die("Couldn't open Accounts db");
+ my $ndb = esmith::NetworksDB::UTF8->open() || die("Couldn't open Network db");
+ my $hdb = esmith::HostsDB::UTF8->open() || die("Couldn't open Hosts db");
+ my $ddb = esmith::DomainsDB::UTF8->open() || die("Couldn't open Domains db");
my %lets_data = ();
my $title = $c->l('lets_Letsencrypt_certificate');
@@ -295,11 +295,11 @@ sub do_display {
$c->app->log->info($c->log_req);
#The most common ones - you might want to comment out any not used.
- my $cdb = esmith::ConfigDB->open() || die("Couldn't open config db");
- my $adb = esmith::AccountsDB->open() || die("Couldn't open Accounts db");
- my $ndb = esmith::NetworksDB->open() || die("Couldn't open Network db");
- my $hdb = esmith::HostsDB->open() || die("Couldn't open Hosts db");
- my $ddb = esmith::DomainsDB->open() || die("Couldn't open Domains db");
+ my $cdb = esmith::ConfigDB::UTF8->open() || die("Couldn't open config db");
+ my $adb = esmith::AccountsDB::UTF8->open() || die("Couldn't open Accounts db");
+ my $ndb = esmith::NetworksDB::UTF8->open() || die("Couldn't open Network db");
+ my $hdb = esmith::HostsDB::UTF8->open() || die("Couldn't open Hosts db");
+ my $ddb = esmith::DomainsDB::UTF8->open() || die("Couldn't open Domains db");
my %lets_data = ();
my $title = $c->l('lets_Letsencrypt_certificate');
my $modul = "";
@@ -445,4 +445,4 @@ sub do_display {
);
$c->render(template => "letsencrypt");
} ## end sub do_display
-1;
\ No newline at end of file
+1;
diff --git a/smeserver-certificates.spec b/smeserver-certificates.spec
index 5b63484..04e5bfd 100644
--- a/smeserver-certificates.spec
+++ b/smeserver-certificates.spec
@@ -1,6 +1,6 @@
%define name smeserver-certificates
%define version 11.0
-%define release 4
+%define release 5
Summary: This is what smeserver-certificates does.
Name: %{name}
Version: %{version}
@@ -25,6 +25,10 @@ AutoReqProv: no
%changelog
+* Wed Jun 11 2025 Jean-Philippe Pialasse 11.0-5.sme
+- open esmith using UTF8 [SME: 13036]
+ rewrite smartmatches to grep
+
* Thu Feb 20 2025 Brian Read 11.0-4.sme
- Add local open DB in check on domain sub [SME: 12932]