mirror of
https://github.com/webmin/webmin.git
synced 2026-02-06 07:22:20 +00:00
Compare commits
29 Commits
2.303
...
dev/fix-li
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
a67e327627 | ||
|
|
99889c1f30 | ||
|
|
42b8f2c25c | ||
|
|
6905548fa4 | ||
|
|
4ae5ec1694 | ||
|
|
f3a841d2b9 | ||
|
|
2aee714a81 | ||
|
|
16fec003dc | ||
|
|
fdbf960a2c | ||
|
|
e8b2b21bce | ||
|
|
1f07fdb274 | ||
|
|
7b85a75a2b | ||
|
|
2185f2068d | ||
|
|
e60be7133b | ||
|
|
4021b6d8bb | ||
|
|
5a777e9395 | ||
|
|
51e2ebec70 | ||
|
|
afe100d9f0 | ||
|
|
eca9472980 | ||
|
|
62c02d1273 | ||
|
|
d74e7e66c5 | ||
|
|
7250c44648 | ||
|
|
31c7e63407 | ||
|
|
264ecae147 | ||
|
|
6dd8915808 | ||
|
|
48602503cd | ||
|
|
13acaeece7 | ||
|
|
bb787e4e1c | ||
|
|
d4fab15024 |
1
.github/workflows/webmin.dev+webmin.yml
vendored
1
.github/workflows/webmin.dev+webmin.yml
vendored
@@ -7,7 +7,6 @@ on:
|
||||
release:
|
||||
types:
|
||||
- published
|
||||
- edited
|
||||
|
||||
jobs:
|
||||
build:
|
||||
|
||||
@@ -2508,6 +2508,11 @@ if ($changed || !$znc{'version'} ||
|
||||
# Yes .. need to rebuild
|
||||
%znc = ( );
|
||||
my $conf = &get_config();
|
||||
my $gau;
|
||||
my $opts = &find("options", $conf);
|
||||
if ($opts && &find("update", $opts->{'members'})) {
|
||||
$gau = 1;
|
||||
}
|
||||
my @views = &find("view", $conf);
|
||||
my $n = 0;
|
||||
foreach my $v (@views) {
|
||||
@@ -2535,7 +2540,7 @@ if ($changed || !$znc{'version'} ||
|
||||
$file ||= ""; # slaves and other types with no file
|
||||
my $up = &find("update-policy", $z->{'members'});
|
||||
my $au = &find("allow-update", $z->{'members'});
|
||||
my $dynamic = $up || $au ? 1 : 0;
|
||||
my $dynamic = $up || $au || $gau ? 1 : 0;
|
||||
$znc{"zone_".($n++)} = join("\t", $z->{'value'},
|
||||
$z->{'index'}, $type, "*", $dynamic, $file);
|
||||
$files{$z->{'file'}}++;
|
||||
|
||||
@@ -26,6 +26,10 @@ foreach my $z (@zones) {
|
||||
$v eq "." || !&can_edit_zone($z) ||
|
||||
&arpa_to_ip($v) !~ /\Q$in{'search'}\E/i);
|
||||
my $t = $z->{'type'};
|
||||
next if (!$t);
|
||||
$t = "delegation" if ($t eq "delegation-only");
|
||||
$t = "master" if ($t eq "primary");
|
||||
$t = "slave" if ($t eq "secondary");
|
||||
if ($z->{'view'}) {
|
||||
push(@zlinks, "edit_$t.cgi?zone=$z->{'name'}".
|
||||
"&view=$z->{'viewindex'}");
|
||||
|
||||
@@ -32,21 +32,27 @@ print &ui_table_row($text{'net_ssl_disable'},
|
||||
[ @opts,
|
||||
[ "", &getdef($sslopt, \@opts) ] ]));
|
||||
|
||||
@listens = &find("imap_listen", $conf, 2) ?
|
||||
my @listens = &find("imap_listen", $conf, 2) ?
|
||||
("imap_listen", "pop3_listen", "imaps_listen", "pop3s_listen") :
|
||||
("listen", "ssl_listen");
|
||||
("listen");
|
||||
my $mode;
|
||||
foreach $l (@listens) {
|
||||
$listen = &find_value($l, $conf);
|
||||
$mode = !$listen ? 0 :
|
||||
$listen eq "[::]" ? 1 :
|
||||
$listen eq "*" ? 2 : 3,
|
||||
my $v = &find_value($l, $conf);
|
||||
$mode = !$v ? 0 :
|
||||
# All interfaces, put in any order, e.g. "[::], *" or "*, ::"
|
||||
$v =~ /^\*,\s*(::|\[::\])$/ || $v =~ /^(::|\[::\]),\s*\*$/ ? 1 :
|
||||
# IPv6 only, e.g. "[::]" or "::"
|
||||
$v eq '::' || $v eq '[::]' ? 4 :
|
||||
# IPv4 only, e.g. "*"
|
||||
$v eq "*" ? 2 : 3,
|
||||
print &ui_table_row($text{'net_'.$l},
|
||||
&ui_radio($l."_mode", $mode,
|
||||
[ [ 0, $text{'net_listen0'} ],
|
||||
[ 1, $text{'net_listen1'} ],
|
||||
[ 2, $text{'net_listen2'} ],
|
||||
[ 4, $text{'net_listen4'} ],
|
||||
[ 3, $text{'net_listen3'} ] ])."\n".
|
||||
&ui_textbox($l, $mode == 3 ? $listen : "", 20), 3);
|
||||
&ui_textbox($l, $mode == 3 ? $v : "", 40), 3);
|
||||
}
|
||||
|
||||
print &ui_table_end();
|
||||
|
||||
172
dovecot/lang/de
172
dovecot/lang/de
@@ -1,25 +1,25 @@
|
||||
index_ecmd=Das Dovecot-Serverprogramm $1 wurde auf Ihrem System nicht gefunden. Möglicherweise ist es nicht installiert oder die <a href='$2'>Modulkonfiguration</a> ist falsch.
|
||||
index_econf=Die Dovecot-Konfigurationsdatei $1 wurde auf Ihrem System nicht gefunden. Möglicherweise ist sie nicht installiert oder die <a href='$2'>Modulkonfiguration</a> ist falsch.
|
||||
index_ecmd=Das Dovecot-Serverprogramm $1 wurde auf Ihrem System nicht gefunden. Möglicherweise ist es nicht installiert oder die <a href='$2'>Modulkonfiguration</a> ist fehlerhaft.
|
||||
index_econf=Die Dovecot-Konfigurationsdatei $1 wurde auf Ihrem System nicht gefunden. Möglicherweise ist sie nicht installiert oder die <a href='$2'>Modulkonfiguration</a> ist fehlerhaft.
|
||||
index_dovecot=Dovecot
|
||||
index_stop=Dovecot-Server stoppen
|
||||
index_stopdesc=Den laufenden Dovecot IMAP/POP3-Serverprozess herunterfahren. Dies verhindert, dass Benutzer ihre E-Mails herunterladen.
|
||||
index_stopdesc=Beendet den laufenden Dovecot IMAP/POP3-Serverprozess. Dadurch wird verhindert, dass Benutzer:innen ihre E-Mails herunterladen können.
|
||||
index_start=Dovecot-Server starten
|
||||
index_startdesc=Den Dovecot IMAP/POP3-Serverprozess starten, damit Benutzer ihre E-Mails herunterladen können.
|
||||
index_apply=Konfiguration anwenden
|
||||
index_applydesc=Aktivieren Sie die aktuelle Dovecot-Konfiguration, indem Sie den Serverprozess stoppen und neu starten.
|
||||
index_startdesc=Startet den Dovecot IMAP/POP3-Serverprozess, damit Benutzer:innen ihre E-Mails herunterladen können.
|
||||
index_apply=Konfiguration übernehmen
|
||||
index_applydesc=Aktiviert die aktuelle Dovecot-Konfiguration durch Stoppen und erneutes Starten des Serverprozesses.
|
||||
index_boot=Beim Systemstart starten?
|
||||
index_bootdesc=Ändern Sie diese Einstellung, um den Start des Dovecot-Servers beim Systemstart zu aktivieren oder zu deaktivieren.
|
||||
index_return=Modulindex
|
||||
index_version=Version $1
|
||||
|
||||
stop_err=Dovecot konnte nicht gestoppt werden
|
||||
stop_erunning=Nicht mehr in Betrieb
|
||||
stop_erunning=Nicht mehr aktiv
|
||||
start_err=Dovecot konnte nicht gestartet werden
|
||||
apply_err=Konfiguration konnte nicht angewendet werden
|
||||
apply_err=Konfiguration konnte nicht übernommen werden
|
||||
|
||||
net_title=Netzwerk- und Protokolleinstellungen
|
||||
net_header=Dovecot Netzwerk- und Mailprotokoll-Optionen
|
||||
net_protocols=Zu bedienende Mail-Protokolle
|
||||
net_title=Netzwerk und Protokolle
|
||||
net_header=Netzwerk- und Mailprotokolloptionen für Dovecot
|
||||
net_protocols=Bereitzustellende Mail-Protokolle
|
||||
net_pop3=POP3
|
||||
net_imap=IMAP
|
||||
net_pop3s=POP3 (SSL)
|
||||
@@ -29,136 +29,132 @@ net_ssl_disable=SSL-Verbindungen akzeptieren?
|
||||
net_ssl_required=Nur SSL-Verbindungen akzeptieren
|
||||
net_imap_listen=Schnittstellen für IMAP-Verbindungen
|
||||
net_pop3_listen=Schnittstellen für POP3-Verbindungen
|
||||
net_imaps_listen=Schnittstellen für IMAP SSL-Verbindungen
|
||||
net_pop3s_listen=Schnittstellen für POP3 SSL-Verbindungen
|
||||
net_listen=Schnittstellen für Nicht-SSL-Verbindungen
|
||||
net_ssl_listen=Schnittstellen für SSL-Verbindungen
|
||||
net_imaps_listen=Schnittstellen für IMAP-SSL-Verbindungen
|
||||
net_pop3s_listen=Schnittstellen für POP3-SSL-Verbindungen
|
||||
net_listen=Lauschen auf
|
||||
net_listen0=Standard
|
||||
net_listen1=Alle IPv4- und IPv6-Adressen
|
||||
net_listen2=Alle IPv4-Adressen
|
||||
net_listen4=Alle IPv6-Adressen
|
||||
net_listen3=IP-Adresse
|
||||
net_err=Netzwerkoptionen konnten nicht gespeichert werden
|
||||
net_eimap_listen=Ungültige IP-Adresse für IMAP-Verbindungen
|
||||
net_epop3_listen=Ungültige IP-Adresse für POP3-Verbindungen
|
||||
net_eimaps_listen=Ungültige IP-Adresse für IMAP SSL-Verbindungen
|
||||
net_epop3s_listen=Ungültige IP-Adresse für POP3 SSL-Verbindungen
|
||||
net_elisten=Ungültige IP-Adresse für Nicht-SSL-Verbindungen
|
||||
net_essl_listen=Ungültige IP-Adresse für SSL-Verbindungen
|
||||
net_ealisten=Ungültige IP-Adresse für das Lauschen: <tt>$1</tt>
|
||||
net_ealisten_invalid_mix=Eine einzelne IP-Adresse <tt>$1</tt> kann nicht zusammen mit dem Platzhalter <tt>$2</tt> verwendet werden. Geben Sie entweder einzelne IP-Adressen an oder verwenden Sie den Platzhalter, aber nicht beides.
|
||||
|
||||
imap_title=IMAP-Optionen
|
||||
|
||||
pop3_title=POP3-Optionen
|
||||
|
||||
ssl_title=SSL-Konfiguration
|
||||
ssl_header=IMAP- und POP3-SSL-Modus-Optionen
|
||||
ssl_key=SSL-Privatschlüsseldatei
|
||||
ssl_cert=SSL-Zertifikatsdatei
|
||||
ssl_ca=SSL-Client-CA-Zertifikatsdatei
|
||||
ssl_header=SSL-Modus-Optionen für IMAP und POP3
|
||||
ssl_key=Datei mit dem privaten SSL-Schlüssel
|
||||
ssl_cert=SSL-Zertifikatdatei
|
||||
ssl_ca=Zertifikatsdatei der SSL-Client-CA
|
||||
ssl_pass=Passwort für Schlüsseldatei
|
||||
ssl_prompt=Kein Passwort benötigt
|
||||
ssl_regen=Intervall für SSL-Parameterregenerierung
|
||||
ssl_prompt=Keines erforderlich
|
||||
ssl_regen=Intervall für SSL-Parameterneuerstellung
|
||||
ssl_hours=Stunden
|
||||
ssl_none=Kein
|
||||
ssl_plain=Nur Klartext-Authentifizierung im Nicht-SSL-Modus ablehnen?
|
||||
ssl_plain=Klartextauthentifizierung im Nicht-SSL-Modus verbieten?
|
||||
ssl_err=SSL-Konfiguration konnte nicht gespeichert werden
|
||||
ssl_ekey=Fehlende oder nicht vorhandene Privatschlüsseldatei
|
||||
ssl_ecert=Fehlende oder nicht vorhandene Zertifikatsdatei
|
||||
ssl_eca=Fehlende oder nicht vorhandene Client-CA-Zertifikatsdatei
|
||||
ssl_eregen=Fehlendes oder nicht-numerisches Parameter-Regenerierungsintervall
|
||||
ssl_ekey=Fehlende oder nicht vorhandene Datei mit privatem Schlüssel
|
||||
ssl_ecert=Fehlende oder nicht vorhandene Zertifikatdatei
|
||||
ssl_eca=Fehlende oder nicht vorhandene Zertifikatsdatei der Client-CA
|
||||
ssl_eregen=Fehlendes oder nicht-numerisches Intervall für Parameterneuerstellung
|
||||
ssl_epass=Kein Passwort für die SSL-Schlüsseldatei eingegeben
|
||||
|
||||
misc_title=Sonstige Optionen
|
||||
misc_title=Weitere Optionen
|
||||
|
||||
login_title=Benutzer- und Login-Optionen
|
||||
login_header=Optionen für Benutzer-Authentifizierung und Login
|
||||
login_fuid=Minimal gültige UID
|
||||
login_luid=Maximal gültige UID
|
||||
login_fgid=Minimal gültige Gruppen-ID
|
||||
login_lgid=Maximal gültige Gruppen-ID
|
||||
login_extra=Zusätzlich gewährte Sekundärgruppen
|
||||
login_header=Benutzerauthentifizierung und Login-Einstellungen
|
||||
login_fuid=Minimal zulässige UID
|
||||
login_luid=Maximal zulässige UID
|
||||
login_fgid=Minimal zulässige Gruppen-ID
|
||||
login_lgid=Maximal zulässige Gruppen-ID
|
||||
login_extra=Zusätzliche gewährte sekundäre Gruppen
|
||||
login_none=Keine
|
||||
login_chroot=Chroot-Verzeichnis für den Mail-Prozess
|
||||
login_chroot=Chroot-Verzeichnis für Mail-Prozess
|
||||
login_err=Benutzer- und Login-Optionen konnten nicht gespeichert werden
|
||||
login_efuid=Fehlende oder ungültige numerische minimale UID
|
||||
login_eluid=Fehlende oder ungültige numerische maximale UID
|
||||
login_efgid=Fehlende oder ungültige numerische minimale Gruppen-ID
|
||||
login_elgid=Fehlende oder ungültige numerische maximale Gruppen-ID
|
||||
login_echroot=Fehlendes oder ungültiges Chroot-Verzeichnis
|
||||
login_realms=SASL-Authentifizierungsdomänen
|
||||
login_realm=Standard-Authentifizierungsdomäne
|
||||
login_realms=SASL-Authentifizierungsbereiche
|
||||
login_realm=Standard-Authentifizierungsbereich
|
||||
login_mechs=Authentifizierungsmethoden
|
||||
login_anonymous=Anonym
|
||||
login_plain=Klartext
|
||||
login_digest-md5=Digest-MD5
|
||||
login_cram-md5=Cram-MD5
|
||||
login_apop=APOP
|
||||
login_otp=Einmaliges Passwort
|
||||
login_otp=Einmalpasswort
|
||||
login_skey=Sicherheitsschlüssel
|
||||
login_oauthbearer=OAuth2-Token-Authentifizierung
|
||||
login_xoauth2=Google OAuth2-Token-Authentifizierung
|
||||
login_oauthbearer=OAuth2 Bearer-Authentifizierung
|
||||
login_xoauth2=Google OAuth2 Bearer-Authentifizierung
|
||||
login_external=Externe SASL-Authentifizierung
|
||||
login_userdb=Datenquelle für Benutzer, Home-Verzeichnisse und IDs
|
||||
login_userdb=Datenquelle für Benutzer:innen, Home-Verzeichnisse und IDs
|
||||
login_passwd=Standard Unix-Benutzerdatenbank
|
||||
login_passwdfile=Benutzerdefinierte Passwortdatei $1
|
||||
login_static=Immer UID $1, GID $2 und Home-Verzeichnis $3 verwenden
|
||||
login_vpopmail=VPOPMail-Bibliothek
|
||||
login_ldap=LDAP, Konfigurationsdatei $1 verwenden
|
||||
login_pgsql=PostgreSQL, Konfigurationsdatei $1 verwenden
|
||||
login_sql=SQL-Datenbank, Konfigurationsdatei $1 verwenden
|
||||
login_ldap=LDAP, Konfigurationsdatei $1
|
||||
login_pgsql=PostgreSQL, Konfigurationsdatei $1
|
||||
login_sql=SQL-Datenbank, Konfigurationsdatei $1
|
||||
login_passdb=Passwort-Authentifizierungsquelle
|
||||
login_passwd2=Unix <tt>passwd</tt>-Datei
|
||||
login_shadow=Unix <tt>shadow</tt>-Datei
|
||||
login_dpam=Standard PAM-Dienst (<tt>dovecot</tt>)
|
||||
login_dpam=Standard-PAM-Dienst (<tt>dovecot</tt>)
|
||||
login_pam=PAM-Dienst $1
|
||||
login_session=PAM-Sitzungen öffnen und schließen
|
||||
login_pam2=PAM-Dienst $1<br> $2<br> Verwenden Sie den Cache-Schlüssel $3
|
||||
login_other=Andere Dovecot-Einstellung $1
|
||||
login_pam2=PAM-Dienst $1<br> $2<br> Cache-Schlüssel $3 verwenden
|
||||
login_other=Weitere Dovecot-Einstellung $1
|
||||
login_epasswdfile=Fehlende oder nicht vorhandene benutzerdefinierte Passwortdatei
|
||||
login_euid=Fehlende oder nicht numerische UID
|
||||
login_egid=Fehlende oder nicht numerische GID
|
||||
login_euid=Fehlende oder nicht-numerische UID
|
||||
login_egid=Fehlende oder nicht-numerische GID
|
||||
login_ehome=Fehlendes Home-Verzeichnis
|
||||
login_eldap=Fehlende oder nicht vorhandene LDAP-Konfigurationsdatei
|
||||
login_epgsql=Fehlende oder nicht vorhandene PostgreSQL-Konfigurationsdatei
|
||||
login_esql=Fehlende oder nicht vorhandene SQL-Konfigurationsdatei
|
||||
login_eppam=Fehlender oder ungültiger PAM-Dienst
|
||||
login_bsdauth=BSD-Authentifizierung<br> Verwenden Sie den Cache-Schlüssel $1
|
||||
login_bsdauth=BSD-Authentifizierung<br> Cache-Schlüssel $1 verwenden
|
||||
login_checkpassword=Externes Programm $1
|
||||
login_eckey=Fehlender oder ungültiger Cache-Schlüssel
|
||||
login_echeckpassword=Fehlendes oder ungültiges externes Passwortprüfungsprogramm
|
||||
login_procs=Maximale Login-Prozesse
|
||||
login_count=Anfängliche Login-Prozesse
|
||||
login_procs=Maximale Anzahl von Login-Prozessen
|
||||
login_count=Initiale Login-Prozesse
|
||||
login_eprocs=Fehlende oder ungültige maximale Anzahl von Login-Prozessen
|
||||
login_ecount=Fehlende oder ungültige anfängliche Anzahl von Login-Prozessen
|
||||
login_ecount=Fehlende oder ungültige initiale Anzahl von Login-Prozessen
|
||||
|
||||
mail_title=Mail-Dateien
|
||||
mail_header=Mail-Speicherort und Leseoptionen
|
||||
mail_env=Mail-Dateispeicherort
|
||||
mail_header=Speicherort und Leseoptionen für E-Mails
|
||||
mail_env=Speicherort der Mail-Dateien
|
||||
mail_env0=Automatisch erkennen
|
||||
mail_env1=Posteingang und Ordner in <tt>~/Maildir</tt>
|
||||
mail_env2=Posteingang unter <tt>/var/mail</tt>, Ordner in <tt>~/mail</tt>
|
||||
mail_env3=Posteingang in <tt>~/Maildir</tt>, Ordner in <tt>~/mail</tt>
|
||||
mail_env4=Andere Dovecot-Position $1
|
||||
mail_env4=Anderer Dovecot-Speicherort $1
|
||||
mail_index=Speicherort der Index-Dateien
|
||||
mail_index0=Standard (im Maildir-Verzeichnis)
|
||||
mail_index1=Nur im Speicher
|
||||
mail_index1=Nur im Arbeitsspeicher
|
||||
mail_index2=Anderes Verzeichnis $1
|
||||
mail_control=Speicherort der Steuerdateien
|
||||
mail_check=Intervall zwischen Mail-Überprüfungen
|
||||
mail_never=Niemals überprüfen
|
||||
mail_check=Intervall für Mail-Prüfung
|
||||
mail_never=Nie prüfen
|
||||
mail_secs=Sekunden
|
||||
mail_idle=Intervall zwischen Überprüfungen, wenn inaktiv
|
||||
mail_idle=Intervall für Mail-Prüfung im Leerlauf
|
||||
mail_full=Zugriff auf das gesamte Dateisystem erlauben?
|
||||
mail_crlf=E-Mails mit CRLF-Zeilenenden speichern?
|
||||
mail_change=Änderungen durch andere Programme verarbeiten?
|
||||
mail_umask=Umask für neue Dateien
|
||||
mail_err=Mail-Datei-Optionen konnten nicht gespeichert werden
|
||||
mail_eenv=Fehlender oder ungültiger Mail-Speicherort
|
||||
mail_echeck=Fehlende oder nicht-numerische Anzahl von Sekunden zwischen Überprüfungen
|
||||
mail_eidle=Fehlende oder nicht-numerische Anzahl von Sekunden zwischen Überprüfungen im Leerlauf
|
||||
mail_crlf=E-Mails mit CRLF-Zeilenumbrüchen speichern?
|
||||
mail_change=Mail-Änderungen durch andere Programme berücksichtigen?
|
||||
mail_umask=Umask-Berechtigungen für neue Dateien
|
||||
mail_err=Mail-Dateioptionen konnten nicht gespeichert werden
|
||||
mail_eenv=Fehlender oder ungültiger Speicherort für Mail-Dateien
|
||||
mail_echeck=Fehlende oder nicht-numerische Anzahl von Sekunden zwischen Prüfungen
|
||||
mail_eidle=Fehlende oder nicht-numerische Anzahl von Sekunden zwischen Prüfungen im Leerlauf
|
||||
mail_eumask=Fehlende oder ungültige vierstellige oktale Umask
|
||||
mail_uidl=UIDL-Format
|
||||
mail_uidl_other=Andere..
|
||||
mail_uidl_none=Nicht gesetzt (WARNUNG - Dovecot könnte nicht starten)
|
||||
mail_uidl_other=Anderes..
|
||||
mail_uidl_none=Nicht gesetzt (WARNUNG – Dovecot startet eventuell nicht)
|
||||
mail_uidl_dovecot=Altes Dovecot, neues Cyrus
|
||||
mail_uidl_uw=UW ipop3d
|
||||
mail_uidl_courier0=Courier Version 0
|
||||
@@ -166,37 +162,37 @@ mail_uidl_courier1=Courier Version 1, altes Cyrus
|
||||
mail_uidl_courier2=Courier Version 2
|
||||
mail_uidl_tpop3d=tpop3d
|
||||
mail_euidl=Fehlendes oder ungültiges UIDL-Format
|
||||
mail_last=Verwendung des POP3 LAST-Befehls zulassen?
|
||||
mail_lock=Methode zur Sperrung von Index-Dateien
|
||||
mail_last=Verwendung des POP3-Befehls LAST erlauben?
|
||||
mail_lock=Sperrmethode für Index-Dateien
|
||||
mail_fcntl=fcntl-Funktion
|
||||
mail_flock=flock-Funktion
|
||||
mail_dotlock=.lock-Dateien
|
||||
mail_lockf=lockf-Funktion
|
||||
mail_mbox_read_locks=Sperrmethode für das Lesen von Mailboxen
|
||||
mail_mbox_write_locks=Sperrmethode für das Schreiben von Mailboxen
|
||||
mail_mbox_read_locks=Lesesperrmethode für Mailboxen
|
||||
mail_mbox_write_locks=Schreibsperrmethode für Mailboxen
|
||||
mail_none=Keine
|
||||
mail_sel=Unten ausgewählt, in der Reihenfolge ..
|
||||
mail_embox_read_locks=Keine Sperrmethode für das Lesen ausgewählt
|
||||
mail_embox_write_locks=Keine Sperrmethode für das Schreiben ausgewählt
|
||||
mail_eindexmode=Der Speicherort der Indexdateien kann nicht festgelegt werden, wenn der Mail-Speicherort automatisch erkannt wird
|
||||
mail_econtrolmode=Der Speicherort der Steuerdateien kann nicht festgelegt werden, wenn der Mail-Speicherort automatisch erkannt wird
|
||||
mail_sel=Unten ausgewählt, in Reihenfolge ..
|
||||
mail_embox_read_locks=Keine Lesesperrmethode ausgewählt
|
||||
mail_embox_write_locks=Keine Schreibsperrmethode ausgewählt
|
||||
mail_eindexmode=Der Speicherort der Index-Dateien kann nicht gesetzt werden, wenn der Speicherort der Mail-Dateien automatisch erkannt wird
|
||||
mail_econtrolmode=Der Speicherort der Steuerdateien kann nicht gesetzt werden, wenn der Speicherort der Mail-Dateien automatisch erkannt wird
|
||||
mail_eindex=Fehlender oder ungültiger absoluter Pfad für Index-Dateien
|
||||
mail_econtrol=Fehlender oder ungültiger absoluter Pfad für Steuerdateien
|
||||
|
||||
log_net=Netzwerk- und Protokolleinstellungen geändert
|
||||
log_net=Netzwerk und Protokolle geändert
|
||||
log_login=Benutzer- und Login-Optionen geändert
|
||||
log_mail=Mail-Dateien geändert
|
||||
log_ssl=SSL-Konfiguration geändert
|
||||
log_apply=Konfiguration angewendet
|
||||
log_apply=Konfiguration übernommen
|
||||
log_start=Dovecot-Server gestartet
|
||||
log_stop=Dovecot-Server gestoppt
|
||||
log_bootup=Dovecot beim Systemstart aktiviert
|
||||
log_bootdown=Dovecot beim Systemstart deaktiviert
|
||||
log_manual=Konfigurationsdatei $1 manuell bearbeitet
|
||||
log_manual=Konfigurationsdatei manuell bearbeitet: $1
|
||||
|
||||
manual_title=Konfigurationsdateien bearbeiten
|
||||
manual_editsel=Dovecot-Konfigurationsdatei bearbeiten
|
||||
manual_err=Konfigurationsdatei konnte nicht gespeichert werden
|
||||
manual_edata=Nichts eingegeben!
|
||||
manual_efile=Ausgewählte Konfigurationsdatei ist nicht gültig
|
||||
manual_edata=Keine Eingabe erfolgt!
|
||||
manual_efile=Ausgewählte Konfigurationsdatei ist ungültig
|
||||
manual_ok=Bearbeiten
|
||||
|
||||
@@ -31,19 +31,15 @@ net_imap_listen=Interfaces for IMAP connections
|
||||
net_pop3_listen=Interfaces for POP3 connections
|
||||
net_imaps_listen=Interfaces for IMAP SSL connections
|
||||
net_pop3s_listen=Interfaces for POP3 SSL connections
|
||||
net_listen=Interfaces for non-SSL connections
|
||||
net_ssl_listen=Interfaces for SSL connections
|
||||
net_listen=Listen on
|
||||
net_listen0=Default
|
||||
net_listen1=All IPv4 and IPv6
|
||||
net_listen2=All IPv4
|
||||
net_listen4=All IPv6
|
||||
net_listen3=IP address
|
||||
net_err=Failed to save networking options
|
||||
net_eimap_listen=Invalid IP address for IMAP connections
|
||||
net_epop3_listen=Invalid IP address for POP3 connections
|
||||
net_eimaps_listen=Invalid IP address for IMAP SSL connections
|
||||
net_epop3s_listen=Invalid IP address for POP3 SSL connections
|
||||
net_elisten=Invalid IP address for non-SSL connections
|
||||
net_essl_listen=Invalid IP address for SSL connections
|
||||
net_ealisten=Invalid IP address to listen on : <tt>$1</tt>
|
||||
net_ealisten_invalid_mix=Cannot use an individual IP address <tt>$1</tt> together with the <tt>$2</tt> wildcard. Specify either specific IP addresses or use the wildcard, not both
|
||||
|
||||
imap_title=IMAP Options
|
||||
|
||||
|
||||
@@ -12,20 +12,50 @@ $sslopt = &find("ssl_disable", $conf, 2) ? "ssl_disable" : "ssl";
|
||||
&save_directive($conf, $sslopt, $in{$sslopt} eq '' ? undef : $in{$sslopt});
|
||||
@listens = &find("imap_listen", $conf, 2) ?
|
||||
("imap_listen", "pop3_listen", "imaps_listen", "pop3s_listen") :
|
||||
("listen", "ssl_listen");
|
||||
("listen");
|
||||
foreach $l (@listens) {
|
||||
if ($in{$l."_mode"} == 0) {
|
||||
$listen = undef;
|
||||
}
|
||||
elsif ($in{$l."_mode"} == 1) {
|
||||
$listen = "[::]";
|
||||
$listen = "*, ::";
|
||||
}
|
||||
elsif ($in{$l."_mode"} == 2) {
|
||||
$listen = "*";
|
||||
}
|
||||
elsif ($in{$l."_mode"} == 4) {
|
||||
$listen = "::";
|
||||
}
|
||||
elsif ($in{$l."_mode"} == 3) {
|
||||
&check_ipaddress($in{$l}) || &error($text{'net_e'.$l});
|
||||
$listen = $in{$l};
|
||||
# Check each IP address
|
||||
my @ips_list = split(/[\s,]+/, $in{$l});
|
||||
my @ips_valid;
|
||||
my $has_ip4_wildcard = grep { $_ eq "*" } @ips_list;
|
||||
my $has_ip6_wildcard = grep { /^(\[::\]|::)$/ } @ips_list;
|
||||
foreach my $ip (@ips_list) {
|
||||
# Check for wildcards
|
||||
if ($ip =~ /^(\*|::|\[::\])$/) {
|
||||
push(@ips_valid, $ip);
|
||||
next;
|
||||
}
|
||||
|
||||
# Validate IP address
|
||||
my $is_ipv4 = &check_ipaddress($ip);
|
||||
my $is_ipv6 = &check_ip6address($ip);
|
||||
if (!$is_ipv4 && !$is_ipv6) {
|
||||
&error(&text("net_ealisten", $ip));
|
||||
}
|
||||
|
||||
# Add IP address to list
|
||||
push(@ips_valid, $ip);
|
||||
|
||||
# Validate against wildcards
|
||||
&error(&text("net_ealisten_invalid_mix", $ip, "*"))
|
||||
if ($has_ip4_wildcard && &check_ipaddress($ip));
|
||||
&error(&text("net_ealisten_invalid_mix", $ip, "::"))
|
||||
if ($has_ip6_wildcard && &check_ip6address($ip));
|
||||
}
|
||||
$listen = join(", ", @ips_valid) if (@ips_valid);
|
||||
}
|
||||
&save_directive($conf, $l, $listen);
|
||||
}
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
allowed_paths=$HOME
|
||||
work_as_root=1
|
||||
allowed_for_edit=application-x-php application-x-ruby application-xml application-xslt+xml application-javascript application-x-shellscript application-x-perl application-x-yaml application-json application-x-x509-ca-cert application-pkix-cert application-x-sql application-x-asp application-x-aspx application-xhtml+xml
|
||||
allowed_for_edit=application-x-php application-x-ruby application-xml application-xslt+xml application-javascript application-x-shellscript application-x-perl application-x-yaml application-x-toml application-json application-x-x509-ca-cert application-pkix-cert application-x-sql application-x-asp application-x-aspx application-xhtml+xml
|
||||
|
||||
31
help.cgi
31
help.cgi
@@ -10,24 +10,41 @@ use WebminCore;
|
||||
$ENV{'PATH_INFO'} !~ /[\\\&\;\`\'\"\|\*\?\~\<\>\^\(\)\[\]\{\}\$\n\r]/ ||
|
||||
&error($text{'help_epath'});
|
||||
$ENV{'PATH_INFO'} =~ /^\/(\S+)\/(\S+)$/ || &error($text{'help_epath'});
|
||||
$module = $1; $file = $2;
|
||||
my $module = $1;
|
||||
my $file = $2;
|
||||
&ReadParse();
|
||||
|
||||
# if it ends with .gif assume it is a direct URL
|
||||
if ($file =~ /\.(gif|jpg|jpeg|png)$/i) {
|
||||
&redirect("$module/$file");
|
||||
exit;
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
# read the help file
|
||||
$help = &read_help_file($module, $file);
|
||||
my $help = &read_help_file($module, $file);
|
||||
$help || &helperror(&text('help_efile3',
|
||||
&html_escape($file), &html_escape($module)));
|
||||
my %hash;
|
||||
|
||||
# Modify help file based on module
|
||||
if (&foreign_exists($module) &&
|
||||
&foreign_require($module) &&
|
||||
&foreign_defined($module, 'help_pre_load')) {
|
||||
$help = &foreign_call($module, "help_pre_load", $help);
|
||||
&foreign_require($module)) {
|
||||
if (&foreign_defined($module, 'help_pre_load')) {
|
||||
$help = &foreign_call($module, "help_pre_load", $help);
|
||||
}
|
||||
if (&foreign_defined($module, 'help_template')) {
|
||||
%hash = &foreign_call($module, "help_template");
|
||||
}
|
||||
}
|
||||
|
||||
# if any template variables were given as URL params, substitute them into the file
|
||||
foreach my $k (keys %in) {
|
||||
if ($k =~ /^tmpl_(\S+)$/i) {
|
||||
$hash{$1} = $in{$k};
|
||||
}
|
||||
}
|
||||
if (%hash) {
|
||||
$help = &substitute_template($help, \%hash);
|
||||
}
|
||||
|
||||
# find and replace the <header> section
|
||||
|
||||
@@ -247,7 +247,6 @@ if (-d "/home/jcameron/webmin.com" && (!$release || $release == 1)) {
|
||||
# this is a new full version, so round down to the previous full version
|
||||
$lastvers = sprintf("%.2f0", $vers-0.006);
|
||||
}
|
||||
system("./showchangelog.pl --html $lastvers >/home/jcameron/webmin.com/changes-$vers.html");
|
||||
}
|
||||
|
||||
if ($min && !$release) {
|
||||
|
||||
@@ -33,8 +33,10 @@ SECT: foreach $sec (@sects) {
|
||||
$cmd = $ocmd;
|
||||
$cmd =~ s/PAGE/$qpage/;
|
||||
$cmd =~ s/SECTION/$qsec/;
|
||||
$out = &backquote_command(
|
||||
&command_as_user("nobody", 0, $cmd)." 2>&1", 1);
|
||||
if ($< == 0) {
|
||||
$cmd = &command_as_user("nobody", 0, $cmd);
|
||||
}
|
||||
$out = &backquote_command($cmd." 2>&1", 1);
|
||||
if ($out !~ /^.*no manual entry/i && $out !~ /^.*no entry/i &&
|
||||
$out !~ /^.*nothing appropriate/i) {
|
||||
# Found it
|
||||
|
||||
@@ -64,9 +64,14 @@ my $unixsocket = $plugin && $u->[$plugin] eq 'unix_socket';
|
||||
my $nopass = ((!defined($epassfield1) || !$u->[$epassfield1]) &&
|
||||
(!defined($epassfield2) || !$u->[$epassfield2]));
|
||||
my $hashpass = $u->[$epassfield1] || $u->[$epassfield2];
|
||||
my $lock_supported = exists($fieldmap{'account_locked'}) &&
|
||||
defined($u->[$fieldmap{'account_locked'}]);
|
||||
my $lock_supported = &get_account_lock_support();
|
||||
# Old way for checking account locking
|
||||
my $locked = $u->[$fieldmap{'account_locked'}] eq 'Y';
|
||||
# New account locking check
|
||||
if (!exists($fieldmap{'account_locked'}) ||
|
||||
!defined($u->[$fieldmap{'account_locked'}])) {
|
||||
$locked = &get_account_lock_status($u->[1], $u->[0]);
|
||||
}
|
||||
print &ui_table_row($text{'user_pass'},
|
||||
&ui_radio("mysqlpass_mode", $in{'new'} ? 0 :
|
||||
$lock_supported && $locked ? 4 :
|
||||
@@ -84,12 +89,12 @@ if (!$in{'new'} && $hashpass) {
|
||||
}
|
||||
|
||||
# Plugin for setting password
|
||||
my @plugins = &list_authentication_plugins();
|
||||
if (@plugins) {
|
||||
my $plugins = &list_authentication_plugins();
|
||||
if ($plugins) {
|
||||
print &ui_table_row($text{'user_plugin'},
|
||||
&ui_select("plugin", $plugin && $u->[$plugin],
|
||||
[ [ '', $text{'default'} ],
|
||||
@plugins ]));
|
||||
@{$plugins} ]));
|
||||
}
|
||||
|
||||
# Allowed host / network
|
||||
|
||||
@@ -1730,23 +1730,72 @@ my $conf = &get_mysql_config();
|
||||
return &unique(map { $_->{'file'} } @$conf);
|
||||
}
|
||||
|
||||
# get_change_pass_sql(unescaped_plaintext_password, user, host)
|
||||
# get_account_lock_status(user, host)
|
||||
# Returns the account lock status of a user
|
||||
sub get_account_lock_status
|
||||
{
|
||||
my ($user, $host) = @_;
|
||||
my $rv = &execute_sql_safe($master_db, 'show create user ?@?', $user, $host);
|
||||
return undef if (!ref($rv) || !@{$rv->{'data'}});
|
||||
return $rv->{'data'}->[0][0] =~ /account\s+lock/i ? 1 : 0;
|
||||
}
|
||||
|
||||
# get_account_lock_support()
|
||||
# Returns 1 if the MySQL/MariaDB server supports account locking
|
||||
sub get_account_lock_support
|
||||
{
|
||||
my ($ver, $variant) = &get_remote_mysql_variant();
|
||||
return
|
||||
$variant eq "mariadb" && &compare_version_numbers($ver, "10.4.2") >= 0 ||
|
||||
$variant eq "mysql" && &compare_version_numbers($ver, "8.0") >= 0;
|
||||
}
|
||||
|
||||
# get_plugin_sql(version, variant, plainpass, plugin)
|
||||
# Get the right query for setting user password with plugin
|
||||
sub get_plugin_sql
|
||||
{
|
||||
my ($ver, $variant, $plainpass, $plugin) = @_;
|
||||
my $pass = &escapestr($plainpass);
|
||||
# Has account locking support?
|
||||
my $suplock = &get_account_lock_support();
|
||||
my $lockcurr;
|
||||
if ($suplock) {
|
||||
$lockcurr = !defined($plainpass);
|
||||
if ($lockcurr) {
|
||||
$pass = sprintf("%x", rand 16) for 1..30;
|
||||
}
|
||||
}
|
||||
my $is_plugin_socket = $plugin eq "unix_socket";
|
||||
my $by = "";
|
||||
$by = " by '$pass'" if (!$is_plugin_socket);
|
||||
my $sp = "identified with $plugin$by";
|
||||
if ($variant eq "mariadb") {
|
||||
$by = " using $password_func('$pass')" if (!$is_plugin_socket);
|
||||
$sp = "identified via $plugin$by";
|
||||
}
|
||||
if ($suplock) {
|
||||
$sp = $lockcurr ? "account lock" : "$sp account unlock";
|
||||
}
|
||||
return $sp;
|
||||
}
|
||||
|
||||
# get_change_pass_sql(unescaped_plaintext_password, user, host, plugin)
|
||||
# Get the right query for changing user password
|
||||
sub get_change_pass_sql
|
||||
{
|
||||
my ($unescaped_plainpass, $user, $host) = @_;
|
||||
my $plugin = &get_mysql_plugin();
|
||||
$plugin = $plugin ? "with $plugin" : "";
|
||||
my $escaped_pass = &escapestr($unescaped_plainpass);
|
||||
my ($unescaped_plainpass, $user, $host, $plugin) = @_;
|
||||
$plugin ||= &get_mysql_plugin();
|
||||
my $sql;
|
||||
my ($ver, $variant) = &get_remote_mysql_variant();
|
||||
my $mysql_mariadb_with_auth_string =
|
||||
my $supauth =
|
||||
$variant eq "mariadb" && &compare_version_numbers($ver, "10.2") >= 0 ||
|
||||
$variant eq "mysql" && &compare_version_numbers($ver, "5.7.6") >= 0;
|
||||
if ($mysql_mariadb_with_auth_string && $unescaped_plainpass) {
|
||||
$sql = "alter user '$user'\@'$host' identified $plugin by '$escaped_pass'";
|
||||
if ($plugin && $supauth) {
|
||||
my $sp = &get_plugin_sql($ver, $variant, $unescaped_plainpass, $plugin);
|
||||
$sql = "alter user '$user'\@'$host' $sp";
|
||||
}
|
||||
else {
|
||||
my $escaped_pass = &escapestr($unescaped_plainpass);
|
||||
$sql = "set password for '".$user."'\@'".$host."' = ".
|
||||
"$password_func('$escaped_pass')";
|
||||
}
|
||||
@@ -1937,34 +1986,12 @@ else {
|
||||
sub change_user_password
|
||||
{
|
||||
my ($plainpass, $user, $host, $plugin) = @_;
|
||||
|
||||
my ($ver, $variant) = &get_remote_mysql_variant();
|
||||
$plugin ||= &get_mysql_plugin();
|
||||
$plugin = $plugin ? "with $plugin" : "";
|
||||
my $lock_supported = $variant eq "mysql" && &compare_version_numbers($ver, "8.0.19");
|
||||
my $mysql_mariadb_with_auth_string =
|
||||
$variant eq "mariadb" && &compare_version_numbers($ver, "10.4") >= 0 ||
|
||||
$variant eq "mysql" && &compare_version_numbers($ver, "5.7.6") >= 0;
|
||||
|
||||
$plugin ||= "";
|
||||
my $sql;
|
||||
my $pass = &escapestr($plainpass);
|
||||
$host ||= '%';
|
||||
my $lock = !defined($plainpass);
|
||||
if ($lock) {
|
||||
$pass = sprintf("%x", rand 16) for 1..30;
|
||||
}
|
||||
if ($mysql_mariadb_with_auth_string) {
|
||||
my $sp = "identified $plugin by '".$pass."'";
|
||||
if ($lock_supported) {
|
||||
$sp = $lock ? "account lock" : "$sp account unlock";
|
||||
}
|
||||
$sql = "alter user '$user'\@'$host' $sp";
|
||||
&execute_sql_logged($master_db, $sql);
|
||||
}
|
||||
else {
|
||||
$sql = &get_change_pass_sql($plainpass, $user, $host);
|
||||
&execute_sql_logged($master_db, $sql);
|
||||
}
|
||||
$sql = &get_change_pass_sql($plainpass, $user, $host, $plugin);
|
||||
&execute_sql_logged($master_db, $sql);
|
||||
|
||||
# Update module password when needed
|
||||
&update_config_credentials({
|
||||
@@ -2058,7 +2085,7 @@ if (!$pid || !kill(0, $pid)) {
|
||||
}
|
||||
|
||||
# Update password by running command directly
|
||||
my $cmd = $config{'mysql'} || 'mysql';
|
||||
$cmd = $config{'mysql'} || 'mysql';
|
||||
my $sql = &get_change_pass_sql($pass, $user, 'localhost');
|
||||
my $out = &backquote_command("$cmd -D $master_db -e ".
|
||||
quotemeta("flush privileges; $sql")." 2>&1 </dev/null");
|
||||
@@ -2154,13 +2181,16 @@ return $rv->{'data'}->[0]->[0] =~ /unix_socket/i ? 'socket' : 'password';
|
||||
}
|
||||
|
||||
# list_authentication_plugins()
|
||||
# Returns a list of supported authentication plugins for setting passwords
|
||||
# Returns a list ref of supported authentication plugins for setting passwords
|
||||
sub list_authentication_plugins
|
||||
{
|
||||
my ($ver, $variant) = &get_remote_mysql_variant();
|
||||
if ($variant eq "mariadb" && &compare_version_numbers($ver, "10.4") >= 0 ||
|
||||
$variant eq "mysql" && &compare_version_numbers($ver, "5.7.6") >= 0) {
|
||||
return ('mysql_native_password', 'caching_sha2_password', 'unix_socket');
|
||||
my $rv = &execute_sql($master_db, "show plugins");
|
||||
my @plugins = map { $_->[0] } grep { $_->[1] eq 'ACTIVE' &&
|
||||
$_->[2] eq 'AUTHENTICATION' } @{ $rv->{data} };
|
||||
return @plugins ? \@plugins : ['mysql_native_password'];
|
||||
}
|
||||
return ();
|
||||
}
|
||||
|
||||
@@ -271,8 +271,18 @@ else {
|
||||
my $lref = &read_file_lines($old->{'file'});
|
||||
splice(@$lref, $old->{'line'},
|
||||
$old->{'eline'} - $old->{'line'} + 1, @lines);
|
||||
my $diff = scalar(@lines) - ($old->{'eline'} - $old->{'line'} + 1);
|
||||
$iface->{'line'} = $old->{'line'};
|
||||
$iface->{'eline'} = $iface->{'line'} + scalar(@lines) - 1;
|
||||
&flush_file_lines($old->{'file'});
|
||||
&unlock_file($old->{'file'});
|
||||
if ($diff) {
|
||||
# May need to renumber other interface lines
|
||||
foreach my $b (@$boot) {
|
||||
$b->{'line'} += $diff if ($b->{'line'} > $iface->{'eline'});
|
||||
$b->{'eline'} += $diff if ($b->{'eline'} > $iface->{'eline'});
|
||||
}
|
||||
}
|
||||
}
|
||||
else {
|
||||
# Adding a new one (possibly to it's own file)
|
||||
@@ -295,6 +305,8 @@ else {
|
||||
splice(@$lref, $nline+1, 0, " ".$sect.":");
|
||||
}
|
||||
splice(@$lref, $eline+1, 0, @lines);
|
||||
$iface->{'line'} = $eline + 1;
|
||||
$iface->{'eline'} = $iface->{'line'} + scalar(@lines) - 1;
|
||||
&flush_file_lines($iface->{'file'});
|
||||
&unlock_file($iface->{'file'});
|
||||
}
|
||||
@@ -558,7 +570,7 @@ $sysctl{'net.ipv4.ip_forward'} = $in{'forward'};
|
||||
&unlock_file($sysctl_config);
|
||||
|
||||
# Save static routes
|
||||
my @boot = &boot_interfaces();
|
||||
my @boot = &boot_interfaces();
|
||||
foreach my $b (grep { $_->{'virtual'} eq '' } @boot) {
|
||||
my @r;
|
||||
if ($b->{'routes'}) {
|
||||
@@ -627,7 +639,8 @@ return ( );
|
||||
sub set_default_gateway
|
||||
{
|
||||
my ($gw, $dev) = @_;
|
||||
foreach my $iface (&boot_interfaces()) {
|
||||
my @boot = &boot_interfaces();
|
||||
foreach my $iface (@boot) {
|
||||
# What is this interface's current default and how is it set?
|
||||
my $oldgw = $iface->{'gateway'};
|
||||
my $oldr;
|
||||
@@ -670,7 +683,7 @@ foreach my $iface (&boot_interfaces()) {
|
||||
}
|
||||
|
||||
if ($save) {
|
||||
&save_interface($iface);
|
||||
&save_interface($iface, \@boot);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -694,16 +707,17 @@ return ( );
|
||||
sub set_default_ipv6_gateway
|
||||
{
|
||||
my ($gw, $dev) = @_;
|
||||
foreach my $iface (&boot_interfaces()) {
|
||||
my @boot = &boot_interfaces();
|
||||
foreach my $iface (@boot) {
|
||||
if ($iface->{'fullname'} eq $dev && $iface->{'gateway6'} ne $gw) {
|
||||
# Need to add to this interface
|
||||
$iface->{'gateway6'} = $gw;
|
||||
&save_interface($iface);
|
||||
&save_interface($iface, \@boot);
|
||||
}
|
||||
elsif ($iface->{'fullname'} ne $dev && $iface->{'gateway6'}) {
|
||||
# Need to remove from this interface
|
||||
delete($iface->{'gateway6'});
|
||||
&save_interface($iface);
|
||||
&save_interface($iface, \@boot);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
187
phpini/lang/de
187
phpini/lang/de
@@ -3,7 +3,7 @@ index_eaccess=Sie haben keinen Zugriff auf PHP-Konfigurationsdateien.
|
||||
index_efiles=Keine der PHP-Konfigurationsdateien, auf die Sie Zugriff haben, existiert.
|
||||
index_efiles2=Es wurden keine PHP-Konfigurationsdateien gefunden. Passen Sie die <a href='$1'>Modulkonfiguration</a> an, um den korrekten Pfad zur globalen PHP-Konfigurationsdatei festzulegen.
|
||||
index_file=Konfigurationsdatei
|
||||
index_desc=Zweck
|
||||
index_desc=Verwendungszweck
|
||||
index_actions=Aktionen
|
||||
index_edit=Verwalten
|
||||
index_manual=Manuell bearbeiten
|
||||
@@ -11,143 +11,144 @@ index_anyfile=Andere PHP-Konfigurationsdatei bearbeiten
|
||||
index_return=Konfigurationsdateien
|
||||
|
||||
file_global=Globale PHP-Konfiguration
|
||||
file_eread=Fehler beim Lesen von $1: $2
|
||||
file_eread=Lesen von $1 fehlgeschlagen: $2
|
||||
|
||||
manual_title=Konfiguration manuell bearbeiten
|
||||
manual_desc=Diese Seite kann verwendet werden, um eine PHP-Konfigurationsdatei manuell zu bearbeiten. Dies sollte mit Vorsicht erfolgen, da keine Syntax- oder Gültigkeitsprüfung für Ihre Änderungen durchgeführt wird.
|
||||
manual_err=Fehler beim Bearbeiten der Konfigurationsdatei
|
||||
manual_edata=Kein neuer Inhalt eingegeben
|
||||
manual_desc=Auf dieser Seite kann eine PHP-Konfigurationsdatei manuell bearbeitet werden. Dies sollte mit Vorsicht erfolgen, da keine Syntax- oder Gültigkeitsprüfung der Änderungen durchgeführt wird.
|
||||
manual_err=Konfigurationsdatei konnte nicht bearbeitet werden
|
||||
manual_edata=Keine neuen Inhalte eingegeben
|
||||
|
||||
list_title=PHP-Konfiguration verwalten
|
||||
list_ecannot=Sie sind nicht berechtigt, diese PHP-Konfigurationsdatei zu verwalten.
|
||||
list_efile=Die zu bearbeitende Datei muss ein absoluter Pfad sein.
|
||||
list_ecannot=Sie dürfen diese PHP-Konfigurationsdatei nicht verwalten
|
||||
list_efile=Pfad zur zu bearbeitenden Datei muss absolut sein
|
||||
list_return=PHP-Konfiguration
|
||||
list_format_ini=INI-Format
|
||||
list_format_fpm=FPM-Format
|
||||
list_bin=PHP-Version $2 unter $1
|
||||
|
||||
vars_title=PHP-Variablen
|
||||
vars_header=Erstellung und Zitierung von PHP-Variablen
|
||||
vars_magic=Alle Eingabevariablen zitieren?
|
||||
vars_runtime=Daten zur Laufzeit zitieren?
|
||||
vars_header=Erstellung und Maskierung von PHP-Variablen
|
||||
vars_magic=Alle Eingabevariablen maskieren?
|
||||
vars_runtime=Daten zur Laufzeit maskieren?
|
||||
vars_register=Alle Eingaben in globale Variablen umwandeln?
|
||||
vars_args=Kommandozeilenparameter in globale Variablen umwandeln?
|
||||
vars_long=Alte Array-Formate wie <tt>HTTP_GET_VARS</tt> erstellen?
|
||||
vars_err=Fehler beim Speichern der PHP-Variableneinstellungen
|
||||
vars_long=Veraltete Array-Formate wie <tt>HTTP_GET_VARS</tt> erstellen?
|
||||
vars_err=PHP-Variableinstellungen konnten nicht gespeichert werden
|
||||
|
||||
dirs_title=Verzeichniseinstellungen
|
||||
dirs_header=Verzeichnis- und Erweiterungseinstellungen für PHP-Skripte
|
||||
dirs_header=Verzeichnisoptionen für PHP-Skripte und -Erweiterungen
|
||||
dirs_include=Suchverzeichnisse für Includes
|
||||
dirs_below=Unten aufgeführt..
|
||||
dirs_upload=Datei-Uploads zulassen?
|
||||
dirs_below=Unten aufgelistet..
|
||||
dirs_upload=Datei-Uploads erlauben?
|
||||
dirs_utmp=Temporäres Verzeichnis für hochgeladene Dateien
|
||||
dirs_err=Fehler beim Speichern der Verzeichniseinstellungen
|
||||
dirs_err=Verzeichniseinstellungen konnten nicht gespeichert werden
|
||||
dirs_eincs=Keine Include-Suchverzeichnisse eingegeben
|
||||
dirs_eutmp=Fehlendes oder ungültiges temporäres Verzeichnis für Dateien
|
||||
|
||||
db_title=Datenbankeinstellungen
|
||||
db_header1=MySQL-Datenbankverbindungs-Einstellungen
|
||||
db_persist=Persistente Datenbankverbindungen zulassen?
|
||||
db_maxpersist=Maximale Anzahl persistenter Verbindungen?
|
||||
db_maxlinks=Maximale Anzahl gesamter Verbindungen?
|
||||
db_timeout=Timeout für MySQL-Verbindungen?
|
||||
db_host=Standard-Host des MySQL-Servers
|
||||
db_port=Standard-Port des MySQL-Servers
|
||||
db_header1=MySQL-Datenbankverbindungseinstellungen
|
||||
db_persist=Persistente Datenbankverbindungen erlauben?
|
||||
db_maxpersist=Maximale persistente Verbindungen?
|
||||
db_maxlinks=Maximale Gesamtverbindungen?
|
||||
db_timeout=MySQL-Verbindungs-Timeout?
|
||||
db_host=Standard-MySQL-Serverhost
|
||||
db_port=Standard-MySQL-Serverport
|
||||
db_unlimited=Unbegrenzt
|
||||
db_s=Sekunden
|
||||
db_header2=PostgreSQL-Datenbankverbindungs-Einstellungen
|
||||
db_header2=PostgreSQL-Datenbankverbindungseinstellungen
|
||||
db_reset=Persistente Verbindungen automatisch wiederherstellen?
|
||||
db_err=Fehler beim Speichern der Datenbankeinstellungen
|
||||
db_err=Datenbankeinstellungen konnten nicht gespeichert werden
|
||||
db_emaxpersist=Fehlende oder ungültige maximale Anzahl persistenter Verbindungen
|
||||
db_emaxlinks=Fehlende oder ungültige maximale Anzahl gesamter Verbindungen
|
||||
db_etimeout=Fehlendes oder ungültiges Verbindungstimeout
|
||||
db_ehost=Fehlender oder ungültiger Standard-Host des MySQL-Servers
|
||||
db_eport=Fehlender oder ungültiger Standard-Port des MySQL-Servers
|
||||
db_emaxlinks=Fehlende oder ungültige maximale Gesamtverbindungen
|
||||
db_etimeout=Fehlendes oder ungültiges Verbindungs-Timeout
|
||||
db_ehost=Fehlender oder ungültiger Standard-MySQL-Serverhost
|
||||
db_eport=Fehlender oder ungültiger Standard-MySQL-Serverport
|
||||
|
||||
session_title=Session-Optionen
|
||||
session_header=Optionen für PHP-Sitzungsverfolgung
|
||||
session_handler=Mechanismus zur Speicherung von Sitzungen
|
||||
session_handler=Mechanismus zur Sitzungsspeicherung
|
||||
session_files=Dateien
|
||||
session_mm=Im Speicher
|
||||
session_users=Benutzerdefiniert
|
||||
session_redis=Redis
|
||||
session_memcache=MemcacheD
|
||||
session_path=Verzeichnis für Sitzungsdateien
|
||||
session_cookies=Verwendung von Cookies zur Sitzungsverfolgung zulassen?
|
||||
session_only_cookies=Immer Cookies zur Sitzungsverfolgung verwenden?
|
||||
session_cookies=Verwendung von Cookies zur Sitzungserkennung erlauben?
|
||||
session_only_cookies=Immer Cookies zur Sitzungserkennung verwenden?
|
||||
session_life=Cookie-Lebensdauer
|
||||
session_forever=Unbegrenzt
|
||||
session_maxlife=Maximale Sitzungslebensdauer
|
||||
session_maxlife=Maximale Sitzungsdauer
|
||||
session_epath=Fehlendes oder ungültiges Verzeichnis für Sitzungsdateien
|
||||
session_elife=Fehlende oder ungültige Cookie-Lebensdauer
|
||||
session_emaxlife=Fehlende oder ungültige maximale Sitzungslebensdauer
|
||||
session_emaxlife=Fehlende oder ungültige maximale Sitzungsdauer
|
||||
|
||||
limits_title=Ressourcenlimits
|
||||
limits_title=Ressourcenbeschränkungen
|
||||
limits_header=Optionen für Speicher- und Übertragungsgrenzen
|
||||
limits_mem=Maximale Speicherzuweisung
|
||||
limits_mem=Maximaler Speicherverbrauch
|
||||
limits_post=Maximale HTTP-POST-Größe
|
||||
limits_upload=Maximale Datei-Upload-Größe
|
||||
limits_upload=Maximale Dateiupload-Größe
|
||||
limits_exec=Maximale Ausführungszeit
|
||||
limits_input=Maximale Eingabeparsing-Zeit
|
||||
limits_vars=Maximale Anzahl an Eingabevariablen
|
||||
limits_err=Fehler beim Speichern der Ressourcenlimits
|
||||
limits_emem=Fehlende oder ungültige maximale Speicherzuweisung
|
||||
limits_input=Maximale Zeit für Eingabeverarbeitung
|
||||
limits_vars=Maximale Anzahl von Eingabevariablen
|
||||
limits_err=Ressourcengrenzen konnten nicht gespeichert werden
|
||||
limits_emem=Fehlender oder ungültiger maximaler Speicherverbrauch
|
||||
limits_epost=Fehlende oder ungültige maximale HTTP-POST-Größe
|
||||
limits_eupload=Fehlende oder ungültige maximale Datei-Upload-Größe
|
||||
limits_eupload=Fehlende oder ungültige maximale Upload-Größe
|
||||
limits_eexec=Fehlende oder ungültige maximale Ausführungszeit
|
||||
limits_einput=Fehlende oder ungültige maximale Eingabeparsing-Zeit
|
||||
limits_evars=Fehlende oder ungültige maximale Anzahl an Eingabevariablen
|
||||
limits_einput=Fehlende oder ungültige maximale Zeit für Eingabeverarbeitung
|
||||
limits_evars=Fehlende oder ungültige maximale Anzahl von Eingabevariablen
|
||||
|
||||
errors_title=Fehlerprotokollierung
|
||||
errors_header=Anzeige- und Protokollierungsoptionen für Fehlermeldungen
|
||||
errors_display=Fehlermeldungen anzeigen?
|
||||
errors_log=Fehlermeldungen in das Protokoll schreiben?
|
||||
errors_log=Fehlermeldungen protokollieren?
|
||||
errors_bits=Anzuzeigende Fehlertypen
|
||||
errors_reporting=Ausdruck für Fehlertypen
|
||||
errors_E_ALL=Alle Fehler und Warnungen
|
||||
errors_E_ERROR=Schwerwiegende Laufzeitfehler
|
||||
errors_E_WARNING=Laufzeitwarnungen
|
||||
errors_E_PARSE=Syntaxfehler zur Kompilierzeit
|
||||
errors_E_NOTICE=Hinweise zur Laufzeit
|
||||
errors_E_CORE_ERROR=Schwerwiegende Fehler während des Startvorgangs
|
||||
errors_E_CORE_WARNING=Warnungen während des Startvorgangs
|
||||
errors_E_COMPILE_ERROR=Schwerwiegende Fehler zur Kompilierzeit
|
||||
errors_E_COMPILE_WARNING=Warnungen zur Kompilierzeit
|
||||
errors_E_USER_ERROR=Vom Benutzer generierte Fehlermeldung
|
||||
errors_E_USER_WARNING=Vom Benutzer generierte Warnmeldung
|
||||
errors_E_USER_NOTICE=Vom Benutzer generierte Hinweisnachricht
|
||||
errors_E_PARSE=Fehler beim Parsen zur Kompilierzeit
|
||||
errors_E_NOTICE=Laufzeit-Hinweise
|
||||
errors_E_CORE_ERROR=Schwerwiegende Fehler beim Start
|
||||
errors_E_CORE_WARNING=Warnungen beim Start
|
||||
errors_E_COMPILE_ERROR=Schwerwiegende Kompilierfehler
|
||||
errors_E_COMPILE_WARNING=Kompilierzeit-Warnungen
|
||||
errors_E_USER_ERROR=Benutzerdefinierte Fehlermeldung
|
||||
errors_E_USER_WARNING=Benutzerdefinierte Warnung
|
||||
errors_E_USER_NOTICE=Benutzerdefinierter Hinweis
|
||||
errors_ignore=Wiederholte Fehler ignorieren?
|
||||
errors_source=Quelle beim Prüfen auf Wiederholungen ignorieren?
|
||||
errors_maxlen=Maximale Größe protokollierter Fehler
|
||||
errors_file=Protokolldatei für Fehler
|
||||
errors_source=Quelltext bei Wiederholung ignorieren?
|
||||
errors_maxlen=Maximale Größe für protokollierte Fehler
|
||||
errors_file=Fehlerprotokolldatei
|
||||
errors_none=Keine
|
||||
errors_syslog=Syslog
|
||||
errors_other=Andere Datei $1
|
||||
errors_unlimited=Unbegrenzt
|
||||
errors_err=Fehler beim Speichern der Fehlerprotokollierung
|
||||
errors_err=Fehlerprotokollierung konnte nicht gespeichert werden
|
||||
errors_ereporting=Kein Ausdruck für Fehlertypen eingegeben
|
||||
errors_emaxlen=Fehlende oder ungültige maximale Größe protokollierter Fehler
|
||||
errors_efile=Fehlende Protokolldatei für Fehler
|
||||
errors_emaxlen=Fehlende oder ungültige maximale Protokollgröße
|
||||
errors_efile=Fehlende Fehlerprotokolldatei
|
||||
|
||||
misc_title=Weitere Einstellungen
|
||||
misc_header=Verschiedene zusätzliche PHP-Einstellungen
|
||||
misc_short=PHP-Skripte mit <? zulassen?
|
||||
misc_asp=Tags <% %> zulassen?
|
||||
misc_header=Sonstige PHP-Einstellungen
|
||||
misc_short=PHP-Skripte mit <? erlauben?
|
||||
misc_asp=<% %>-Tags erlauben?
|
||||
misc_zlib=Ausgabe mit zlib komprimieren?
|
||||
misc_flush=Ausgabe nach jedem Schreibvorgang leeren?
|
||||
misc_fopen=Öffnen von URLs als Dateien zulassen?
|
||||
misc_smtp=SMTP-Server für den E-Mail-Versand
|
||||
misc_port=SMTP-Port auf dem Server
|
||||
misc_fopen=Öffnen von URLs als Dateien erlauben?
|
||||
misc_smtp=SMTP-Server zum Versenden von E-Mails
|
||||
misc_port=SMTP-Port des Servers
|
||||
misc_none=Keine
|
||||
misc_sendmail=Pfad zum Befehl für den E-Mail-Versand
|
||||
misc_err=Fehler beim Speichern weiterer Einstellungen
|
||||
misc_sendmail=Pfad zum Befehl zum Versenden von E-Mails
|
||||
misc_err=Weitere Einstellungen konnten nicht gespeichert werden
|
||||
misc_esmtp=Fehlender oder nicht auflösbarer SMTP-Server
|
||||
misc_esmtp_port=Fehlender oder nicht-numerischer SMTP-Port
|
||||
misc_esendmail=Ungültiger Befehl für den E-Mail-Versand
|
||||
misc_esendmail2=Fehlender Befehl für den E-Mail-Versand
|
||||
misc_include=Öffnen von Remote-Includes zulassen?
|
||||
misc_esendmail=Ungültiger Befehl zum Versenden von E-Mails
|
||||
misc_esendmail2=Fehlender Befehl zum Versenden von E-Mails
|
||||
misc_include=Öffnen von entfernten Includes erlauben?
|
||||
misc_path=CGI Fix Path Info?
|
||||
misc_timezone=PHP-Zeitzone
|
||||
misc_charset=Standard-Zeichensatz
|
||||
misc_charset=Standardzeichensatz
|
||||
|
||||
disable_title=Deaktivierte Funktionen
|
||||
disable_header=Deaktivierte PHP-Funktionen und -Features
|
||||
@@ -160,36 +161,36 @@ disable_proc_open=proc_open (Befehl ausführen und Ein-/Ausgabe erfassen)
|
||||
disable_popen=popen (Pipe zu ausgeführtem Befehl öffnen)
|
||||
disable_curl_exec=curl_exec (URL-Download-Sitzung ausführen)
|
||||
disable_curl_multi_exec=curl_multi_exec (Mehrere URL-Download-Sitzungen ausführen)
|
||||
disable_parse_ini_file=parse_ini_file (PHP-INI-Datei einlesen)
|
||||
disable_show_source=show_source (Datei mit PHP-Syntaxhervorhebung ausgeben)
|
||||
disable_parse_ini_file=parse_ini_file (PHP-INI-Datei lesen)
|
||||
disable_show_source=show_source (Datei mit PHP-Syntaxhervorhebung anzeigen)
|
||||
disable_mail=mail (E-Mail senden)
|
||||
disable_leftover=Weitere Funktionen:
|
||||
disable_err=Fehler beim Speichern deaktivierter Funktionen
|
||||
disable_err=Deaktivierte Funktionen konnten nicht gespeichert werden
|
||||
disable_classes=Deaktivierte integrierte Klassen
|
||||
|
||||
mods_title=PHP-Erweiterungen
|
||||
mods_edir=PHP-Erweiterungsverzeichnis konnte nicht gefunden werden!
|
||||
mods_ecannot=Sie sind nicht berechtigt, aktivierte PHP-Erweiterungen zu bearbeiten.
|
||||
mods_desc=Auf dieser Seite können PHP-Version-$1-Erweiterungen systemweit für alle Benutzer:innen aktiviert oder deaktiviert werden.
|
||||
mods_edir=Verzeichnis für PHP-Erweiterungen konnte nicht gefunden werden!
|
||||
mods_ecannot=Sie dürfen aktivierte PHP-Erweiterungen nicht bearbeiten
|
||||
mods_desc=Auf dieser Seite können global PHP-Erweiterungen für Version $1 für alle Benutzer:innen auf diesem System aktiviert oder deaktiviert werden.
|
||||
mods_enabled=Aktiviert?
|
||||
mods_name=Erweiterungsname
|
||||
mods_file=Konfigurationsdatei
|
||||
mods_pkg=Paket
|
||||
mods_idesc=PHP-Erweiterungen, die auf diesem System noch nicht installiert sind, können aus den konfigurierten Softwarepaket-Repositories installiert werden.
|
||||
mods_idesc=PHP-Erweiterungen, die auf diesem System noch nicht installiert sind, können aus den konfigurierten Software-Repositories installiert werden.
|
||||
mods_newpkg=PHP-Erweiterung hinzufügen
|
||||
mods_install=Jetzt installieren
|
||||
mods_err=Fehler beim Speichern der PHP-Erweiterungen
|
||||
mods_egetver=PHP-Version für Konfigurationsdatei $1 konnte nicht ermittelt werden.
|
||||
mods_egetbin=PHP-Binärdatei für Konfigurationsdatei $1 konnte nicht ermittelt werden.
|
||||
mods_err=PHP-Erweiterungen konnten nicht gespeichert werden
|
||||
mods_egetver=PHP-Version für Konfigurationsdatei $1 konnte nicht ermittelt werden
|
||||
mods_egetbin=PHP-Binary für Konfigurationsdatei $1 konnte nicht ermittelt werden
|
||||
mods_return=PHP-Erweiterungen
|
||||
|
||||
imod_title=PHP-Modul installieren
|
||||
imod_err=Fehler bei der Installation des PHP-Moduls
|
||||
imod_emod=Kein PHP-Modul angegeben
|
||||
imod_err=PHP-Modul konnte nicht installiert werden
|
||||
imod_emod=Kein PHP-Modul eingegeben
|
||||
imod_alldoing=PHP-Modul $1 für PHP-Version $2 wird installiert ..
|
||||
imod_alreadygot=PHP-Modul $1 ist bereits installiert.
|
||||
imod_alldone=.. das PHP-Modul wurde erfolgreich aus Paket $1 installiert und steht nun zur Nutzung bereit.
|
||||
imod_allfailed=.. es konnten keine Softwarepakete für das angegebene PHP-Modul installiert werden, trotz $1 Versuchen.
|
||||
imod_alreadygot=PHP-Modul $1 ist bereits installiert
|
||||
imod_alldone=.. das PHP-Modul wurde erfolgreich aus Paket $1 installiert und steht nun zur Verfügung.
|
||||
imod_allfailed=.. kein Softwarepaket für das angegebene PHP-Modul konnte installiert werden, trotz Versuch über $1
|
||||
imod_missing=.. Installation abgeschlossen, aber das PHP-Modul wurde nicht erkannt.
|
||||
|
||||
log_manual=Datei $1 manuell bearbeitet
|
||||
@@ -198,17 +199,17 @@ log_dirs=Verzeichniseinstellungen in $1 geändert
|
||||
log_db=Datenbankeinstellungen in $1 geändert
|
||||
log_session=Session-Optionen in $1 geändert
|
||||
log_safe=Safe-Mode-Optionen in $1 geändert
|
||||
log_limits=Ressourcenlimits in $1 geändert
|
||||
log_limits=Ressourcengrenzen in $1 geändert
|
||||
log_errors=Fehlerprotokollierung in $1 geändert
|
||||
log_misc=Weitere Einstellungen in $1 geändert
|
||||
log_mods=Aktivierte Module in $1 aktualisiert
|
||||
log_imod=PHP-Modul $2 in $1 installiert
|
||||
|
||||
acl_global=Darf globale PHP-Konfiguration bearbeiten?
|
||||
acl_anyfile=Darf beliebige Dateien als PHP-Konfiguration bearbeiten?
|
||||
acl_manual=Darf Konfigurationsdateien manuell bearbeiten?
|
||||
acl_inis=Zusätzliche Konfigurationsdateien<br>(Im Format <i>Dateiname</i>=<i>Beschreibung</i>)
|
||||
acl_user=Darf Dateien als Benutzer:in lesen und schreiben
|
||||
acl_global=Globale PHP-Konfiguration bearbeiten dürfen?
|
||||
acl_anyfile=Beliebige Datei als PHP-Konfiguration bearbeiten dürfen?
|
||||
acl_manual=Konfigurationsdateien manuell bearbeiten dürfen?
|
||||
acl_inis=Zusätzliche Konfigurationsdateien<br>(im Format <i>Dateiname</i>=<i>Beschreibung</i>)
|
||||
acl_user=Dateien im Kontext von Benutzer:innen lesen und schreiben
|
||||
|
||||
opt_default=Standardwert: <tt>$1</tt>
|
||||
opt_default_unknown=Unbekannt
|
||||
|
||||
@@ -24,6 +24,7 @@ list_efile=File to edit must be an absolute path
|
||||
list_return=PHP configuration
|
||||
list_format_ini=INI format
|
||||
list_format_fpm=FPM format
|
||||
list_bin=PHP version $2 at $1
|
||||
|
||||
vars_title=PHP Variables
|
||||
vars_header=PHP variable creation and quoting options
|
||||
|
||||
@@ -13,7 +13,13 @@ if (@files == 1 && !$access{'anyfile'} && $access{'noconfig'}) {
|
||||
}
|
||||
$inidir = &get_php_ini_dir($in{'file'});
|
||||
|
||||
&ui_print_header("<tt>".&html_escape($in{'file'})."</tt>",
|
||||
my $bin = &get_php_ini_binary($in{'file'});
|
||||
my $ver = &get_php_binary_version($in{'file'});
|
||||
my $vmsg = "";
|
||||
if ($bin && $ver) {
|
||||
$vmsg = "<br>".&text('list_bin', "<tt>$bin</tt>", $ver);
|
||||
}
|
||||
&ui_print_header("<tt>".&html_escape($in{'file'})."</tt>".$vmsg,
|
||||
$text{'list_title'}, "", undef, 0, $onefile);
|
||||
|
||||
@pages = ( "vars", "dirs", "db", "session", "limits",
|
||||
|
||||
@@ -342,7 +342,8 @@ if (&foreign_check("virtual-server")) {
|
||||
# RHEL and derivatives Debian/Ubuntu
|
||||
if ($file =~ /php(\d+)/ || $file =~ /php\/([\d\.]+)/) {
|
||||
$ver = $1;
|
||||
my $binary = &has_command("php$ver");
|
||||
my $binary = &has_command("php$ver") ||
|
||||
&has_command("php$ver-cgi");
|
||||
return $binary if ($binary);
|
||||
}
|
||||
|
||||
@@ -352,7 +353,9 @@ if ($file =~ /^php.*?([\d\.]+)$/) {
|
||||
my $nodot = $ver;
|
||||
$nodot =~ s/\.//g;
|
||||
my $binary = &has_command("php$ver") ||
|
||||
&has_command("php$nodot");
|
||||
&has_command("php$nodot") ||
|
||||
&has_command("php$ver-cgi") ||
|
||||
&has_command("php$nodot-cgi");
|
||||
return $binary if ($binary);
|
||||
}
|
||||
|
||||
|
||||
@@ -7,7 +7,7 @@ require 'proc-lib.pl';
|
||||
sub syslog_getlogs
|
||||
{
|
||||
if ($gconfig{'os_type'} =~ /-linux$/) {
|
||||
return ( { 'cmd' => "dmesg",
|
||||
return ( { 'cmd' => "dmesg -T",
|
||||
'desc' => $text{'syslog_dmesg'},
|
||||
'active' => 1, } );
|
||||
}
|
||||
|
||||
@@ -1721,8 +1721,6 @@ of the subtext parameter :
|
||||
|
||||
=item below - HTML to be displayed below the title. Typically this is used for application or server version information.
|
||||
|
||||
|
||||
|
||||
=cut
|
||||
sub ui_print_header
|
||||
{
|
||||
|
||||
@@ -4058,7 +4058,7 @@ return "<input name='$_[0]' size=13 value=\"$_[1]\"> ".
|
||||
&group_chooser_button($_[0], 0, $_[2] || 0)."\n";
|
||||
}
|
||||
|
||||
=head2 hlink(text, page, [module], [width], [height])
|
||||
=head2 hlink(text, page, [module], [width], [height], [tmpl])
|
||||
|
||||
Returns HTML for a link that when clicked on pops up a window for a Webmin
|
||||
help page. The parameters are :
|
||||
@@ -4073,19 +4073,23 @@ help page. The parameters are :
|
||||
|
||||
=item height - Height of the help popup window. Defaults to 400 pixels.
|
||||
|
||||
=item tmpl - Hash ref of template variables to substitute in the help page.
|
||||
|
||||
The actual help pages are in each module's help sub-directory, in files with
|
||||
.html extensions.
|
||||
|
||||
=cut
|
||||
sub hlink
|
||||
{
|
||||
my ($txt, $page, $mod, $width, $height, $tmpl) = @_;
|
||||
$mod ||= &get_module_name();
|
||||
if (defined(&theme_hlink)) {
|
||||
return &theme_hlink(@_);
|
||||
}
|
||||
my $mod = $_[2] ? $_[2] : &get_module_name();
|
||||
my $width = $_[3] || $tconfig{'help_width'} || $gconfig{'help_width'} || 600;
|
||||
my $height = $_[4] || $tconfig{'help_height'} || $gconfig{'help_height'} || 400;
|
||||
return "<a onClick='window.open(\"@{[&get_webprefix()]}/help.cgi/$mod/$_[1]\", \"help\", \"toolbar=no,menubar=no,scrollbars=yes,width=$width,height=$height,resizable=yes\"); return false' href=\"@{[&get_webprefix()]}/help.cgi/$mod/$_[1]\">$_[0]</a>";
|
||||
$width ||= $tconfig{'help_width'} || $gconfig{'help_width'} || 600;
|
||||
$height ||= $tconfig{'help_height'} || $gconfig{'help_height'} || 400;
|
||||
my $params = $tmpl ? "?".join("&", map { "tmpl_".&urlize($_)."=".&urlize($tmpl->{$_}) } keys %$tmpl) : "";
|
||||
return "<a onClick='window.open(\"@{[&get_webprefix()]}/help.cgi/$mod/$page$params\", \"help\", \"toolbar=no,menubar=no,scrollbars=yes,width=$width,height=$height,resizable=yes\"); return false' href=\"@{[&get_webprefix()]}/help.cgi/$mod/$page$params\">$txt</a>";
|
||||
}
|
||||
|
||||
=head2 user_chooser_button(field, multiple, [form])
|
||||
@@ -12966,47 +12970,60 @@ for(my $i=0; $i<@sp1 || $i<@sp2; $i++) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
=head2 convert_to_json(data, [pretty])
|
||||
=head2 convert_to_json(data, [pretty], [raw-utf8])
|
||||
|
||||
Converts the given Perl data structure to encoded binary string
|
||||
|
||||
=item data parameter is a hash/array reference
|
||||
=item if the output should be prettified
|
||||
=item raw-utf8 parameter, if set to 1, encodes data using UTF-8
|
||||
|
||||
=cut
|
||||
sub convert_to_json
|
||||
{
|
||||
eval "use JSON::PP";
|
||||
if (!$@) {
|
||||
my ($data, $pretty) = @_;
|
||||
my $json = JSON::PP->new;
|
||||
$pretty = 0 if (!$pretty);
|
||||
$json = $json->pretty($pretty);
|
||||
$data ||= {};
|
||||
return $json->latin1->encode($data);
|
||||
my ($data, $pretty, $raw_utf8) = @_;
|
||||
my $json;
|
||||
|
||||
if (eval { require JSON::XS }) {
|
||||
$json = JSON::XS->new;
|
||||
}
|
||||
elsif (eval { require JSON::PP }) {
|
||||
$json = JSON::PP->new;
|
||||
}
|
||||
else {
|
||||
error("The JSON::PP Perl module is not available on your system : $@");
|
||||
error("Neither JSON::XS nor JSON::PP Perl module is available on your system");
|
||||
}
|
||||
$json->pretty(!!$pretty);
|
||||
$data ||= {};
|
||||
return $raw_utf8 ? $json->utf8->encode($data) : $json->latin1->encode($data);
|
||||
}
|
||||
|
||||
=head2 convert_from_json(data)
|
||||
=head2 convert_from_json(data, [raw-utf8])
|
||||
|
||||
Parses given JSON string
|
||||
|
||||
=item data parameter is encoded JSON string
|
||||
|
||||
=item raw-utf8 parameter, if set, treats the input as raw UTF-8
|
||||
|
||||
=cut
|
||||
sub convert_from_json
|
||||
{
|
||||
eval "use JSON::PP";
|
||||
if (!$@) {
|
||||
my ($json_text) = @_;
|
||||
return JSON::PP->new->utf8->decode($json_text);
|
||||
my ($json_text, $raw_utf8) = @_;
|
||||
|
||||
my $json;
|
||||
if (eval { require JSON::XS }) {
|
||||
$json = JSON::XS->new;
|
||||
}
|
||||
elsif (eval { require JSON::PP }) {
|
||||
$json = JSON::PP->new;
|
||||
}
|
||||
else {
|
||||
error("The JSON::PP Perl module is not available on your system : $@");
|
||||
error("Neither JSON::XS nor JSON::PP Perl module is available on your system");
|
||||
}
|
||||
|
||||
$json = $json->utf8 if (!$raw_utf8);
|
||||
return $json->decode($json_text);
|
||||
}
|
||||
|
||||
=head2 print_json(data)
|
||||
|
||||
@@ -64,10 +64,9 @@ foreach my $os (@eol_oses) {
|
||||
push(@eol_oses_data, @$fdata_json);
|
||||
}
|
||||
my $eol_oses_data = &convert_to_json(\@eol_oses_data);
|
||||
&backquote_command("echo -n '$eol_oses_data' > $eol_cache_file 2>&1 </dev/null");
|
||||
if ($?) {
|
||||
die("Could not write OS EOL data file : $?");
|
||||
}
|
||||
open(my $fh, '>', $eol_cache_file) or die("Could not open OS EOL data file for writing: $!");
|
||||
print $fh $eol_oses_data;
|
||||
close($fh) or die("Could not close OS EOL data file: $!");
|
||||
}
|
||||
|
||||
# eol_get_os_data()
|
||||
|
||||
Reference in New Issue
Block a user