Compare commits

...

25 Commits
1.982 ... 1.983

Author SHA1 Message Date
Jamie Cameron
f39b3a4386 New minor version 2021-12-02 21:02:03 -08:00
Ilia Rostovtsev
00015c81db Fix storing files on writing goto for the theme 2021-12-03 02:32:23 +03:00
Ilia Rostovtsev
36f95bf65c Add support for no-EOL for encode_base64 sub 2021-12-03 01:44:44 +03:00
Ilia Rostovtsev
26c4b93f2b Shorten tmp filenames 2021-12-03 00:25:05 +03:00
Ilia Rostovtsev
0af321fd26 Print referer warning with color 2021-12-02 22:32:15 +03:00
Ilia Rostovtsev
bfcf37d077 Fix redirect built for themes when used with webprefix 2021-12-02 22:23:29 +03:00
Ilia Rostovtsev
0126e3cc20 Update BIND module translations (de) 2021-12-02 20:01:43 +03:00
Ilia Rostovtsev
b31a8629a2 Update BIND module translations #1553#issuecomment-984776943 2021-12-02 19:56:10 +03:00
Ilia Rostovtsev
3ac1cfec61 Fix an error use of uninitialized value $user in concatenation 2021-12-01 12:48:14 +03:00
Ilia Rostovtsev
a3624c9bdc Fix to always fail on temp dir creation 2021-11-30 13:37:37 +03:00
Ilia Rostovtsev
c364fbdf29 Extract more sensors for System and Server Status monitors 2021-11-29 20:47:35 +03:00
Ilia Rostovtsev
a18bf52ce0 Extract ASUS like motherboards CPU fans and temp data
https://sourceforge.net/p/webadmin/discussion/600155/thread/1b4ee640c6/
2021-11-29 19:48:35 +03:00
Ilia Rostovtsev
72b2d1d291 Merge branch 'master' of github.com:webmin/webmin 2021-11-29 16:45:09 +03:00
Ilia Rostovtsev
d2caa052ec Fix to make resilient initial loads
https://forum.virtualmin.com/t/error-when-trying-to-log-into-root-server/113114
2021-11-29 16:43:11 +03:00
Jamie Cameron
ce97b752db Merge pull request #1554 from niyari/patch-custom-link-ja
Update /link japanese translation.
2021-11-28 15:49:54 -08:00
Ilia Rostovtsev
1e0cfa5b23 Fix to prioritize CPU package core temperature over motherboard sensor 2021-11-28 22:17:54 +03:00
Ilia Rostovtsev
caf00b1423 IPv6 address is case insensitive 2021-11-28 18:59:27 +03:00
Ilia Rostovtsev
a76d529a5c Fix IPv6 format for regex 2021-11-28 18:53:19 +03:00
Ilia Rostovtsev
11ec33ae5e Remove debug sub 2021-11-28 16:37:03 +03:00
Ilia Rostovtsev
bdb0132cb4 Fix IPv6 support with TCP Wrappers module
https://sourceforge.net/p/webadmin/bugs/5506/
https://sourceforge.net/p/webadmin/bugs/5521/
2021-11-28 16:34:50 +03:00
niyari
7c280f0d43 Delete .auto file 2021-11-28 15:44:02 +09:00
niyari
ccb397c433 Update /link japanese translation. 2021-11-28 15:43:49 +09:00
Jamie Cameron
f8be02018c Also accept IPv6 fastRPC connections if supported https://github.com/virtualmin/virtualmin-gpl/issues/332 2021-11-27 13:37:00 -08:00
Jamie Cameron
23df49bab1 Tell fastrpc.cgi that it's being run locally 2021-11-27 13:32:13 -08:00
Jamie Cameron
f54788ea88 Fix perl error due to text string for CAA records https://github.com/webmin/webmin/issues/1553 2021-11-27 11:46:31 -08:00
62 changed files with 361 additions and 265 deletions

View File

@@ -29,7 +29,7 @@ Webmin can be installed in two different ways:
1. By downloading a pre-built package, available for different distributions (CentOS, Fedora, SuSE, Mandriva, Debian, Ubuntu, Solaris and [other](http://www.webmin.com/support.html)) from our [download page](http://webmin.com/download.html);
<kbd>Note: It is highly recommended to [add repository](https://doxfer.webmin.com/Webmin/Installation) to your system for having automatic updates.</kbd>
2. By downloading, extracting [source file](https://prdownloads.sourceforge.net/webadmin/webmin-1.982.tar.gz), and running [_setup.sh_](http://www.webmin.com/tgz.html) script, with no arguments, which will setup to run it directly from this directory, or with a command-line argument, such as targeted directory.
2. By downloading, extracting [source file](https://prdownloads.sourceforge.net/webadmin/webmin-1.983.tar.gz), and running [_setup.sh_](http://www.webmin.com/tgz.html) script, with no arguments, which will setup to run it directly from this directory, or with a command-line argument, such as targeted directory.
<kbd>Note: If you are installing Webmin [on Windows](http://www.webmin.com/windows.html) system, you must run the command `perl setup.pl` instead. The Windows version depends on several programs, and modules that may not be part of the standard distribution. You will need _process.exe_ commmand, _sc.exe_ command, and _Win32::Daemon_ Perl module.</kbd>
## Documentation

View File

@@ -1953,6 +1953,7 @@ return 1 if ($found >= 0); # Already setup
# Grant access to the user and path
&lock_file(&get_miniserv_config_file());
$user ||= '';
push(@anon, "$path=$user");
$miniserv->{'anonymous'} = join(" ", @anon);
&put_miniserv_config($miniserv);

View File

@@ -1310,16 +1310,16 @@ elsif ($type eq "NSEC3PARAM") {
}
elsif ($type eq "CAA") {
# CAA records have a flag, tag and issuer domain
print &ui_table_row($text{'value_CAA0'},
print &ui_table_row($text{'value_CAA1'},
&ui_yesno_radio("value0", $v[0] || 0));
print &ui_table_row($text{'value_CAA1'},
print &ui_table_row($text{'value_CAA2'},
&ui_select("value1", $v[1],
[ [ "issue", $text{'value_caa_issue'} ],
[ "issuewild", $text{'value_caa_issuewild'} ],
[ "iodef", $text{'value_caa_iodef'} ] ]));
print &ui_table_row($text{'value_CAA2'},
print &ui_table_row($text{'value_CAA3'},
&ui_textbox("value2", $v[2], 40));
}
else {

View File

@@ -90,7 +90,7 @@ my %hmap;
if (@recs) {
@recs = &sort_records(@recs);
foreach my $v (sort { $a cmp $b } keys %text) {
if ($v =~ /^value_([A-Z0-9]+)(\d+)/) {
if ($v =~ /^value_([A-Z0-9]+)(\d+)$/) {
$hmap{$1}->[$2-1] = $text{$v};
}
}

View File

@@ -522,9 +522,9 @@ value_dmarcfo0=Rapporteer as DKIM en SPF misluk het
value_dmarcfo1=Rapporteer as DKIM of SPF misluk het
value_dmarcfod=Rapporteer as handtekeningevaluering misluk het
value_dmarcfos=Rapporteer as SPF-evaluering misluk het
value_CAA0=Vereis afdwinging?
value_CAA1=Vereis afdwinging?
value_CAA2=Magtigingstipe
value_CAA3=CA domeinnaam
value_caa_issue=Enkele domein sertifikaat
value_caa_issuewild=Wildcard cert
value_caa_iodef=URL vir beleidskending

View File

@@ -522,9 +522,9 @@ value_dmarcfo0=أبلغ في حالة فشل DKIM و SPF
value_dmarcfo1=أبلغ في حالة فشل DKIM أو SPF
value_dmarcfod=أبلغ في حالة فشل تقييم التوقيع
value_dmarcfos=أبلغ في حالة فشل تقييم نظام التعرف على هوية المرسل (SPF)
value_CAA0=هل تتطلب التنفيذ؟
value_CAA1=تتطلب التنفيذ؟
value_CAA1=هل تتطلب التنفيذ؟
value_CAA2=نوع التفويض
value_CAA3=اسم المجال CA
value_caa_issue=سيرت مجال واحد
value_caa_issuewild=شهادة البدل
value_caa_iodef=عنوان URL لانتهاك السياسة

View File

@@ -522,9 +522,9 @@ value_dmarcfo0=Паведаміць, калі DKIM і SPF не атрымала
value_dmarcfo1=Паведаміце, калі не атрымалася альбо DKIM, альбо SPF
value_dmarcfod=Паведаміць, калі ацэнка подпісаў не атрымалася
value_dmarcfos=Паведаміць, калі ацэнка SPF не атрымалася
value_CAA0=Патрабаваць выканання?
value_CAA1=Патрабуе выканання?
value_CAA2=Тып дазволу
value_CAA1=Патрабаваць выканання?
value_CAA2=Тып аўтарызацыі
value_CAA3=CA даменнае імя
value_caa_issue=Адзін дамен серт
value_caa_issuewild=Уайлдкард cert
value_caa_iodef=URL парушэння палітыкі

View File

@@ -16,9 +16,9 @@ value_dmarcfo0=Отчетете, ако DKIM и SPF не са успели
value_dmarcfo1=Отчетете, ако DKIM или SPF не са успели
value_dmarcfod=Отчетете, ако оценката на подпис не е успешна
value_dmarcfos=Отчетете, ако оценката на SPF не е успешна
value_CAA0=Изискване на изпълнение?
value_CAA1=Искате прилагане?
value_CAA2=Тип на разрешение
value_CAA1=Изискване на изпълнение?
value_CAA2=Тип разрешение
value_CAA3=CA име на домейн
value_caa_issue=Серт за един домейн
value_caa_issuewild=Уайлдкард сертификат
value_caa_iodef=URL адрес на нарушение на правилата

View File

@@ -21,9 +21,9 @@ value_dmarcfo0=Informeu si DKIM i SPF han fallat
value_dmarcfo1=Informeu si DKIM o SPF han fallat
value_dmarcfod=Informeu si lavaluació de la signatura ha fallat
value_dmarcfos=Informeu si lavaluació SPF ha fallat
value_CAA0=Requereix execució?
value_CAA1=Necessiteu fer complir el compliment?
value_CAA1=Requereix execució?
value_CAA2=Tipus d'autorització
value_CAA3=Nom de domini CA
value_caa_issue=Cert domini únic
value_caa_issuewild=Certificat de comodins
value_caa_iodef=URL de violació de la política

View File

@@ -129,9 +129,9 @@ value_dmarcfo0=Hlášení, pokud selhaly DKIM a SPF
value_dmarcfo1=Hlášení, pokud selhaly DKIM nebo SPF
value_dmarcfod=Nahlásit, pokud se vyhodnocení podpisu nezdařilo
value_dmarcfos=Hlášení, pokud se hodnocení SPF nezdařilo
value_CAA0=Vyžadovat vymáhání?
value_CAA1=Vyžadovat vymáhání?
value_CAA2=Typ oprávnění
value_CAA3=Název domény CA
value_caa_issue=Osvědčení o jedné doméně
value_caa_issuewild=Zástupný certifikát
value_caa_iodef=Adresa URL pro porušení zásad

View File

@@ -522,9 +522,9 @@ value_dmarcfo0=Rapporter, hvis DKIM og SPF mislykkedes
value_dmarcfo1=Rapporter, hvis enten DKIM eller SPF mislykkedes
value_dmarcfod=Rapporter, hvis signaturevaluering mislykkedes
value_dmarcfos=Rapporter, hvis SPF-evaluering mislykkedes
value_CAA0=Kræver håndhævelse?
value_CAA1=Kræver fuldbyrdelse?
value_CAA2=Godkendelsestype
value_CAA1=Kræver håndhævelse?
value_CAA2=Autorisationstype
value_CAA3=CA domænenavn
value_caa_issue=Enkelt domæne cert
value_caa_issuewild=Wildcard cert
value_caa_iodef=URL-adresse til overtrædelse af politik

View File

@@ -512,13 +512,9 @@ value_dmarcruf=Sende forensische Informationen an
value_dmarcsp=Regeln für Subdomains
value_dmarcnop=Gleiche wie diese Domain
value_dmarcaspf=Erfordert strikt SPF alignment
value_dmarcadkim=Require strict DKIM alignment
value_dmarcnor=Sende nicht
value_CAA1=Require enforcement?
value_CAA2=Authorization type
value_caa_issue=Single domain cert
value_caa_issuewild=Wildcard cert
value_caa_iodef=Policy violation URL
tlsa_usage0=Zertifizierungsstelle
tlsa_usage1=End entity
@@ -1158,7 +1154,6 @@ dt_zone_already=Die Zone scheint unterzeichnet wurden zu sein, aber benutzt nich
dt_zone_desc=Diese Zone hat noch nicht bisher DNSSEC aktiviert. Sie können dieses Formular nutzen, um Webmin mit DNSSEC-Tools automatisieren, so dass die Clients der Zone durch dieser Zone gegen DNS-Spoofing-Attacken geschützt sind.
dt_zone_header=Zone DNSSEC-Tools Optionen
dt_zone_dne=Authentifizierter Denial of Existence
dt_zone_enable=DNSSEC Automation
dt_zone_disable=Deaktiviere DNSSEC
dt_zone_disabledesc=Entfernt diese Zone aus der Liste der Zonen, die durch DNSSEC-Tools für die Zone-Signierung und Schlüsselaustausch verwaltet werden.
dt_zone_err=DNSSEC Operation fehlgeschlagen

View File

@@ -3,12 +3,17 @@ master_inview=$1 im Blick $2
delete_vwarn=Diese Zone ist der Virtualmin-Domäne $1 zugeordnet und sollte daher hier nicht gelöscht werden!
delete_vwarn2=Diese Zone ist mit den Virtualmin-Domänen $1 und $2 anderer verknüpft und sollte daher hier nicht gelöscht werden!
value_dmarcadkim=Erfordert eine strikte DKIM-Ausrichtung
value_dmarcfo=Fehlermeldemodus
value_dmarcfo0=Melden, wenn DKIM und SPF fehlgeschlagen sind
value_dmarcfo1=Melden, wenn entweder DKIM oder SPF fehlgeschlagen sind
value_dmarcfod=Melden, wenn die Signaturauswertung fehlgeschlagen ist
value_dmarcfos=Melden, wenn die SPF-Bewertung fehlgeschlagen ist
value_CAA0=Durchsetzung erforderlich?
value_CAA1=Durchsetzung erforderlich?
value_CAA2=Berechtigungstyp
value_CAA3=CA-Domänenname
value_caa_iodef=URL für Richtlinienverstoß
log_forward=Vorwärtszone $1 erstellt
log_delegation=Erstellen Sie eine Nur-Delegierungszone $1
@@ -18,3 +23,5 @@ log_dnssec=Ändern Sie die Neuunterzeichnung des DNSSEC-Schlüssels
massdelete_vwarn=Einige Zonen sind der Virtualmin-Domäne $1 zugeordnet und sollten daher hier nicht gelöscht werden!
massdelete_vwarn2=Einige Zonen sind der Virtualmin-Domäne $1 und $2 zugeordnet, andere sollten daher hier nicht gelöscht werden!
dt_zone_enable=DNSSEC-Automatisierung

View File

@@ -522,9 +522,9 @@ value_dmarcfo0=Αναφέρετε εάν το DKIM και το SPF απέτυχ
value_dmarcfo1=Αναφορά εάν απέτυχε είτε το DKIM είτε το SPF
value_dmarcfod=Αναφέρετε εάν η αξιολόγηση υπογραφής απέτυχε
value_dmarcfos=Αναφέρετε εάν η αξιολόγηση SPF απέτυχε
value_CAA0=Απαιτείται επιβολή;
value_CAA1=Απαιτείται η εφαρμογή;
value_CAA1=Απαιτείται επιβολή;
value_CAA2=Τύπος εξουσιοδότησης
value_CAA3=Όνομα τομέα CA
value_caa_issue=Έλεγχος ενός τομέα
value_caa_issuewild=Χαρακτηριστικά μπαλαντέρ
value_caa_iodef=Διεύθυνση URL παραβίασης πολιτικής

View File

@@ -522,9 +522,9 @@ value_dmarcfo0=Report if DKIM and SPF failed
value_dmarcfo1=Report if either DKIM or SPF failed
value_dmarcfod=Report if signature evaluation failed
value_dmarcfos=Report if SPF evaluation failed
value_CAA0=Require enforcement?
value_CAA1=Authorization type
value_CAA2=CA domain name
value_CAA1=Require enforcement?
value_CAA2=Authorization type
value_CAA3=CA domain name
value_caa_issue=Single domain cert
value_caa_issuewild=Wildcard cert
value_caa_iodef=Policy violation URL

View File

@@ -181,9 +181,9 @@ value_dmarcfo0=Informar si DKIM y SPF fallaron
value_dmarcfo1=Informar si fallaron DKIM o SPF
value_dmarcfod=Informar si la evaluación de la firma falló
value_dmarcfos=Informar si la evaluación del SPF falló
value_CAA0=¿Requerir cumplimiento?
value_CAA1=¿Requerir ejecución?
value_CAA1=¿Requerir cumplimiento?
value_CAA2=Tipo de autorización
value_CAA3=Nombre de dominio de CA
value_caa_issue=Certificado de dominio único
value_caa_issuewild=Cert comodín
value_caa_iodef=URL de infracción de política

View File

@@ -522,9 +522,9 @@ value_dmarcfo0=Jakinarazi DKIM eta SPFek huts egin dutela
value_dmarcfo1=Jakinarazi DKIMek edo SPFek huts egin badute
value_dmarcfod=Eman sinadurak ebaluatzeak huts egin badu
value_dmarcfos=Jakinarazi SPF ebaluazioak huts egin badu
value_CAA0=Betearazpena eskatu?
value_CAA1=Betearaztea eskatzen al duzu?
value_CAA1=Betearazpena eskatzen al duzu?
value_CAA2=Baimen mota
value_CAA3=CA domeinu-izena
value_caa_issue=Domeinu bakarreko ziurtagiria
value_caa_issuewild=Wildcard cert
value_caa_iodef=Politika urratzeko URLa

View File

@@ -162,9 +162,9 @@ value_dmarcfo0=در صورت خرابی DKIM و SPF گزارش دهید
value_dmarcfo1=در صورت خرابی DKIM یا SPF گزارش دهید
value_dmarcfod=اگر ارزیابی امضا ناموفق بود گزارش دهید
value_dmarcfos=در صورت عدم موفقیت در ارزیابی SPF ، گزارش دهید
value_CAA0=نیاز به اجرا دارد؟
value_CAA1=اجرای احتیاج دارید؟
value_CAA1=نیاز به اجرا دارد؟
value_CAA2=نوع مجوز
value_CAA3=نام دامنه CA
value_caa_issue=گواهینامه دامنه تک
value_caa_issuewild=گواهینامه Wildcard
value_caa_iodef=URL نقض خط مشی

View File

@@ -522,9 +522,9 @@ value_dmarcfo0=Ilmoita, jos DKIM ja SPF epäonnistuivat
value_dmarcfo1=Ilmoita, jos joko DKIM tai SPF epäonnistui
value_dmarcfod=Ilmoita, jos allekirjoituksen arviointi epäonnistui
value_dmarcfos=Ilmoita, jos SPF-arviointi epäonnistui
value_CAA0=Vaaditaanko täytäntöönpanoa?
value_CAA1=Vaaditaanko täytäntöönpanoa?
value_CAA2=Valtuutuksen tyyppi
value_CAA2=Valtuutustyyppi
value_CAA3=CA-verkkotunnuksen nimi
value_caa_issue=Yhden verkkotunnuksen sertifikaatti
value_caa_issuewild=Jokerimerkki
value_caa_iodef=Käytäntöloukkauksen URL-osoite

View File

@@ -517,8 +517,6 @@ value_dmarcnop=Identique à ce domaine
value_dmarcaspf=Exiger un alignement SPF strict
value_dmarcadkim=Exiger un alignement DKIM strict
value_dmarcnor=N'envoyez pas
value_CAA1=Exiger l'application?
value_CAA2=Type d'autorisation
value_caa_issue=CERT de domaine unique
value_caa_issuewild=Certificat générique
value_caa_iodef=URL de violation des règles

View File

@@ -3,4 +3,6 @@ value_dmarcfo0=Signaler si DKIM et SPF ont échoué
value_dmarcfo1=Signaler si DKIM ou SPF a échoué
value_dmarcfod=Signaler si l'évaluation de la signature a échoué
value_dmarcfos=Signaler si l'évaluation SPF a échoué
value_CAA0=Exiger l'exécution?
value_CAA1=Exiger l'exécution?
value_CAA2=Type d'autorisation
value_CAA3=nom de domaine CA

View File

@@ -522,9 +522,9 @@ value_dmarcfo0=דווח אם DKIM ו- SPF נכשלו
value_dmarcfo1=דווח אם DKIM או SPF נכשלו
value_dmarcfod=דווח אם הערכת החתימה נכשלה
value_dmarcfos=דווח אם הערכת SPF נכשלה
value_CAA0=לדרוש אכיפה?
value_CAA1=דורשים אכיפה?
value_CAA1=לדרוש אכיפה?
value_CAA2=סוג הרשאה
value_CAA3=שם דומיין CA
value_caa_issue=אישור תחום בודד
value_caa_issuewild=אישור Wildcard
value_caa_iodef=כתובת אתר להפרת מדיניות

View File

@@ -522,9 +522,9 @@ value_dmarcfo0=Prijavite ako DKIM i SPF nisu uspjeli
value_dmarcfo1=Prijavite ako DKIM ili SPF nisu uspjeli
value_dmarcfod=Prijavite ako procjena potpisa nije uspjela
value_dmarcfos=Prijavite ako SPF procjena nije uspjela
value_CAA0=Zahtijevati ovrhu?
value_CAA1=Zahtijevate izvršenje?
value_CAA1=Zahtijevati ovrhu?
value_CAA2=Vrsta autorizacije
value_CAA3=Naziv CA domene
value_caa_issue=Cert jednog domena
value_caa_issuewild=Wildcard cert
value_caa_iodef=URL za kršenje pravila

View File

@@ -86,9 +86,9 @@ value_dmarcfo0=Jelentés, ha a DKIM és az SPF nem sikerült
value_dmarcfo1=Jelentse, ha a DKIM vagy az SPF nem sikerült
value_dmarcfod=Jelentés, ha az aláírás kiértékelése sikertelen volt
value_dmarcfos=Jelentés, ha az SPF értékelése nem sikerült
value_CAA0=Végrehajtást igényel?
value_CAA1=Végrehajtást igényel?
value_CAA2=Engedély típusa
value_CAA3=CA domain név
value_caa_issue=Egy domain tanúsítvány
value_caa_issuewild=Helyettesítő karakter
value_caa_iodef=Az irányelv megsértésének URL-je

View File

@@ -209,9 +209,9 @@ value_dmarcfo0=Segnala se DKIM e SPF non sono riusciti
value_dmarcfo1=Segnala se DKIM o SPF non sono riusciti
value_dmarcfod=Segnala se la valutazione della firma non è riuscita
value_dmarcfos=Segnala se la valutazione SPF non è riuscita
value_CAA0=Richiedere l'applicazione?
value_CAA1=Richiede l'applicazione?
value_CAA1=Richiedere l'applicazione?
value_CAA2=Tipo di autorizzazione
value_CAA3=Nome di dominio della CA
value_caa_issue=Cert dominio singolo
value_caa_issuewild=Cert jolly
value_caa_iodef=URL di violazione delle norme

View File

@@ -104,9 +104,9 @@ value_dmarcfo0=DKIMとSPFが失敗したかどうかを報告する
value_dmarcfo1=DKIM または SPF のいずれかが失敗した場合に報告する
value_dmarcfod=署名の評価が失敗した場合に報告する
value_dmarcfos=SPF 評価に失敗した場合のレポート
value_CAA0=施行が必要ですか?
value_CAA1=施行が必要ですか?
value_CAA2=認証タイプ
value_CAA1=強制が必要ですか?
value_CAA2=承認タイプ
value_CAA3=CAドメイン名
value_caa_issue=単一ドメイン証明書
value_caa_issuewild=ワイルドカード証明書
value_caa_iodef=ポリシー違反URL

View File

@@ -278,9 +278,9 @@ value_dmarcfo0=DKIM 및 SPF 실패 여부보고
value_dmarcfo1=DKIM 또는 SPF가 실패한 경우보고
value_dmarcfod=서명 평가 실패시보고
value_dmarcfos=SPF 평가 실패시보고
value_CAA0=시행이 필요하십니까?
value_CAA1=집행이 필요합니까?
value_CAA2=인증 유형
value_CAA1=시행이 필요하십니까?
value_CAA2=승인 유형
value_CAA3=CA 도메인 이름
value_caa_issue=단일 도메인 인증서
value_caa_issuewild=와일드 카드 인증서
value_caa_iodef=정책 위반 URL

View File

@@ -522,9 +522,9 @@ value_dmarcfo0=Pranešti, jei nepavyko DKIM ir SPF
value_dmarcfo1=Pranešti, jei nepavyko DKIM arba SPF
value_dmarcfod=Pranešti, jei nepavyko įvertinti parašo
value_dmarcfos=Pranešti, jei nepavyko įvertinti SPF
value_CAA0=Reikalauti vykdymo?
value_CAA1=Reikalauti vykdymo?
value_CAA2=Autorizacijos tipas
value_CAA3=CA domeno vardas
value_caa_issue=Vieno domeno sertifikatas
value_caa_issuewild=Pakaitos sertifikatas
value_caa_iodef=Politikos pažeidimo URL

View File

@@ -522,9 +522,9 @@ value_dmarcfo0=Ziņot, ja neizdevās DKIM un SPF
value_dmarcfo1=Ziņot, ja neizdevās vai nu DKIM, vai SPF
value_dmarcfod=Ziņot, ja paraksta novērtēšana neizdevās
value_dmarcfos=Ziņot, ja SPF novērtēšana neizdevās
value_CAA0=Vai pieprasīt izpildi?
value_CAA1=Vai pieprasīt izpildi?
value_CAA2=Autorizācijas tips
value_CAA2=Autorizācijas veids
value_CAA3=CA domēna vārds
value_caa_issue=Viena domēna sertifikāts
value_caa_issuewild=Aizstājējzīmi sert
value_caa_iodef=Politikas pārkāpuma URL

View File

@@ -522,9 +522,9 @@ value_dmarcfo0=Laporkan jika DKIM dan SPF gagal
value_dmarcfo1=Laporkan sama ada DKIM atau SPF gagal
value_dmarcfod=Laporkan jika penilaian tandatangan gagal
value_dmarcfos=Laporkan jika penilaian SPF gagal
value_CAA0=Perlukan penguatkuasaan?
value_CAA1=Memerlukan penguatkuasaan?
value_CAA1=Perlukan penguatkuasaan?
value_CAA2=Jenis kebenaran
value_CAA3=nama domain CA
value_caa_issue=Perakuan domain tunggal
value_caa_issuewild=Pensijilan Wildcard
value_caa_iodef=URL pelanggaran dasar

View File

@@ -522,9 +522,9 @@ value_dmarcfo0=Irrapporta jekk DKIM u SPF fallewx
value_dmarcfo1=Irrapporta jekk jew DKIM jew SPF fallewx
value_dmarcfod=Irrapporta jekk l-evalwazzjoni tal-firma falliet
value_dmarcfos=Irrapporta jekk l-evalwazzjoni SPF falliet
value_CAA0=Teħtieġ infurzar?
value_CAA1=Teħtieġ infurzar?
value_CAA2=Tip ta 'awtorizzazzjoni
value_CAA2=Tip ta' awtorizzazzjoni
value_CAA3=Isem tad-dominju CA
value_caa_issue=Ċert ta 'dominju uniku
value_caa_issuewild=Ċert tal-wildcard
value_caa_iodef=URL tal-ksur tal-politika

View File

@@ -83,9 +83,9 @@ value_dmarcfo0=Rapporteren als DKIM en SPF zijn mislukt
value_dmarcfo1=Rapporteren als DKIM of SPF is mislukt
value_dmarcfod=Rapporteren als evaluatie van handtekening is mislukt
value_dmarcfos=Rapporteren als SPF-evaluatie is mislukt
value_CAA0=Handhaving nodig?
value_CAA1=Handhaving vereisen?
value_CAA2=Autorisatie type
value_CAA1=Handhaving nodig?
value_CAA2=Autorisatietype:
value_CAA3=CA-domeinnaam
value_caa_issue=Enkel domein cert
value_caa_issuewild=Wildcard cert
value_caa_iodef=URL van beleidsschending

View File

@@ -517,8 +517,6 @@ value_dmarcnop=Samme som dette domenet
value_dmarcaspf=Krev streng SPF justering
value_dmarcadkim=Krev streng DKIM justering
value_dmarcnor=Ikke send
value_CAA1=Krev håndhevelse?
value_CAA2=Autorisasjonstype
value_caa_issue=Enkelt-domene sert
value_caa_issuewild=Wildcard sert
value_caa_iodef=URL ved brudd på retningslinjer

View File

@@ -3,4 +3,6 @@ value_dmarcfo0=Rapporter om DKIM og SPF mislyktes
value_dmarcfo1=Rapporter om enten DKIM eller SPF mislyktes
value_dmarcfod=Rapporter om signaturevaluering mislyktes
value_dmarcfos=Rapporter om SPF-evaluering mislyktes
value_CAA0=Krever håndheving?
value_CAA1=Krever håndheving?
value_CAA2=Autorisasjonstype
value_CAA3=CA-domenenavn

View File

@@ -43,9 +43,9 @@ value_dmarcfo0=Zgłoś, jeśli DKIM i SPF zawiodły
value_dmarcfo1=Zgłoś, jeśli DKIM lub SPF zawiodły
value_dmarcfod=Zgłoś, jeśli ocena podpisu nie powiodła się
value_dmarcfos=Zgłoś, jeśli ocena SPF nie powiodła się
value_CAA0=Wymagać egzekwowania?
value_CAA1=Wymagać wykonania?
value_CAA2=Rodzaj autoryzacji
value_CAA1=Wymagać egzekwowania?
value_CAA2=Typ autoryzacji
value_CAA3=Nazwa domeny CA
value_caa_issue=Certyfikat jednej domeny
value_caa_issuewild=Wildcard cert
value_caa_iodef=URL naruszenia zasad

View File

@@ -317,9 +317,9 @@ value_dmarcfo0=Informar se DKIM e SPF falharam
value_dmarcfo1=Informar se DKIM ou SPF falhou
value_dmarcfod=Reportar se a avaliação da assinatura falhar
value_dmarcfos=Reportar se a avaliação SPF falhar
value_CAA0=Requer aplicação?
value_CAA1=Exigir execução?
value_CAA1=Requer aplicação?
value_CAA2=Tipo de autorização
value_CAA3=Nome de domínio CA
value_caa_issue=Certificação de domínio único
value_caa_issuewild=Certificado curinga
value_caa_iodef=URL de violação da política

View File

@@ -94,9 +94,9 @@ value_dmarcfo0=Informar se DKIM e SPF falharam
value_dmarcfo1=Informar se DKIM ou SPF falhou
value_dmarcfod=Reportar se a avaliação da assinatura falhar
value_dmarcfos=Reportar se a avaliação SPF falhar
value_CAA0=Requer aplicação?
value_CAA1=Exigir execução?
value_CAA1=Requer aplicação?
value_CAA2=Tipo de autorização
value_CAA3=Nome de domínio CA
value_caa_issue=Certificação de domínio único
value_caa_issuewild=Certificado curinga
value_caa_iodef=URL de violação da política

View File

@@ -522,9 +522,9 @@ value_dmarcfo0=Raportați dacă DKIM și SPF au eșuat
value_dmarcfo1=Raportați dacă DKIM sau SPF au eșuat
value_dmarcfod=Raportați dacă evaluarea semnăturii a eșuat
value_dmarcfos=Raportați dacă evaluarea SPF a eșuat
value_CAA0=Necesită executare?
value_CAA1=Necesită executare?
value_CAA2=Tipul de autorizare
value_CAA2=Tip de autorizare
value_CAA3=Nume de domeniu CA
value_caa_issue=Cert domeniu unic
value_caa_issuewild=Wildcard cert
value_caa_iodef=URL de încălcare a politicii

View File

@@ -226,9 +226,9 @@ value_dmarcfo0=Сообщать, если DKIM и SPF не прошли
value_dmarcfo1=Сообщите, если DKIM или SPF не удалось
value_dmarcfod=Сообщить, если оценка подписи не удалась
value_dmarcfos=Сообщить, если оценка SPF не удалась
value_CAA0=Требовать принудительного исполнения?
value_CAA1=Требовать исполнения?
value_CAA1=Требовать принудительного исполнения?
value_CAA2=Тип авторизации
value_CAA3=Доменное имя CA
value_caa_issue=Однодоменный сертификат
value_caa_issuewild=Подстановочный знак
value_caa_iodef=URL нарушения политики

View File

@@ -522,9 +522,9 @@ value_dmarcfo0=Hláste, ak zlyhali DKIM a SPF
value_dmarcfo1=Hláste, ak zlyhali DKIM alebo SPF
value_dmarcfod=Hlásiť, ak vyhodnotenie podpisu zlyhalo
value_dmarcfos=Hlásenie, ak zlyhalo vyhodnotenie SPF
value_CAA0=Vyžadovať presadzovanie?
value_CAA1=Vyžadovať vymáhanie?
value_CAA1=Vyžadovať presadzovanie?
value_CAA2=Typ oprávnenia
value_CAA3=Názov domény CA
value_caa_issue=Certifikát s jednou doménou
value_caa_issuewild=Zástupný znak cert
value_caa_iodef=Adresa URL na porušenie pravidiel

View File

@@ -522,9 +522,9 @@ value_dmarcfo0=Prijavite, če DKIM in SPF ne uspeta
value_dmarcfo1=Prijavite, če ni uspel DKIM ali SPF
value_dmarcfod=Prijavite, če ocena podpisa ni uspela
value_dmarcfos=Prijavite, če ocena SPF ni uspela
value_CAA0=Zahtevati izvršbo?
value_CAA1=Zahtevate izvršbo?
value_CAA2=Vrsta dovoljenja
value_CAA1=Zahtevati izvršbo?
value_CAA2=Vrsta avtorizacije
value_CAA3=Ime domene CA
value_caa_issue=Cert enojne domene
value_caa_issuewild=Wildcard cert
value_caa_iodef=URL za kršitev pravilnika

View File

@@ -132,9 +132,9 @@ value_dmarcfo0=Rapportera om DKIM och SPF misslyckades
value_dmarcfo1=Rapportera om antingen DKIM eller SPF misslyckades
value_dmarcfod=Rapportera om signaturutvärderingen misslyckades
value_dmarcfos=Rapportera om SPF-utvärderingen misslyckades
value_CAA0=Krävs verkställighet?
value_CAA1=Kräver verkställighet?
value_CAA2=Tillståndstyp
value_CAA1=Krävs verkställighet?
value_CAA2=Behörighetstyp
value_CAA3=CA-domännamn
value_caa_issue=Certifikat för en enda domän
value_caa_issuewild=Wildcard cert
value_caa_iodef=URL-adress för policyöverträdelse

View File

@@ -522,9 +522,9 @@ value_dmarcfo0=รายงานว่า DKIM และ SPF ล้มเหล
value_dmarcfo1=รายงานว่า DKIM หรือ SPF ล้มเหลวหรือไม่
value_dmarcfod=รายงานว่าการประเมินลายเซ็นล้มเหลว
value_dmarcfos=รายงานว่าการประเมิน SPF ล้มเหลว
value_CAA0=ต้องบังคับใช้?
value_CAA1=ต้องการการบังคับใช้หรือไม่
value_CAA2=ประเภทการอนุญาต
value_CAA1=ต้องบังคับใช้?
value_CAA2=ประเภทการให้สิทธิ์
value_CAA3=ชื่อโดเมน CA
value_caa_issue=ใบรับรองโดเมนเดียว
value_caa_issuewild=ไวลด์การ์ดใบรับรอง
value_caa_iodef=URL การละเมิดนโยบาย

View File

@@ -134,9 +134,9 @@ value_dmarcfo0=DKIM ve SPF'nin başarısız olup olmadığını bildir
value_dmarcfo1=DKIM veya SPF başarısız olursa rapor edin
value_dmarcfod=İmza değerlendirmesi başarısız olursa bildir
value_dmarcfos=SPF değerlendirmesi başarısız olursa bildir
value_CAA0=Uygulama gerektiriyor mu?
value_CAA1=Uygulama mı gerekiyor?
value_CAA2=Yetkilendirme türü
value_CAA1=Uygulama gerektiriyor mu?
value_CAA2=yetkilendirme türü
value_CAA3=CA alan adı
value_caa_issue=Tek alan adı sertifikası
value_caa_issuewild=Joker karakter sertifikası
value_caa_iodef=Politika ihlali URL'si

View File

@@ -226,9 +226,9 @@ value_dmarcfo0=Повідомте про помилки DKIM та SPF
value_dmarcfo1=Повідомте про помилки DKIM або SPF
value_dmarcfod=Повідомте, якщо оцінка підпису не вдалася
value_dmarcfos=Повідомте, якщо оцінка SPF не вдалася
value_CAA0=Вимагати виконання?
value_CAA1=Вимагаєте примусового виконання?
value_CAA1=Вимагати виконання?
value_CAA2=Тип авторизації
value_CAA3=Доменне ім'я ЦС
value_caa_issue=Однодоменний сертифікат
value_caa_issuewild=Уайлдкард серт
value_caa_iodef=URL-адреса порушення політики

View File

@@ -522,9 +522,9 @@ value_dmarcfo0=اگر ڈی کے آئی ایم اور ایس پی ایف ناکا
value_dmarcfo1=اگر DKIM یا SPF ناکام ہوا تو اطلاع دیں
value_dmarcfod=اگر دستخط کی تشخیص ناکام ہوگئی تو رپورٹ کریں
value_dmarcfos=اگر SPF تشخیص ناکام ہو گیا تو رپورٹ کریں
value_CAA0=نفاذ کی ضرورت ہے؟
value_CAA1=نفاذ کی ضرورت ہے؟
value_CAA2=اجازت کی قسم
value_CAA3=CA ڈومین کا نام
value_caa_issue=ایک ڈومین سند
value_caa_issuewild=وائلڈ کارڈ سند
value_caa_iodef=پالیسی کی خلاف ورزی کا URL

View File

@@ -522,9 +522,9 @@ value_dmarcfo0=Báo cáo nếu DKIM và SPF không thành công
value_dmarcfo1=Báo cáo nếu DKIM hoặc SPF không thành công
value_dmarcfod=Báo cáo nếu đánh giá chữ ký không thành công
value_dmarcfos=Báo cáo nếu đánh giá SPF không thành công
value_CAA0=Yêu cầu thực thi?
value_CAA1=Yêu cầu thực thi?
value_CAA2=Loại ủy quyền
value_CAA3=Tên miền CA
value_caa_issue=Chứng chỉ miền đơn
value_caa_issuewild=Chứng nhận ký tự đại diện
value_caa_iodef=URL vi phạm chính sách

View File

@@ -210,9 +210,9 @@ value_dmarcfo0=报告 DKIM 和 SPF 是否失败
value_dmarcfo1=报告 DKIM 或 SPF 是否失败
value_dmarcfod=签名评估失败时报告
value_dmarcfos=报告 SPF 评估是否失败
value_CAA0=需要执法吗?
value_CAA1=需要执法?
value_CAA1=需要执法吗?
value_CAA2=授权类型
value_CAA3=CA域名
value_caa_issue=单域证书
value_caa_issuewild=通配符证书
value_caa_iodef=违反政策的网址

View File

@@ -327,9 +327,9 @@ value_dmarcfo0=報告 DKIM 和 SPF 是否失敗
value_dmarcfo1=報告 DKIM 或 SPF 是否失敗
value_dmarcfod=簽名評估失敗時報告
value_dmarcfos=報告 SPF 評估是否失敗
value_CAA0=需要執法嗎?
value_CAA1=需要執法?
value_CAA1=需要執法嗎?
value_CAA2=授權類型
value_CAA3=CA域名
value_caa_issue=單域證書
value_caa_issuewild=通配符證書
value_caa_iodef=違反政策的網址

View File

@@ -21,10 +21,17 @@ if ($access{'rpc'} == 0 || $access{'rpc'} == 2 &&
exit;
}
# Find a free port
# Will IPv6 work?
&get_miniserv_config(\%miniserv);
$use_ipv6 = 0;
if ($miniserv{'ipv6'}) {
eval "use Socket6";
$use_ipv6 = 1 if (!$@);
}
# Find a free port
$port = $miniserv{'port'} || 10000;
$aerr = &allocate_socket(MAIN, \$port);
$aerr = &allocate_socket(MAIN, $use_ipv6 ? MAIN6 : undef, \$port);
if ($aerr) {
print "0 $aerr\n";
exit;
@@ -55,13 +62,24 @@ untie(*STDOUT);
# Accept the TCP connection
local $rmask;
vec($rmask, fileno(MAIN), 1) = 1;
if ($use_ipv6) {
vec($rmask, fileno(MAIN6), 1) = 1;
}
$sel = select($rmask, undef, undef, 60);
if ($sel <= 0) {
print STDERR "fastrpc: accept timed out\n"
if ($gconfig{'rpcdebug'});
exit;
}
$acptaddr = accept(SOCK, MAIN);
if (vec($rmask, fileno(MAIN), 1)) {
$acptaddr = accept(SOCK, MAIN);
}
elsif ($use_ipv6 && vec($rmask, fileno(MAIN6), 1)) {
$acptaddr = accept(SOCK, MAIN6);
}
else {
die "No connection on any socket!";
}
die "accept failed : $!" if (!$acptaddr);
$oldsel = select(SOCK);
$| = 1;
@@ -308,20 +326,36 @@ while(1) {
$rcount++;
}
# allocate_socket(handle, &port)
# allocate_socket(handle, ipv6-handle, &port)
sub allocate_socket
{
local ($fh, $port) = @_;
local ($fh, $fh6, $port) = @_;
local $proto = getprotobyname('tcp');
if (!socket($fh, PF_INET, SOCK_STREAM, $proto)) {
return "socket failed : $!";
}
setsockopt($fh, SOL_SOCKET, SO_REUSEADDR, pack("l", 1));
if ($fh6) {
if (!socket($fh6, PF_INET6(), SOCK_STREAM, $proto)) {
return "socket6 failed : $!";
}
setsockopt($fh6, SOL_SOCKET, SO_REUSEADDR, pack("l", 1));
setsockopt($fh6, 41, 26, pack("l", 1)); # IPv6 only
}
while(1) {
$$port++;
last if (bind($fh, sockaddr_in($$port, INADDR_ANY)));
$pack = pack_sockaddr_in($$port, INADDR_ANY);
next if (!bind($fh, $pack));
if ($fh6) {
$pack6 = pack_sockaddr_in6($$port, in6addr_any());
next if (!bind($fh6, $pack6));
}
last;
}
listen($fh, SOMAXCONN) || return "listen failed : $!";
if ($fh6) {
listen($fh6, SOMAXCONN) || return "listen6 failed : $!";
}
listen($fh, SOMAXCONN) || return "listed failed : $!";
return undef;
}

4
link/config.info.ja Normal file
View File

@@ -0,0 +1,4 @@
link=リンク先の URL,0
desc=URL のリンクテキスト,3,自動
immediate=モジュールの画面を経由せずに直接 URL を開く,1,1-Yes,0-No
window=モジュール画面から開く際は新しいウインドウで開く,1,1-Yes,0-No

View File

@@ -1 +1,6 @@
index_title=<EFBFBD>J<EFBFBD>X<EFBFBD>^<5E><> <20><><EFBFBD><EFBFBD><EFBFBD>N
index_title=カスタムリンク
index_econfig=リンク先の URL が登録されていません。<a href='$1'>URL を登録する</a>
index_evirtualmin=URL には Virtualmin 固有の変数が含まれていますが、現在のユーザに対応するサーバが見つかりませんでした。
acl_link=リダイレクト URL
acl_elink=リダイレクト先が不明な URL

View File

@@ -0,0 +1,2 @@
name=リンク
desc=カスタムリンク

View File

@@ -1,2 +0,0 @@
desc_ja=カスタムリンク
name_ja=リンク

View File

@@ -496,125 +496,137 @@ sub get_current_cpu_data
my @cpu;
my @fans;
if (&has_command("sensors")) {
my ($cpu, $cpu_package, $cpu_broadcom, $cpu_amd);
my $fh = "SENSORS";
my ($cpu, $cpu_aux, $cpu_package, $cpu_broadcom, $cpu_amd);
my $fh = "SENSORS";
# Examples https://gist.github.com/547451c9ca376b2d18f9bb8d3748276c
&open_execute_command($fh, "sensors </dev/null 2>/dev/null", 1);
while (<$fh>) {
# Examples https://gist.github.com/547451c9ca376b2d18f9bb8d3748276c
&open_execute_command($fh, "sensors </dev/null 2>/dev/null", 1);
# CPU full output must have either voltage or fan data
my ($cpu_volt) = $_ =~ /in[\d+]:\s+([\+\-0-9\.]+)\s+V/i;
my ($cpu_fan_num, $cpu_fan_rpm) = $_ =~ /(?|fan([\d+]):\s+([0-9]+)\s+rpm|cpu(\s)fan:\s+([0-9]+)\s+rpm)/i;
$cpu++ if ($cpu_volt || $cpu_fan_num);
while (<$fh>) {
# CPU package
($cpu_package) = $_ =~ /(package\s+id\s+[\d]+)/i
if (!$cpu_package);
# CPU full output must have either voltage or fan data
my ($cpu_volt) = $_ =~ /(?|in[\d+]\s*:\s+([\+\-0-9\.]+)\s+V|cpu\s+core\s+voltage\s*:\s+([0-9\.]+)\s+V)/i;
my ($cpu_fan_num, $cpu_fan_rpm) = $_ =~ /(?|fan([\d+])\s*:\s+([0-9]+)\s+rpm|cpu(\s)fan\s*:\s+([0-9]+)\s+rpm|cpu\s+fan\s*:\s+([0-9]+)\s+rpm)/i;
$cpu++ if ($cpu_volt || $cpu_fan_num);
# Standard outputs
if ($cpu_package) {
# CPU package
($cpu_package) = $_ =~ /(package\s+id\s+[\d]+)/i
if (!$cpu_package);
# Common CPU multi
if (/Core\s+(\d+):\s+([\+\-][0-9\.]+)/) {
push(@cpu,
{ 'core' => $1,
'temp' => int($2)
});
}
# Standard outputs
if ($cpu_package) {
# Common CPU single
elsif (/CPU:\s+([\+\-][0-9\.]+)/) {
push(@cpu,
{ 'core' => 0,
'temp' => int($1)
});
}
}
# Common CPU multi
if (/Core\s+(\d+):\s+([\+\-][0-9\.]+)/) {
# Non-standard outputs
else {
# Prioritise package core temperature
# data over motherboard but keep fans
@cpu = (), $cpu_aux++
if ($cpu_aux & 1 && grep { $_->{'core'} eq $1 } @cpu);
push(@cpu,
{ 'core' => $1,
'temp' => int($2)
});
}
# CPU types
($cpu_broadcom) = $_ =~ /cpu_thermal-virtual-[\d]+/i if (!$cpu_broadcom);
($cpu_amd) = $_ =~ /\w[\d]{2}temp-pci/i if (!$cpu_amd);
# Common CPU single
elsif (/CPU:\s+([\+\-][0-9\.]+)/) {
push(@cpu,
{ 'core' => 0,
'temp' => int($1)
});
}
}
# First just store fan data for any device if any
push(@fans,
{ 'fan' => &trim($cpu_fan_num),
'rpm' => $cpu_fan_rpm
}
) if ($cpu_fan_num);
# Non-standard outputs
else {
# Full CPU output #1253
if ($cpu) {
# Auxiliary CPU temperature and fans were already captured
next if ($cpu_aux);
# Standard output
if (/temp(\d+):\s+([\+][0-9\.]+).*?[Cc]\s+.*?[=+].*?\)/) {
push(@cpu,
{ 'core' => (int($1) - 1),
'temp' => int($2)
});
}
# CPU types
($cpu_broadcom) = $_ =~ /cpu_thermal-virtual-[\d]+/i if (!$cpu_broadcom);
($cpu_amd) = $_ =~ /\w[\d]{2}temp-pci/i if (!$cpu_amd);
# Approx from motherboard sensor as last resort
elsif (/(cputin|cpu\stemp):\s+([\+][0-9\.]+).*?[Cc]\s+.*?[=+].*?\)/i) {
push(@cpu,
{ 'core' => 0,
'temp' => int($2)
});
}
}
# First just store fan data for any device if any
push(@fans,
{ 'fan' => &trim($cpu_fan_num),
'rpm' => $cpu_fan_rpm
}
) if ($cpu_fan_num);
# Broadcom
elsif ($cpu_broadcom) {
if (/temp(\d+):\s+([\+\-][0-9\.]+)/) {
push(@cpu,
{ 'core' => $1,
'temp' => int($2)
});
}
}
# Full CPU output #1253
if ($cpu) {
# AMD
elsif ($cpu_amd) {
# Standard output
if (/temp(\d+):\s+([\+][0-9\.]+).*?[Cc]\s+.*?[=+].*?\)/) {
push(@cpu,
{ 'core' => (int($1) - 1),
'temp' => int($2)
});
}
# Like in sourceforge.net/p/webadmin/discussion/600155/thread/a9d8fe19c0
if (/Tdie:\s+([\+\-][0-9\.]+)/) {
push(@cpu,
{ 'core' => 0,
'temp' => int($1),
});
}
# Approx from motherboard sensor as last resort
elsif (/(cputin|cpu\s+temp)\s*:\s+([\+][0-9\.]+).*?[Cc]\s+.*?[=+].*?\)/i ||
/(cpu\s+temperature)\s*:\s+([\+][0-9\.]+).*?[Cc]/i) {
push(@cpu,
{ 'core' => 0,
'temp' => int($2)
});
}
}
# Like in #1481 #1484
elsif (/temp(\d+):\s+([\+\-][0-9\.]+).*?[Cc]\s+.*?[=+].*?\)/) {
push(@cpu,
{ 'core' => (int($1) - 1),
'temp' => int($2),
});
}
}
# Broadcom
elsif ($cpu_broadcom) {
if (/temp(\d+):\s+([\+\-][0-9\.]+)/) {
push(@cpu,
{ 'core' => $1,
'temp' => int($2)
});
}
}
# New line - new device, return data or reset and continue
if (/^\s*$/ && !$cpu_package) {
# AMD
elsif ($cpu_amd) {
# Do we have CPU data already, if so,
# add fan output if any and exit
last if (@cpu);
# Like in sourceforge.net/p/webadmin/discussion/600155/thread/a9d8fe19c0
if (/Tdie:\s+([\+\-][0-9\.]+)/) {
push(@cpu,
{ 'core' => 0,
'temp' => int($1),
});
}
# Reset cpu and fans and continue
@cpu = ();
@fans = ();
# Like in #1481 #1484
elsif (/temp(\d+):\s+([\+\-][0-9\.]+).*?[Cc]\s+.*?[=+].*?\)/) {
push(@cpu,
{ 'core' => (int($1) - 1),
'temp' => int($2),
});
}
}
$cpu = 0;
$cpu_broadcom = 0;
$cpu_amd = 0;
}
}
}
close($fh);
}
# New line represents another device
if (/^\s*$/) {
# Do we have CPU data already, if so add fans
# output, if any, and continue checking for
# priority package id core temperature data
$cpu_aux++ if (@cpu);
next if ($cpu_aux);
# Reset cpu and fans and continue
@cpu = ();
@fans = ();
$cpu = 0;
$cpu_broadcom = 0;
$cpu_amd = 0;
}
}
}
close($fh);
}
return (\@cpu, \@fans);
}

View File

@@ -72,7 +72,8 @@ if (!scalar(@get_sensors_cache)) {
while(<SENS>) {
if (/^([^:]+):\s+([0-9\.\+\-]+)\s*(\S+)\s+\(min\s+=\s+([0-9\.\+\-]+)\s*(\S+),\s+max\s+=\s+([0-9\.\+\-]+)/) {
# Value with min and max
push(@rv, { 'name' => $1,
push(@rv, {
'name' => $1,
'value' => $2,
'units' => $3,
'min' => $4,
@@ -81,7 +82,8 @@ if (!scalar(@get_sensors_cache)) {
}
elsif (/^([^:]+):\s+([0-9\.\+\-]+)\s*(\S+)\s+\(min\s+=\s+([0-9\.\+\-]+)\s*(\S+),\s+div\s+=\s+([0-9\.\+\-]+)/) {
# Value with min and div
push(@rv, { 'name' => $1,
push(@rv, {
'name' => $1,
'value' => $2,
'units' => $3,
'min' => $4,
@@ -90,15 +92,17 @@ if (!scalar(@get_sensors_cache)) {
}
elsif (/^([^:]+):\s+([0-9\.\+\-]+)\s*(\S+)\s+\(min\s+=\s+([0-9\.\+\-]+)\s*(\S+)/) {
# Value with min only
push(@rv, { 'name' => $1,
push(@rv, {
'name' => $1,
'value' => $2,
'units' => $3,
'min' => $4 });
$rv[$#rv]->{'alarm'} = 1 if (/ALARM/);
}
elsif (/^([^:]+):\s+([0-9\.\+\-]+)\s*(\S+)\s+\((limit|high)\s+=\s+([0-9\.\+\-]+)\s*(\S+)/) {
elsif (/^([^:]+):\s+([0-9\.\+\-]+)\s*(\S+)\s+\((limit|high|crit)\s+=\s+([0-9\.\+\-]+)\s*(\S+)/) {
# Value with max only
push(@rv, { 'name' => $1,
push(@rv, {
'name' => $1,
'value' => $2,
'units' => $3,
'max' => $5 });
@@ -106,13 +110,30 @@ if (!scalar(@get_sensors_cache)) {
}
elsif (/^([^:]+):\s+([0-9\.\+\-]+)\s*(\S+)\s+\(low\s+=\s+([0-9\.\+\-]+)\s*(\S+)\s*,\s+high\s+=\s+([0-9\.\+\-]+)/) {
# Value with low and high
push(@rv, { 'name' => $1,
push(@rv, {
'name' => $1,
'value' => $2,
'units' => $3,
'min' => $4,
'max' => $6 });
$rv[$#rv]->{'alarm'} = 1 if (/ALARM/);
}
elsif (/^([^:]+):\s+([0-9]+)\s*(rpm)/i) {
# Capture various fans
push(@rv, {
'name' => $1,
'value' => $2,
'units' => $3 });
$rv[$#rv]->{'alarm'} = 1 if (/ALARM/);
}
elsif (/^([^:]+):\s+([0-9\+\-]+).*?([°Cc]+)/i) {
# Temps without min/max/limit/crit
push(@rv, {
'name' => $1,
'value' => $2,
'units' => $3 });
$rv[$#rv]->{'alarm'} = 1 if (/ALARM/);
}
}
close(SENS);
@get_sensors_cache = @rv;

View File

@@ -23,8 +23,10 @@ if ($in{'delete'}) {
&error($text{'save_eservice'}) if ($in{'service_custom'} && $in{'service_custom'} !~ /^[\w\d\s\-\/\.,]+$/);
&error($text{'save_eservice'}) if ($in{'service_except_custom'} && $in{'service_except_custom'} !~ /^[\w\d\s\-\/\.,]+$/);
&error($text{'save_ehost'}) if ($in{'host_text_def'} == 0 && $in{'host_text'} !~ /^[\w\d\s\-\/\@\.,]+$/);
&error($text{'save_ehost'}) if ($in{'host_except'} && $in{'host_except'} !~ /^[\w\d\s\-\/\@\.,]+$/);
&error($text{'save_ehost'})
if ($in{'host_text_def'} == 0 && $in{'host_text'} !~ /^[\w\d\s\-\/\@\.,]+$/ && $in{'host_text'} !~ /^\[[:\da-f]+\]/i);
&error($text{'save_ehost'})
if ($in{'host_except'} && $in{'host_except'} !~ /^[\w\d\s\-\/\@\.,]+$/ && $in{'host_except'} !~ /^\[[:\da-f]+\]/i);
for (my $i = 0; $i <= $in{'cmd_count'}; $i++) {
&error($text{'save_ecmd'}) if ($in{'cmd_'.$i} && $in{'cmd_'.$i} !~ /^[\w\d\s\-\/\@\%\|\(\)\'\"\&\.,]+$/);

View File

@@ -38,11 +38,20 @@ sub list_rules {
} else {
my @cmtlines = split(/\n/, $cmt);
$cmt = undef;
$line =~ s/\\:/\0/g;
my ($service, $host, $cmd) = split /:/, $line, 3;
$host =~ s/\0/:/g;
# Fix further splitting on : to work with ipv6
my $ipv6;
my $ipv6_enc;
# Match ipv6 with or without range
if ($line =~ /(?|(\[[:\da-f]+\]\/\d+)|(\[[:\da-f]+\]))/i) {
$ipv6 = $1;
$ipv6_enc = &encode_base64($ipv6);
$line =~ s/\Q$ipv6\E/$ipv6_enc/;
}
my ($service, $host, $cmd) = split /:/, $line, 3;
$service =~ s/^\s*//; $service =~ s/\s*$//;
$host =~ s/^\s*//; $host =~ s/\s*$//;
$host =~ s/^\s*\Q$ipv6_enc\E/$ipv6/; $host =~ s/\s*$//;
push @ret, { 'id' => $id++,
'service' => $service,
@@ -100,9 +109,7 @@ sub create_rule {
my ($file, $rule) = @_;
my $lref = &read_file_lines($file);
my $host = $rule->{'host'};
$host =~ s/:/\\:/g;
my $newline = $rule->{'service'}.' : '.$host.($rule->{'cmd'} ? ' : '.$rule->{'cmd'} : '');
my $newline = $rule->{'service'}.' : '.$rule->{'host'}.($rule->{'cmd'} ? ' : '.$rule->{'cmd'} : '');
push(@$lref, $newline);
&flush_file_lines($file);
}
@@ -112,9 +119,7 @@ sub create_rule {
sub modify_rule {
my ($filename, $oldrule, $newrule) = @_;
my $host = $newrule->{'host'};
$host =~ s/:/\\:/g;
my @newline = ($newrule->{'service'}.' : '.$host.($newrule->{'cmd'} ? ' : '.$newrule->{'cmd'} : ''));
my @newline = ($newrule->{'service'}.' : '.$newrule->{'host'}.($newrule->{'cmd'} ? ' : '.$newrule->{'cmd'} : ''));
my $lref = &read_file_lines($filename);
my $len = $oldrule->{'eline'} - $oldrule->{'line'} + 1;

View File

@@ -21,7 +21,7 @@ print &ui_table_row($text{'referers_list'},
(!$ugconfig{'referers_none'} ?
&ui_checkbox("referers_none", 1,
$text{'referers_none'}."<br>".
$text{'referers_none2'},
&ui_text_color($text{'referers_none2'}, 'warn'),
!$ugconfig{'referers_none'}) : ""));
print &ui_table_end();

View File

@@ -1 +1 @@
1.982
1.983

View File

@@ -361,6 +361,7 @@ if ($gconfig{'os_type'} eq 'windows' || $tmp_dir =~ /^[a-z]:/i) {
else {
# On Unix systems, need to make sure temp dir is valid
my $tries = 0;
my $mkdirerr;
while($tries++ < 10) {
my @st = lstat($tmp_dir);
last if ($st[4] == $< && (-d _) && ($st[2] & 0777) == 0755);
@@ -368,13 +369,14 @@ else {
unlink($tmp_dir) || rmdir($tmp_dir) ||
system("/bin/rm -rf ".quotemeta($tmp_dir));
}
mkdir($tmp_dir, 0755) || next;
mkdir($tmp_dir, 0755) || (($mkdirerr = $!), next);
chown($<, $(, $tmp_dir);
chmod(0755, $tmp_dir);
}
if ($tries >= 10) {
my @st = lstat($tmp_dir);
&error("Failed to create temp directory $tmp_dir");
$mkdirerr = $mkdirerr ? " : $mkdirerr" : "";
&error("Failed to create temp directory $tmp_dir$mkdirerr");
}
# If running as root, check parent dir (usually /tmp) to make sure it's
# world-writable and owned by root
@@ -1633,6 +1635,7 @@ by the message setup using that function.
sub error
{
$main::no_miniserv_userdb = 1;
return if $main::ignore_errors;
my $msg = join("", @_);
$msg =~ s/<[^>]*>//g;
my $error_details = (($ENV{'WEBMIN_DEBUG'} || $gconfig{'debug_enabled'}) ? "" : "\n");
@@ -5246,37 +5249,43 @@ if ($ENV{'HTTP_X_REQUESTED_WITH'} ne "XMLHttpRequest" &&
$ENV{'REQUEST_URI'} !~ /pjax/ &&
$ENV{'REQUEST_URI'} !~ /link.cgi\/\d+/ &&
$ENV{'REQUEST_URI'} =~ /xnavigation=1/) {
# Store requested URI if safe
if ($main::session_id && $remote_user) {
my %var;
my $key = 'goto';
my $xnav = "xnavigation=1";
my $url = "@{[&get_webprefix()]}$ENV{'REQUEST_URI'}";
my $salt = substr(encode_base64($main::session_id), 0, 16);
$url =~ s/[?|&]$xnav//g;
$salt =~ tr/A-Za-z0-9//cd;
my $urlbase = &get_webprefix();
# Store request URI, if safe
if ($main::session_id && $remote_user && !$main::redirect_built++) {
my %var;
my $key = 'goto';
my $xnav = "xnavigation=1";
my $url = "$urlbase$ENV{'REQUEST_URI'}";
my $salt = substr(&encode_base64($main::session_id), 0, 6);
$url =~ s/[?|&]$xnav//g;
$salt =~ tr/A-Za-z0-9//cd;
if (!$trust) {
my @parent_dir = split('/', $url);
$url = &get_webprefix() ? $parent_dir[2] : $parent_dir[1];
if ($url =~ /.cgi/) {
$url = "/";
}
else {
$url = "/" . $url . "/";
}
}
# Append random string to stored file name, to process multiple, simultaneous requests
my $url_salt = int(rand() * 10000000);
$var{$key} = $url;
if (!$trust) {
my @parent_dir = split('/', $url);
$url = &get_webprefix() ? $parent_dir[2] : $parent_dir[1];
# Redirect to root in case of no module, i.e. /sysinfo.cgi
if ($url =~ /\.cgi/) {
$url = "/";
}
# Redirect to module's root, i.e. /apache/
else {
$url = "/" . $url . "/";
}
}
$var{$key} = $url;
# Store unique file name
my $url_to_filename = &encode_base64(($url . time()), 'noeol');
$url_to_filename =~ s/[^A-Za-z0-9\-_]//g;
$url_to_filename = substr($url_to_filename, -128)
if (length($url_to_filename) > 128);
# Write follow URL only once
if (!$main::redirect_built) {
write_file(tempname('.theme_' . $salt . '_' . $url_salt . '_' . get_product_name() . '_' . $key . '_' . $remote_user), \%var);
}
$main::redirect_built++
}
&redirect("/");
# Write URL for the theme to read and open
$main::ignore_errors = 1;
&write_file(&tempname('.theme_' . $salt . '_' . $url_to_filename . '_' . get_product_name() . '_' . $key . '_' . $remote_user), \%var);
$main::ignore_errors = 0;
}
&redirect("$urlbase/");
}
if (!$trust) {
# Looks like a link from elsewhere .. show an error
@@ -5499,7 +5508,7 @@ $rv =~ s/\$(\d+)/$1 < @_ ? $_[$1] : '$'.$1/ge;
return $rv;
}
=head2 encode_base64(string)
=head2 encode_base64(string, noeol)
Encodes a string into base64 format, for use in MIME email or HTTP
authorization headers.
@@ -5509,12 +5518,12 @@ sub encode_base64
{
eval "use MIME::Base64 ()";
if (!$@) {
return MIME::Base64::encode($_[0]);
return MIME::Base64::encode($_[0], $_[1] eq 'noeol' ? "" : undef);
}
my $res;
pos($_[0]) = 0; # ensure start at the beginning
while ($_[0] =~ /(.{1,57})/gs) {
$res .= substr(pack('u57', $1), 1)."\n";
$res .= substr(pack('u57', $1), 1).($_[1] eq 'noeol' ? "" : "\n");
chop($res);
}
$res =~ tr|\` -_|AA-Za-z0-9+/|;
@@ -7478,6 +7487,7 @@ if ($serv->{'fast'} || !$sn) {
}
delete($ENV{'FOREIGN_MODULE_NAME'});
delete($ENV{'FOREIGN_ROOT_DIRECTORY'});
delete($ENV{'FASTRPC_RUN_LOCAL'});
$ENV{'DISABLE_REFERERS_CHECK'} = 1;
chdir($root_directory);
if (!exec("$root_directory/fastrpc.cgi")) {

View File

@@ -20,7 +20,7 @@ print &ui_table_row($text{'referers_list'},
(!$gconfig{'referers_none'} ?
&ui_checkbox("referers_none", 1,
$text{'referers_none'}."<br>".
$text{'referers_none2'},
&ui_text_color($text{'referers_none2'}, 'warn'),
!$gconfig{'referers_none'}) : ""));
print &ui_table_end();