Compare commits

..

66 Commits

Author SHA1 Message Date
Ilia Ross
4333435739 Fix indent 2023-09-17 13:44:03 +03:00
Ilia Ross
f01197df71 Add die handler that stores the error from eval message 2023-09-17 13:42:30 +03:00
Jamie Cameron
cb41eff450 Fix decompression of folders 2023-09-16 18:44:42 -07:00
Jamie Cameron
352326f574 Return decompression status 2023-09-16 18:44:16 -07:00
Jamie Cameron
410fd07287 Merge branch 'master' of github.com:webmin/webmin 2023-09-16 09:29:49 -07:00
Jamie Cameron
faededeb77 Fix variable name 2023-09-16 09:29:42 -07:00
Ilia Ross
f0f8dc2850 Fix to correctly escape content in editor mode
https://forum.virtualmin.com/t/webmins-file-managers-editor-converting-html-special-characters-making-the-next-save-detrimental/122606/18?u=ilia

605a32f87d
2023-09-16 16:57:08 +03:00
Jamie Cameron
184e8d627d Deal with case where all configs are under /opt 2023-09-15 20:52:23 -07:00
Jamie Cameron
fd2b7c1fc7 Merge pull request #2002 from webmin/dev/protocols-save-to-global
Fix to save protocols to global config file
2023-09-15 20:50:34 -07:00
Jamie Cameron
98192ca099 Fix variable name 2023-09-15 18:54:43 -07:00
Jamie Cameron
05a93a5e3d Merge branch 'master' of github.com:webmin/webmin 2023-09-15 18:53:00 -07:00
Jamie Cameron
50a2820a97 remove typo 2023-09-15 18:52:54 -07:00
Ilia Ross
87f2640ee3 Update CHANGELOG.md 2023-09-16 00:21:59 +03:00
Ilia Ross
4180e3d3ee Fix to always include vendor_perl for 2FA to work [build]
https://forum.virtualmin.com/t/added-two-factor-authentication-i-think-last-access-but-not-100-anyway-2fa-is-failing-about-authen-oath/122538/60?u=ilia
2023-09-16 00:03:45 +03:00
Ilia Ross
b7d7ea5d8d Fix to simplify code 2023-09-15 22:34:32 +03:00
Ilia Ross
4e09cf0b55 Fix sent folder name ; update translations 2023-09-15 21:14:43 +03:00
Ilia Ross
3f0ab3fb92 Fix missing line increment 2023-09-15 19:21:08 +03:00
Ilia Ross
836647525a Fix to save protocols to global config file 2023-09-15 17:50:39 +03:00
Ilia Ross
8b68eac561 Fix how errors are handled when $main::error_last_eval is set
Note: If `$main::error_last_eval` was set, then display full error message using HTML accordion, otherwise display a bubble showing a file name and line which failed
2023-09-15 15:37:33 +03:00
Ilia Ross
0503299773 Fix to correctly set last caller (file:line) in error 2023-09-15 14:16:58 +03:00
Jamie Cameron
2e8000d191 Show full error if Authen::OATH cannot be loaded 2023-09-14 18:50:39 -07:00
Jamie Cameron
65ffcea0db Merge branch 'master' of github.com:webmin/webmin 2023-09-14 18:47:44 -07:00
Jamie Cameron
45845b8ca6 Wait a bit longer for DNS propogation 2023-09-14 17:07:04 -07:00
Ilia Ross
fead9b108d Fix to print errors to STDERR nicely 2023-09-15 01:13:54 +03:00
Ilia Ross
db1c9679ba Fix to revert previous patch 2023-09-15 00:40:16 +03:00
Ilia Ross
d753fa7a8d Fix to actually print the error 2023-09-15 00:11:06 +03:00
Ilia Ross
f6d7e05b14 Fix to remove unused config title 2023-09-13 22:53:32 +03:00
Ilia Ross
a9288423cc Fix to remove unused config title 2023-09-12 16:08:25 +03:00
Ilia Ross
ac9e54afba Update CHANGELOG.md for 2.103 2023-09-11 21:34:42 +03:00
Jamie Cameron
f7cf6419d2 Use taqbs 2023-09-06 16:23:40 -07:00
Jamie Cameron
a9097cbb42 Also support passing in the key ID and hmac for non-standard servers 2023-09-05 20:28:21 -07:00
Jamie Cameron
6f84ca1c9d Merge branch 'master' of github.com:webmin/webmin 2023-09-04 19:09:58 -07:00
Ilia Ross
dff70c3349 Fix Postfix check options page 2023-09-04 22:38:47 +03:00
Jamie Cameron
fe8f3f8494 Use standard buffer size 2023-09-04 11:13:45 -07:00
Ilia Ross
f5f3510a59 Fix default download buffer (once more) as 1 MiB should be just fine 2023-09-04 14:09:55 +03:00
Ilia Ross
1e375b4740 Fix indent one more time
c573496914
2023-09-04 13:14:31 +03:00
Jamie Cameron
c573496914 Fix indenting 2023-09-03 22:54:28 -07:00
Jamie Cameron
73e731722d Use packages with new key for upgrading 2023-09-02 21:44:29 -07:00
Jamie Cameron
6186376b6b Use packages with new key for upgrading 2023-09-02 21:43:58 -07:00
Ilia Ross
31e0151804 Fix to use help UI lib for showing explanatory message 2023-09-02 16:11:02 +03:00
Ilia Ross
872ca66b07 Add UI option to control network buffer size for downloads 2023-09-02 15:49:47 +03:00
Ilia Ross
088aba8cec Fix to use safer default buffer 2023-09-02 15:19:11 +03:00
Ilia Ross
99b8959559 Fix to send a file in chunks
https://forum.virtualmin.com/t/upgrade-2-102-killed-download-from-server-feature/122413/7?u=ilia
2023-09-02 15:18:49 +03:00
Jamie Cameron
94f23e63e7 Hide ps command in output 2023-08-31 22:44:44 -07:00
Jamie Cameron
7c449cf4a3 Merge branch 'master' of github.com:webmin/webmin 2023-08-31 22:40:06 -07:00
Jamie Cameron
2db507e5e8 Use proper UI functions for CPU and RAM modes 2023-08-31 22:39:45 -07:00
Ilia Ross
bdeb908df0 Fix to add --no-reuse-key as well
https://forum.virtualmin.com/t/unable-to-switch-ssl-certificate-into-elliptic-curve/122383?u=ilia
2023-08-31 17:15:24 +03:00
Jamie Cameron
a133cdfdef Also uncompress sub-folders 2023-08-30 22:54:25 -07:00
Jamie Cameron
fe2656acd8 Add flag for the key name 2023-08-30 20:15:41 -07:00
Jamie Cameron
64a44a667e Merge branch 'master' of github.com:webmin/webmin 2023-08-30 20:10:39 -07:00
Jamie Cameron
59cef9a04f Add flag for the default GPG key 2023-08-30 20:10:01 -07:00
Ilia Ross
af629fe3cd Fix code indent 2023-08-28 16:08:28 +03:00
Ilia Ross
80368e2a04 Merge branch 'master' of github.com:webmin/webmin 2023-08-28 16:05:39 +03:00
Ilia Ross
5237ae8ea2 Fix bug when backend isn't saved correctly #1992 2023-08-28 16:05:33 +03:00
Jamie Cameron
54ad4f7f74 Work on function to uncompress mail folders 2023-08-27 21:54:18 -07:00
Jamie Cameron
0dd94f5957 Merge branch 'master' of github.com:webmin/webmin 2023-08-26 18:51:08 -07:00
Jamie Cameron
5b2b3f0790 Add flag for ACME service URL 2023-08-26 18:51:01 -07:00
Jamie Cameron
ac05a0c43a Merge pull request #1991 from webmin/dev/cache-system-hostname-using-state
Fix to use a new way for clearing hostname cache
2023-08-26 15:34:26 -07:00
Ilia Ross
18f3e1273f Fix to use a new param to clear cache 2023-08-27 01:27:05 +03:00
Ilia Ross
710829c16a Fix to send headers unless already done in var_dump 2023-08-26 21:45:44 +03:00
Ilia Ross
8ced23d027 Fix to use a new way for clearing hostname cache 2023-08-26 21:26:03 +03:00
Ilia Ross
d834bb6da0 Fix to use state instead of globals in get_system_hostname sub 2023-08-26 21:17:57 +03:00
Jamie Cameron
cc560b00e5 Merge pull request #1990 from webmin/dev/hostname-detection-with-hostnamectl
Add hostname detection using `hostnamectl` command
2023-08-25 13:59:47 -07:00
Jamie Cameron
3e4668715a Merge branch 'master' of github.com:webmin/webmin 2023-08-25 11:25:51 -07:00
Jamie Cameron
053e8dcf22 Remove double HTML escape https://github.com/webmin/usermin/issues/105 2023-08-25 11:25:25 -07:00
Ilia Ross
2d7e57c7e1 Add hostname detection using hostnamectl command 2023-08-25 18:59:03 +03:00
110 changed files with 390 additions and 185 deletions

View File

@@ -1,5 +1,14 @@
## Changelog
#### 2.103 (September 18, 2023)
* Add support for hostname detection using `hostnamectl` command
* Add support for other ACME services
* Fix to correctly switch key hash type with ACME services
* Fix bug when `backend` wasn't saved correctly in Fail2Ban module [#1992](https://github.com/webmin/webmin/issues/1992)
* Fix large files download in Upload and Download module
* Fix Google Authentication on RHEL systems derivatives
* Update the Authentic theme to the latest version with various fixes and improvements
#### 2.102 (August 23, 2023)
* Add support for Amazon Linux 2023
* Fix a bug in Network Configuration module when parsing network size [sourceforge.net/discussion#55377]( https://sourceforge.net/p/webadmin/discussion/55377/thread/78e5aa05f3)

View File

@@ -19,6 +19,10 @@ while(@ARGV) {
shift(@ARGV);
$createsig = 1;
}
elsif ($ARGV[0] eq "--key") {
shift(@ARGV);
$keyname = shift(@ARGV);
}
elsif ($ARGV[0] eq "--exclude") {
shift(@ARGV);
push(@exclude, shift(@ARGV));
@@ -98,7 +102,8 @@ if ($file =~ /^(.*)\.gz$/i) {
}
if ($createsig) {
system("rm -f $file-sig.asc");
system("gpg --armor --output $file-sig.asc --detach-sig $file");
system("gpg ".($keyname ? " --default-key $keyname" : "").
" --armor --output $file-sig.asc --detach-sig $file");
}
# read_file(file, &assoc, [&order], [lowercase])

View File

@@ -216,6 +216,11 @@ return wantarray ? @rv : $rv[0];
sub save_directive
{
local ($conf, $name, $value, $sname, $svalue) = @_;
$newconf = [ grep { $_->{'file'} !~ /^\/usr\/share\/dovecot/ &&
$_->{'file'} !~ /^\/opt/ } @$conf ];
if (@$newconf) {
$conf = $newconf;
}
local $dir;
if (ref($name)) {
# Old directive given
@@ -577,5 +582,4 @@ else {
}
1;
r

View File

@@ -1,4 +1,3 @@
line2=System configuration,11
exports_file=Exported filesystems file,0
apply_cmd=Command to apply configuration,3,None
restart_command=Command to restart export server,0

View File

@@ -51,9 +51,11 @@ print &ui_table_row($text{'jail_ignoreip'},
my $backend = &find_value("backend", $jail);
print &ui_table_row($text{'jail_backend'},
&ui_select("backend", $backend || "auto",
[ [ "auto", $text{'jail_auto'} ],
[ "gamin", $text{'jail_gamin'} ],
[ "polling", $text{'jail_polling'} ] ]));
[ [ "auto", $text{'jail_auto'} ],
[ "systemd", $text{'jail_systemd'} ],
[ "polling", $text{'jail_polling'} ],
[ "gamin", $text{'jail_gamin'} ],
[ "pyinotify", $text{'jail_pyinotify'} ] ]));
# Email destination
my $destemail = &find_value("destemail", $jail);

View File

@@ -114,8 +114,10 @@ jail_efindtime=Delay between matches must be a number greater than zero
jail_ebantime=Time to ban an IP must be a number greater than zero
jail_backend=Check for log file updates using
jail_auto=Decide automatically
jail_gamin=Gamin file alteration monitor
jail_polling=Background polling
jail_systemd=systemd
jail_polling=polling
jail_gamin=gamin
jail_pyinotify=pyinotify
jail_destemail=Default notification email
jail_none=None set
jail_banaction=Default action to apply

View File

@@ -120,7 +120,7 @@ if (@filters || &get_global_spamassassin()) {
# Work out nice condition and action descriptions
local $cond;
($cond, $lastalways) = &describe_condition($f);
$cond = &ui_link("edit.cgi?idx=$f->{'index'}", &html_escape($cond));
$cond = &ui_link("edit.cgi?idx=$f->{'index'}", $cond);
local $action = &describe_action($f, \@folders);
# Create mover links

View File

@@ -2459,10 +2459,8 @@ my $systemd_local_conf = "/etc/systemd/system";
my $systemd_unit_dir1 = "/usr/lib/systemd/system";
my $systemd_unit_dir2 = "/lib/systemd/system";
if ($name) {
foreach my $p (
$systemd_local_conf,
$systemd_unit_dir1,
$systemd_unit_dir2) {
foreach my $p ($systemd_local_conf, $systemd_unit_dir1,
$systemd_unit_dir2) {
if (-r "$p/$name.service" ||
-r "$p/$name" ||
-r "$p/$name.target" ||

View File

@@ -983,7 +983,7 @@ elsif ($mode == 3) {
{ 'headers' => [ [ 'Content-type', 'application/zip' ],
[ 'Content-Transfer-Encoding', 'base64' ] ],
'data' => $data } ] };
$main::errors_must_die = 1;
$main::error_must_die = 1;
if (&foreign_check("mailboxes")) {
&foreign_require("mailboxes", "mailboxes-lib.pl");
eval { &mailboxes::send_mail($mail); };

View File

@@ -111,7 +111,7 @@ elsif ($mode == 3) {
'data' => $body },
{ 'headers' => [ [ 'Content-type', 'text/plain' ] ],
'data' => $data } ] };
$main::errors_must_die = 1;
$main::error_must_die = 1;
if (&foreign_check("mailboxes")) {
&foreign_require("mailboxes", "mailboxes-lib.pl");
eval { &mailboxes::send_mail($mail); };

View File

@@ -392,4 +392,6 @@ file_truncated_message_tail=fetched ending $1 of data, truncated $2 out of $3
defcert_error=Default $1 bundled SSL certificate is being used. It is highly advised to update default <tt>$2</tt> certificate before proceeding with login.
main_error_details=Error details
__norefs=1

View File

@@ -3006,6 +3006,41 @@ if ($switched) {
return $rv;
}
# is_gzipped_file(file)
# Returns 1 if a file is gzip compressed
sub is_gzipped_file
{
my ($file) = @_;
my $fh;
my $rv = open($fh, "<", $file);
return 0 if (!$rv);
my $two;
read($fh, $two, 2);
close($fh);
return $two eq "\037\213" ? 1 : 0;
}
# gunzip_mail_file(file)
# Uncompress a mail file in place
sub gunzip_mail_file
{
my ($file) = @_;
my $switched = &switch_to_mail_user();
my $outfile = $file.".$$.uncompressed";
my $ex = system("gunzip -c ".quotemeta($file)."> ".quotemeta($outfile)." 2>/dev/null");
if ($ex) {
unlink($outfile);
}
else {
rename($outfile, $file);
}
if ($switched) {
$) = 0;
$> = 0;
}
return !$ex;
}
# create_as_mail_user(fh, file)
# Creates a new file, but ensures that it does not yet exist first, and then
# sets the ownership to the mail user

View File

@@ -1543,6 +1543,33 @@ if ($src->{'sortable'}) {
}
}
# mailbox_uncompress_folder(&folder)
# If a folder or it's files are gzipped, uncompress them in place
sub mailbox_uncompress_folder
{
my ($folder) = @_;
if ($folder->{'type'} == 1 || $folder->{'type'} == 3) {
my @files = $folder->{'type'} == 1 ?
&get_maildir_files($folder->{'file'}) :
&get_mhdir_files($folder->{'file'});
if ($folder->{'type'} == 1) {
foreach my $sf (glob("$folder->{'file'}/.??*")) {
push(@files, &get_maildir_files($sf));
}
}
foreach my $f (@files) {
if (&is_gzipped_file($f)) {
&gunzip_mail_file($f);
}
}
}
elsif ($folder->{'type'} == 0) {
if (&is_gzipped_file($folder->{'file'})) {
&gunzip_mail_file($folder->{'file'});
}
}
}
# mailbox_copy_mail(&source, &dest, mail, ...)
# Copy mail from one folder to another
sub mailbox_copy_mail
@@ -3366,7 +3393,10 @@ local $dmail = {
[ 'Content-Transfer-Encoding' => '7bit' ] ],
'data' => $dsn }
] };
eval { local $main::errors_must_die = 1; &send_mail($dmail); };
eval {
local $main::error_must_die = 1;
&send_mail($dmail);
};
return $to;
}

View File

@@ -320,7 +320,7 @@ search_elatest=Ontbrekende of ongeldige aantal boodskappe om te soek
search_withstatus=, met status $1
folder_inbox=posbus
folder_sent=Gestuurde pos
folder_sent=Gestuur
folder_drafts=Drafts
folder_trash=asblik

View File

@@ -320,7 +320,7 @@ search_elatest=عدد الرسائل المفقودة أو غير الصحيحة
search_withstatus=, with status $1
folder_inbox=صندوق الوارد
folder_sent=البريد المرسل
folder_sent=مرسل
folder_drafts=المسودات
folder_trash=قمامة، يدمر، يهدم

View File

@@ -320,7 +320,7 @@ search_elatest=Адсутнічае альбо недапушчальная ко
search_withstatus=, са статусам $1
folder_inbox=Уваходныя
folder_sent=Даслана пошта
folder_sent=Адпраўлена
folder_drafts=Чарнавікі
folder_trash=Хлам

View File

@@ -320,7 +320,7 @@ search_elatest=Липсващ или невалиден брой съобщен
search_withstatus=, със статус $1
folder_inbox=Входящи
folder_sent=Изпратена поща
folder_sent=Изпратено
folder_drafts=дама
folder_trash=боклук

View File

@@ -319,7 +319,6 @@ search_elatest=Hi falta el nombre de missatges a buscar o bé és invàlid
search_withstatus=, amb estat $1
folder_inbox=Entrada
folder_sent=Enviat
folder_drafts=Drafts
folder_trash=Trash

View File

@@ -1,5 +1,7 @@
index_return=llista d'usuaris
folder_sent=Enviat
editor_heading=Encapçalament
editor_paragraph=Paràgraf
editor_fontfamily_default=Per defecte

View File

@@ -295,7 +295,6 @@ search_elatest=Chybějící nebo nevhodný počet zpráv k prohledání
search_withstatus=, se stavem $1
folder_inbox=Doručená pošta
folder_sent=Odesláné pošta
folder_drafts=Koncepty
folder_trash=Koš

View File

@@ -29,6 +29,8 @@ reply_html1=Vytvořte HTML
search_msg6=Výsledky hledání $1 v poli $2
search_attach=Musí mít přílohy?
folder_sent=Odesláno
left_mail=Pošta
left_search=Vyhledávání:
left_folders=Správa složek

View File

@@ -320,7 +320,7 @@ search_elatest=Manglende eller ugyldigt antal meddelelser til søgning
search_withstatus=, med status $1
folder_inbox=Indbakke
folder_sent=Sendt post
folder_sent=Sendt
folder_drafts=Kladder
folder_trash=Affald

View File

@@ -319,7 +319,6 @@ search_elatest=Fehlende oder ungültige Anzahl an Mails für die Suche
search_withstatus=, mit Status $1
folder_inbox=Posteingang
folder_sent=Versendete Mail
folder_drafts=Entwürfe
folder_trash=Papierkorb

View File

@@ -1,5 +1,7 @@
index_return=Benutzerliste
folder_sent=Gesendet
editor_heading=Überschrift
editor_paragraph=Absatz
editor_fontfamily_default=Standard

View File

@@ -268,7 +268,6 @@ search_elatest=Λείπει ή είναι άκυρος ο αριθμός των
search_withstatus=, με κατάσταση $1
folder_inbox=Εισερχόμενα
folder_sent=Απεσταλμένα
folder_drafts=Πρόχειρα
folder_trash=Απορρίματα

View File

@@ -60,6 +60,8 @@ confirm_warnallf=Είστε βέβαιοι ότι θέλετε να διαγρά
search_msg6=Αποτελέσματα αναζήτησης για $1 στο πεδίο $2
search_attach=Πρέπει να έχετε συνημμένα;
folder_sent=Απεσταλμένα
sform_header=Προηγμένες επιλογές αναζήτησης ηλεκτρονικού ταχυδρομείου
sform_andmode=Λειτουργία κριτηρίων
sform_folder2=Αναζήτηση σε φάκελο (-ες)

View File

@@ -320,7 +320,7 @@ search_elatest=Missing or invalid number of messages to search
search_withstatus=, with status $1
folder_inbox=Inbox
folder_sent=Sent mail
folder_sent=Sent
folder_drafts=Drafts
folder_trash=Trash

View File

@@ -238,7 +238,7 @@ search_elatest=Número de mensajes faltantes o no válidos para buscar
search_withstatus=, con estado $1
folder_inbox=Bandeja de entrada
folder_sent=Correo enviado
folder_sent=Enviado
folder_drafts=Borradores
folder_trash=Basura

View File

@@ -320,7 +320,7 @@ search_elatest=Bilatu beharreko mezu kopuru falta edo baliogabea
search_withstatus=, egoera $1 egoerarekin
folder_inbox=Sarrerako ontzia
folder_sent=Bidalitako mezuak
folder_sent=Bidali
folder_drafts=Turkiarrak
folder_trash=Trash

View File

@@ -320,7 +320,7 @@ search_elatest=تعداد پیام های نامعتبر یا نامعتبر ا
search_withstatus=, with status $1
folder_inbox=صندوق ورودی
folder_sent=نامه ارسال شده
folder_sent=ارسال شد
folder_drafts=پیش نویس
folder_trash=زباله ها

View File

@@ -205,7 +205,6 @@ search_nolatest=Kaikki kansiossa
search_latestnum=Vain viimeisimmät
search_elatest=Puuttuva tai virheellinen määrä etsittäviä viestejä
folder_sent=Lähetetyt
folder_drafts=Luonnokset
folder_trash=Roskakori

View File

@@ -125,6 +125,7 @@ search_onestatus=Vain tila
search_withstatus=, tila $1
folder_inbox=Saapuneet
folder_sent=Lähetetty
detach_err=Tiedoston irrottaminen epäonnistui
detach_edir=Ei tiedostoa tai hakemistoa tallennettavaksi syötettyyn

View File

@@ -320,7 +320,6 @@ search_elatest=nombre de messages à rechercher manquant ou invalide
search_withstatus=, avec statut $1
folder_inbox=Boite de Réception
folder_sent=Courriers Envoyés
folder_drafts=Brouillons
folder_trash=Corbeille

View File

@@ -1,3 +1,5 @@
folder_sent=Envoyé
editor_heading=Titre
editor_paragraph=Paragraphe
editor_fontfamily_default=Défaut

View File

@@ -320,7 +320,7 @@ search_elatest=מספר הודעות חסר או לא חוקי לחיפוש
search_withstatus=, with status $1
folder_inbox=תיבת הדואר הנכנס
folder_sent=שלח מייל
folder_sent=נשלח
folder_drafts=טיוטות
folder_trash=זבל

View File

@@ -320,7 +320,7 @@ search_elatest=Nedostaje ili nevažeći broj poruka za pretraživanje
search_withstatus=, sa statusom $1
folder_inbox=Ulazni spremnik
folder_sent=Poslana pošta
folder_sent=Poslano
folder_drafts=nacrti
folder_trash=Otpad

View File

@@ -147,7 +147,6 @@ search_attach=Szeretne csatolmányokat?
search_allstatus=Minden
folder_inbox=Bejövő levelek
folder_sent=Elküldött levelek
folder_drafts=Piszkozatok
folder_trash=Kuka

View File

@@ -181,6 +181,8 @@ search_latestnum=Csak a legújabb
search_elatest=Hiányzik vagy érvénytelen a keresett üzenetek száma
search_withstatus=, állapotával $1
folder_sent=Küldött
detach_err=A fájl leválasztása nem sikerült
detach_edir=Nincs fájl vagy könyvtár, amelyet menteni kellene a megadott fájlba
detach_eopen=A $1 megnyitása nem sikerült : $2

View File

@@ -316,7 +316,6 @@ search_elatest=Numero di messaggi da cercare mancante o non valido
search_withstatus=, con stato $1
folder_inbox=Posta in arrivo
folder_sent=Posta inviata
folder_drafts=Bozze
folder_trash=Cestino

View File

@@ -6,6 +6,8 @@ view_nobody=Questo messaggio non ha contenuti del corpo.
search_msg6=Risultati della ricerca per $1 nel campo $2
folder_sent=Inviato
left_mail=posta
left_search=Ricerca:
left_folders=Gestisci cartelle

View File

@@ -295,7 +295,6 @@ search_elatest=Missing or invalid number of messages to search
search_withstatus=, with status $1
folder_inbox=Inbox
folder_sent=Sent mail
folder_drafts=Drafts
folder_trash=Trash

View File

@@ -29,6 +29,8 @@ reply_html1=HTMLを作成
search_msg6=$2フィールドの$1の検索結果
search_attach=添付ファイルが必要ですか?
folder_sent=送信済み
left_mail=郵便物
left_search=探す:
left_folders=フォルダーを管理する

View File

@@ -285,7 +285,6 @@ search_elatest=검색 메시지수가 지정되지 않았거나 유효하지 않
search_withstatus=, 상태 $1로
folder_inbox=인박스
folder_sent=메일 보내기
folder_drafts=초안
folder_trash=휴지통

View File

@@ -40,6 +40,8 @@ search_ewhat=입력 된 행과 일치하는 텍스트가 없습니다 $1
search_msg6=$2 필드에서 $1에 대한 검색 결과
search_attach=첨부 파일이 있어야합니까?
folder_sent=전송된
sform_andmode=기준 모드
left_mail=우편

View File

@@ -320,7 +320,7 @@ search_elatest=Trūksta arba netinkamas ieškomų pranešimų skaičius
search_withstatus=, su būsena $1
folder_inbox=Pašto dėžutę
folder_sent=Išsiųsti laiškai
folder_sent=Išsiųsta
folder_drafts=Juodraščiai
folder_trash=Šiukšlių dėžė

View File

@@ -320,7 +320,7 @@ search_elatest=Trūkst vai nav derīgs meklējamo ziņojumu skaits
search_withstatus=, ar statusu $1
folder_inbox=Iesūtne
folder_sent=Nosūtītais pasts
folder_sent=Nosūtīts
folder_drafts=Melnraksti
folder_trash=Atkritumi

View File

@@ -320,7 +320,7 @@ search_elatest=Bilangan mesej yang hilang atau tidak sah untuk dicari
search_withstatus=, dengan status $1
folder_inbox=Peti masuk
folder_sent=Menghantar surat
folder_sent=Dihantar
folder_drafts=Draf
folder_trash=Sampah

View File

@@ -320,7 +320,7 @@ search_elatest=Numru ta 'messaġġi nieqsa jew invalidi biex tfittex
search_withstatus=, bi status $1
folder_inbox=Inbox
folder_sent=Intbagħat il-posta
folder_sent=Mibgħuta
folder_drafts=Abbozzi
folder_trash=Trash

View File

@@ -317,7 +317,6 @@ search_elatest=Ontbrekende of ongeldige aantal berichten om te zoeken
search_withstatus=, met status $1
folder_inbox=Inbox
folder_sent=Verstuur email
folder_drafts=Ontwerpen
folder_trash=Vuilnis

View File

@@ -4,6 +4,8 @@ mail_specialsync=Synchronisatie speciaal
search_msg6=Zoekresultaten voor $1 in het veld $2
folder_sent=Verstuurd
left_mail=Mail
left_search=Zoeken:
left_folders=Beheer mappen

View File

@@ -320,7 +320,6 @@ search_elatest=Manglende eller ugyldig antall meldinger å søke gjennom
search_withstatus=, med status $1
folder_inbox=Innboks
folder_sent=Sendt e-post
folder_drafts=Kladd
folder_trash=Papirkurv

View File

@@ -1,3 +1,5 @@
folder_sent=Sendt
editor_heading=Overskrift
editor_paragraph=Avsnitt
editor_fontfamily_default=Misligholde

View File

@@ -179,7 +179,7 @@ search_elatest=Brakująca lub niepoprawna liczba wiadomości do przeszukania
search_withstatus=, ze statusem $1
folder_inbox=W pudełku
folder_sent=Wysłany mail
folder_sent=Wysłano
folder_drafts=Warcaby
folder_trash=Śmieci

View File

@@ -287,7 +287,7 @@ search_elatest=Número de mensagens ausente ou inválido para pesquisa
search_withstatus=, com status $1
folder_inbox=Caixa de entrada
folder_sent=Correspondência enviada
folder_sent=Enviado
folder_drafts=Rascunhos
folder_trash=Lixo

View File

@@ -1,3 +1,2 @@
folder_inbox=Caixa de Entrada
folder_sent=E-mais Enviados
folder_trash=Lixo

View File

@@ -319,6 +319,7 @@ search_latestnum=Apenas os mais recentes
search_elatest=Número de mensagens ausente ou inválido para pesquisa
search_withstatus=, com status $1
folder_sent=Enviado
folder_drafts=Rascunhos
detach_err=Falha ao desanexar arquivo

View File

@@ -320,7 +320,7 @@ search_elatest=Număr de mesaje lipsă sau nevalide de căutat
search_withstatus=, cu statut $1
folder_inbox=Inbox
folder_sent=E-mail trimis
folder_sent=Trimis
folder_drafts=Schițe
folder_trash=Gunoi

View File

@@ -320,7 +320,7 @@ search_elatest=Отсутствует или неверное количеств
search_withstatus=со статусом $1
folder_inbox=входящие
folder_sent=Отправленные письма
folder_sent=Отправил
folder_drafts=Черновики
folder_trash=дрянь

View File

@@ -320,7 +320,7 @@ search_elatest=Chýba alebo je neplatný počet správ na vyhľadávanie
search_withstatus=, so stavom $1
folder_inbox=Doručená pošta
folder_sent=Odoslaná pošta
folder_sent=Odoslané
folder_drafts=dáma
folder_trash=Smeti

View File

@@ -320,7 +320,7 @@ search_elatest=Manjkajoče ali neveljavno število sporočil za iskanje
search_withstatus=, s statusom $1
folder_inbox=Prejeto
folder_sent=Poslana pošta
folder_sent=Poslano
folder_drafts=Osnutki
folder_trash=Smeti

View File

@@ -260,7 +260,7 @@ search_elatest=Det saknas eller ogiltigt antal meddelanden att söka efter
search_withstatus=, med status $1
folder_inbox=Inkorg
folder_sent=Skickade post
folder_sent=Skickat
folder_drafts=utkast
folder_trash=Skräp

View File

@@ -320,7 +320,7 @@ search_elatest=จำนวนข้อความที่ขาดหาย
search_withstatus=ด้วยสถานะ $1
folder_inbox=กล่องขาเข้า
folder_sent=ส่งอีเมล
folder_sent=ส่งแล้ว
folder_drafts=ร่าง
folder_trash=ขยะ

View File

@@ -275,7 +275,6 @@ search_elatest=Arama için hatalı veya gecersiz sayıda mesaj
search_withstatus=, durum kodu $1 olan
folder_inbox=Gelen Kutusu
folder_sent=Gönderilen postalar
folder_drafts=Taslaklar
folder_trash=Çop Kutusu

View File

@@ -52,6 +52,8 @@ send_title2=Posta Kaydedildi
search_msg6=$2 alanında $1 için arama sonuçları
search_attach=Ekleri olmalı mı?
folder_sent=Gönderilmiş
sform_header=Gelişmiş e-posta arama seçenekleri
sform_andmode=Ölçüt modu
sform_folder2=Klasörlerde ara

View File

@@ -320,7 +320,7 @@ search_elatest=Відсутня або недійсна кількість по
search_withstatus=, зі статусом $1
folder_inbox=Вхідні
folder_sent=Надіслати пошту
folder_sent=Надісланий
folder_drafts=Чернетки
folder_trash=Сміття

View File

@@ -320,7 +320,7 @@ search_elatest=تلاش کرنے کیلئے پیغامات کی گمشدہ یا
search_withstatus=, with status $1
folder_inbox=ان باکس
folder_sent=میل بھیجا
folder_sent=بھیجا
folder_drafts=ڈرافٹس
folder_trash=کوڑے دان

View File

@@ -320,7 +320,7 @@ search_elatest=Thiếu hoặc không hợp lệ số lượng tin nhắn để t
search_withstatus=, với trạng thái $1
folder_inbox=Hộp thư đến
folder_sent=Gửi mail
folder_sent=Đã gửi
folder_drafts=Dự thảo
folder_trash=Rác

View File

@@ -234,7 +234,7 @@ search_elatest=要搜索的消息丢失或数量无效
search_withstatus=,状态为$1
folder_inbox=收件箱
folder_sent=发送邮件
folder_sent=发送
folder_drafts=草稿
folder_trash=垃圾

View File

@@ -213,7 +213,6 @@ search_local=在本地資料夾
search_all=在所有資料夾
folder_inbox=收件夾
folder_sent=傳送郵件
folder_drafts=草稿
folder_trash=垃圾桶

View File

@@ -117,6 +117,8 @@ search_latestnum=只有最新
search_elatest=要搜索的消息丟失或數量無效
search_withstatus=,狀態為$1
folder_sent=發送
sform_header=進階電子郵件搜尋選項
sform_andmode=標準模式
sform_folder2=搜索文件夾

View File

@@ -33,7 +33,7 @@ $ENV{'PATH'} = "/bin:/usr/bin:/usr/local/bin:/sbin:/usr/sbin";
my $allow_overwrite = 0;
my ($force_theme, $rpmdepends, $no_prefix, $vendor, $provides, $url,
$force_usermin, $final_mod, $sign, $epoch, $dir, $ver, @extrareqs,
$force_usermin, $final_mod, $sign, $keyname, $epoch, $dir, $ver, @extrareqs,
@exclude);
# Parse command-line args
@@ -85,6 +85,9 @@ while(@ARGV) {
elsif ($a eq "--sign") {
$sign = 1;
}
elsif ($a eq "--key") {
$keyname = shift(@ARGV);
}
elsif ($a eq "--epoch") {
$epoch = shift(@ARGV);
}
@@ -426,7 +429,8 @@ unlink("$rpm_source_dir/$mod.tar.gz");
# Sign if requested
if ($sign) {
system("echo | rpm --resign $rpm_dir/$prefix$mod-$ver-$release.noarch.rpm $source_rpm_dir/$prefix$mod-$ver-$release.src.rpm");
my $keyflag = $keyname ? "-D '_gpg_name $keyname'" : "";
system("echo | rpm --resign $keyflag $rpm_dir/$prefix$mod-$ver-$release.noarch.rpm $source_rpm_dir/$prefix$mod-$ver-$release.src.rpm");
}
if ($target_dir =~ /:/) {

View File

@@ -371,7 +371,7 @@ return &get_system_hostname();
sub save_hostname
{
&system_logged("hostname $_[0] >/dev/null 2>&1");
undef(@main::get_system_hostname); # clear cache
&get_system_hostname(undef, undef, 2); # clear cache
}
# get_domainname()

View File

@@ -583,7 +583,7 @@ if (&has_command("hostnamectl")) {
" >/dev/null 2>&1");
}
undef(@main::get_system_hostname); # clear cache
&get_system_hostname(undef, undef, 2); # clear cache
}
# get_domainname()

View File

@@ -583,7 +583,7 @@ my ($hostname) = @_;
&system_logged("hostname ".quotemeta($hostname)." >/dev/null 2>&1");
&save_rc_conf('hostname', $_[0]);
&unlock_file("/etc/rc.conf");
undef(@main::get_system_hostname); # clear cache
&get_system_hostname(undef, undef, 2); # clear cache
}
sub routing_config_files

View File

@@ -396,7 +396,7 @@ my ($hostname) = @_;
&lock_file($hostconfig);
&set_hostconfig("HOSTNAME", $hostname);
&unlock_file($hostconfig);
undef(@main::get_system_hostname); # clear cache
&get_system_hostname(undef, undef, 2); # clear cache
}
sub routing_config_files

View File

@@ -437,7 +437,7 @@ if (&has_command("hostnamectl")) {
" >/dev/null 2>&1");
}
undef(@main::get_system_hostname); # clear cache
&get_system_hostname(undef, undef, 2); # clear cache
}
# get_domainname()

View File

@@ -334,7 +334,7 @@ if (&has_command("hostnamectl")) {
" >/dev/null 2>&1");
}
undef(@main::get_system_hostname); # clear cache
&get_system_hostname(undef, undef, 2); # clear cache
}
# get_domainname()

View File

@@ -131,7 +131,7 @@ local %conf;
$conf{'HOSTNAME'} = $_[0];
&write_file($network_config, \%conf);
&unlock_file($network_config);
undef(@main::get_system_hostname); # clear cache
&get_system_hostname(undef, undef, 2); # clear cache
}
# get_domainname()

View File

@@ -417,7 +417,7 @@ my ($hostname) = @_;
&open_lock_tempfile(MYNAME, ">/etc/myname");
&print_tempfile(MYNAME, $hostname,"\n");
&close_tempfile(MYNAME);
undef(@main::get_system_hostname); # clear cache
&get_system_hostname(undef, undef, 2); # clear cache
}
sub set_line {

View File

@@ -506,7 +506,7 @@ if (&has_command("hostnamectl")) {
" >/dev/null 2>&1");
}
undef(@main::get_system_hostname); # clear cache
&get_system_hostname(undef, undef, 2); # clear cache
}
# get_domainname()

View File

@@ -274,7 +274,7 @@ sub save_hostname
&open_lock_tempfile(HOST, ">/etc/HOSTNAME");
&print_tempfile(HOST, $_[0],"\n");
&close_tempfile(HOST);
undef(@main::get_system_hostname); # clear cache
&get_system_hostname(undef, undef, 2); # clear cache
}
sub routing_config_files

View File

@@ -236,7 +236,7 @@ sub save_hostname
&open_lock_tempfile(HOST, ">/etc/HOSTNAME");
&print_tempfile(HOST, $_[0],"\n");
&close_tempfile(HOST);
undef(@main::get_system_hostname); # clear cache
&get_system_hostname(undef, undef, 2); # clear cache
}
sub routing_config_files

View File

@@ -442,7 +442,7 @@ if (-r "/etc/nodename") {
&print_tempfile(NODENAME, $_[0],"\n");
&close_tempfile(NODENAME);
}
undef(@main::get_system_hostname); # clear cache
&get_system_hostname(undef, undef, 2); # clear cache
}
# get_domainname()

View File

@@ -172,7 +172,7 @@ local %conf;
&open_lock_tempfile(HOST, ">/etc/HOSTNAME");
&print_tempfile(HOST, $_[0],"\n");
&close_tempfile(HOST);
undef(@main::get_system_hostname); # clear cache
&get_system_hostname(undef, undef, 2); # clear cache
}
sub routing_config_files

View File

@@ -258,7 +258,7 @@ local %conf;
&open_lock_tempfile(HOST, ">/etc/HOSTNAME");
&print_tempfile(HOST, $_[0],"\n");
&close_tempfile(HOST);
undef(@main::get_system_hostname); # clear cache
&get_system_hostname(undef, undef, 2); # clear cache
}
sub routing_config_files

View File

@@ -200,7 +200,7 @@ local $rc = &parse_rc_config();
# run SuSEconfig, as this function is called last
&system_logged("SuSEconfig -quick >/dev/null 2>&1");
undef(@main::get_system_hostname); # clear cache
&get_system_hostname(undef, undef, 2); # clear cache
}
sub routing_config_files

View File

@@ -136,7 +136,7 @@ local %conf;
$conf{'HOSTNAME'} = $_[0];
&write_env_file($network_config, \%conf);
&unlock_file($network_config);
undef(@main::get_system_hostname); # clear cache
&get_system_hostname(undef, undef, 2); # clear cache
}
# get_domainname()

View File

@@ -314,7 +314,7 @@ return &get_system_hostname();
sub save_hostname
{
&system_logged("hostname $_[0] >/dev/null 2>&1");
undef(@main::get_system_hostname); # clear cache
&get_system_hostname(undef, undef, 2); # clear cache
}
# get_domainname()

View File

@@ -24,80 +24,80 @@ if ( !$in{'go'} ) {
print "<input type=hidden name=go value=go>\n";
print "<table border>\n";
print "<tr $cb> <td><table>\n";
print "<tr $cb> <td><font color=0000FF size=4><b>Display Options:</b></font></td></tr>\n";
print "<tr $cb> <td><font color=0000FF size=4><b>Display Options</b></font></td></tr>\n";
print "<tr $cb> <td><b>System</b></td> <td colspan=3>\n";
printf "<input type=radio name=system value=1 %s> %s\n",
$System eq 1 ? 'checked' : '', $text{'yes'};
printf "<input type=radio name=system value=no %s> %s\n",
$System eq 1 ? '' : 'checked', $text{'no'},
join(" ", $System),"</td> </tr>\n";
join(" ", $System),"</td></tr>\n";
print "<tr $cb> <td><b>Package</b></td> <td colspan=3>\n";
printf "<input type=radio name=package value=1 %s> %s\n",
$Package eq 1 ? 'checked' : '', $text{'yes'};
printf "<input type=radio name=package value=no %s> %s\n",
$Package eq 1 ? '' : 'checked', $text{'no'},
join(" ", $Package),"</td> </tr>\n";
join(" ", $Package),"</td></tr>\n";
print "<tr $cb> <td><b>Main</b></td> <td colspan=3>\n";
printf "<input type=radio name=main value=1 %s> %s\n",
$Main eq 1 ? 'checked' : '', $text{'yes'};
printf "<input type=radio name=main value=no %s> %s\n",
$Main eq 1 ? '' : 'checked', $text{'no'},
join(" ", $Main),"</td> </tr>\n";
join(" ", $Main),"</td></tr>\n";
print "<tr $cb> <td><b>Defaults in Main</b></td> <td colspan=3>\n";
printf "<input type=radio name=defaultsinmain value=1 %s> %s\n",
$Defaultsinmain eq 1 ? 'checked' : '', $text{'yes'};
printf "<input type=radio name=defaultsinmain value=no %s> %s\n",
$Defaultsinmain eq 1 ? '' : 'checked', $text{'no'},
join(" ", $Defaultsinmain),"</td> </tr>\n";
join(" ", $Defaultsinmain),"</td></tr>\n";
print "<tr $cb> <td><b>Master</b></td> <td colspan=3>\n";
printf "<input type=radio name=master value=1 %s> %s\n",
$Master eq 1 ? 'checked' : '', $text{'yes'};
printf "<input type=radio name=master value=no %s> %s\n",
$Master eq 1 ? '' : 'checked', $text{'no'},
join(" ", $Master),"</td> </tr>\n";
join(" ", $Master),"</td></tr>\n";
print "<tr $cb> <td><b>Locking</b></td> <td colspan=3>\n";
printf "<input type=radio name=locking value=1 %s> %s\n",
$Locking eq 1 ? 'checked' : '', $text{'yes'};
printf "<input type=radio name=locking value=no %s> %s\n",
$Locking eq 1 ? '' : 'checked', $text{'no'},
join(" ", $Locking),"</td> </tr>\n";
join(" ", $Locking),"</td></tr>\n";
print "<tr $cb> <td><b>Tables</b></td> <td colspan=3>\n";
printf "<input type=radio name=tables value=1 %s> %s\n",
$Tables eq 1 ? 'checked' : '', $text{'yes'};
printf "<input type=radio name=tables value=no %s> %s\n",
$Tables eq 1 ? '' : 'checked', $text{'no'},
join(" ", $Tables),"</td> </tr>\n";
join(" ", $Tables),"</td></tr>\n";
print "<tr $cb> <td><b>Permissions</b></td> <td colspan=3>\n";
printf "<input type=radio name=permissions value=1 %s> %s\n",
$Permissions eq 1 ? 'checked' : '', $text{'yes'};
printf "<input type=radio name=permissions value=no %s> %s\n",
$Permissions eq 1 ? '' : 'checked', $text{'no'},
join(" ", $Permissions),"</td> </tr>\n";
join(" ", $Permissions),"</td></tr>\n";
print "<tr $cb> <td><b>Libraries</b></td> <td colspan=3>\n";
printf "<input type=radio name=libraries value=1 %s> %s\n",
$Libraries eq 1 ? 'checked' : '', $text{'yes'};
printf "<input type=radio name=libraries value=no %s> %s\n",
$Libraries eq 1 ? '' : 'checked', $text{'no'},
join(" ", $Libraries),"</td> </tr>\n";
join(" ", $Libraries),"</td></tr>\n";
print "<tr $cb> <td><b>Warn</b></td> <td colspan=3>\n";
printf "<input type=radio name=warn value=1 %s> %s\n",
$Warn eq 1 ? 'checked' : '', $text{'yes'};
printf "<input type=radio name=warn value=no %s> %s\n",
$Warn eq 1 ? '' : 'checked', $text{'no'},
join(" ", $Warn),"</td> </tr>\n";
print "<tr><td> </td></tr><tr><td><input type=submit value=\"$text{'postfinger_show'}\"></td></tr></form>\n";
join(" ", $Warn),"</td></tr>\n";
print "<tr><td></td></tr><tr><td><input type=submit value=\"$text{'postfinger_show'}\"></td></tr></form>\n";
print "</table></td> </tr></table>";
&footer("index.cgi", $text{'index_title'});
print "</table></td></tr></table>";
&ui_print_footer("index.cgi", $text{'index_title'});
} else {
&head;
if (! -x $config{'postfix_config_command'} && ! -r $config{'postfix_config_file'} ) {
@@ -108,7 +108,7 @@ if ( !$in{'go'} ) {
if ($config{'index_check'} && ($err = &check_postfix())) {
print "<p>",&text('check_error'),"<p>\n";
print "<pre>$err</pre>\n";
&footer("/", $text{'index'});
&ui_print_footer("/", $text{'index'});
exit;
}
if ($System eq 1 ) {
@@ -197,16 +197,16 @@ if ( !$in{'go'} ) {
while (my $postfinger = <MAILQ>) {
($postf1,$postf2,$postf3,$postf4,$postf5,$postf6,$postf7,$postf8)=split(/\s+/,$postfinger,8);
if ($postfinger =~ /\-o/) {
print "<tr><td class='e'> </td><td class='v'> </td>",
"<td class='v'> </td><td class='v'> </td>",
"<td class='v'> </td><td class='v'> </td>",
"<td class='v'> </td><td class='v'>$postf2</td></tr>"
print "<tr><td class='e'></td><td class='v'></td>",
"<td class='v'></td><td class='v'></td>",
"<td class='v'></td><td class='v'></td>",
"<td class='v'></td><td class='v'>$postf2</td></tr>"
if ( !grep(/^#|^\[ \]*$/,$postfinger));
} elsif ($postfinger =~ /user=/) {
print "<tr><td class='e'> </td><td class='v'> </td>",
"<td class='v'> </td><td class='v'> </td>",
"<td class='v'> </td><td class='v'> </td>",
"<td class='v'> </td><td class='v'>$postf1</td></tr>"
print "<tr><td class='e'></td><td class='v'></td>",
"<td class='v'></td><td class='v'></td>",
"<td class='v'></td><td class='v'></td>",
"<td class='v'></td><td class='v'>$postf1</td></tr>"
if ( !grep(/^#|^\[ \]*$/,$postfinger));
} else {
print "<tr><td class='e'><b>$postf1</b></td><td class='v'><center>$postf2</center></td>",
@@ -223,21 +223,21 @@ if ( !$in{'go'} ) {
if ($Permissions eq 1 ) {
print '<h1 align="center">Specific file and directory permissions</h1><br>';
print '<table border="0" cellpadding="0" width="600" align="center">';
print "<tr><td class='e'><b>Permission</b> Deep <b>Owner</b> <b>Group</b> Size Date <b>Directory/File</b> </td></tr>";
print "<tr><td class='e'><b>Permission</b> Deep <b>Owner</b> <b>Group</b> Size Date <b>Directory/File</b></td></tr>";
open(MAILQ, "/bin/ls -ld `$config{'postfix_config_command'} -h queue_directory`/maildrop 2>/dev/null |");
while (my $postfinger = <MAILQ>) {
print "<tr><td class='v'>$postfinger</td></tr>"
if ( !grep(/total|^#|^\[ \]*$/,$postfinger));
}
close(MAILQ);
print "<tr><td> </td></tr>";
print "<tr><td></td></tr>";
open(MAILQ, "/bin/ls -ld `$config{'postfix_config_command'} -h queue_directory`/public 2>/dev/null |");
while (my $postfinger = <MAILQ>) {
print "<tr><td class='v'>$postfinger</td></tr>"
if ( !grep(/total|^#|^\[ \]*$/,$postfinger));
}
close(MAILQ);
print "<tr><td> </td></tr>";
print "<tr><td></td></tr>";
if (! open(MAILQ, "/bin/ls -l `$config{'postfix_config_command'} -h queue_directory`/public 2>/dev/null |")) {
print '<center><b>WARNING: No access to $queue_directory/public<br>Try running postfinger as user root or postfix</b></center><br>';
} else {
@@ -246,7 +246,7 @@ if ( !$in{'go'} ) {
if ( !grep(/total|^#|^\[ \]*$/,$postfinger));
}
close(MAILQ);
print "<tr><td> </td></tr>";
print "<tr><td></td></tr>";
}
open(MAILQ, "/bin/ls -ld `$config{'postfix_config_command'} -h queue_directory`/private 2>/dev/null |");
while (my $postfinger = <MAILQ>) {
@@ -254,7 +254,7 @@ if ( !$in{'go'} ) {
if ( !grep(/total|^#|^\[ \]*$/,$postfinger));
}
close(MAILQ);
print "<tr><td> </td></tr>";
print "<tr><td></td></tr>";
if (! open(MAILQ, "/bin/ls -l `$config{'postfix_config_command'} -h queue_directory`/private 2>/dev/null |")) {
print '<center><b>WARNING: No access to $queue_directory/private<br>Try running postfinger as user root or postfix</b></center><br>';
} else {
@@ -263,7 +263,7 @@ if ( !$in{'go'} ) {
if ( !grep(/total|^#|^\[ \]*$/,$postfinger));
}
close(MAILQ);
print "<tr><td> </td></tr>";
print "<tr><td></td></tr>";
}
open(MAILQ, "/bin/ls -l `$config{'postfix_config_command'} -h command_directory`/postdrop 2>/dev/null |");
while (my $postfinger = <MAILQ>) {
@@ -271,7 +271,7 @@ if ( !$in{'go'} ) {
if ( !grep(/total|^#|^\[ \]*$/,$postfinger));
}
close(MAILQ);
print "<tr><td> </td></tr>";
print "<tr><td></td></tr>";
open(MAILQ, "/bin/ls -l `$config{'postfix_config_command'} -h command_directory`/postqueue 2>/dev/null |");
while (my $postfinger = <MAILQ>) {
print "<tr><td class='v'>$postfinger</td></tr>"
@@ -295,8 +295,8 @@ if ( !$in{'go'} ) {
print "</table><br>";
}
}
print "</td> </tr></table></td> </tr></table>";
&footer("index.cgi", $text{'index_title'});
print "</td></tr></table></td></tr></table>";
&ui_print_footer("index.cgi", $text{'index_title'});
}
sub head {

View File

@@ -10,23 +10,22 @@ if (defined(&get_cpu_info)) {
print "<table>\n";
@c = &get_cpu_info();
if (@c) {
print "<tr> <td><b>$text{'index_loadname'}</b></td>\n";
print "<td>",&text('index_loadnums',
"<tt>$c[0]</tt>", "<tt>$c[1]</tt>", "<tt>$c[2]</tt>"),
"</td> </tr>\n";
print &ui_table_start(undef, undef, 2);
print &ui_table_row($text{'index_loadname'},
&text('index_loadnums',
"<tt>$c[0]</tt>", "<tt>$c[1]</tt>", "<tt>$c[2]</tt>"));
if (@c >= 5) {
print "<tr> <td><b>$text{'index_cpuname'}</b></td>\n";
print "<td>$c[4]\n";
my $cpu = $c[4]."\n";
if ($c[4] !~ /Hz/) {
print "($c[3] MHz)\n";
$cpu .= "($c[3] MHz)\n";
}
if ($c[7]) {
print ", $c[7] cores\n";
$cpu .= ", $c[7] cores\n";
}
print "</td> </tr>\n";
print &ui_table_row($text{'index_cpuname'}, $cpu);
}
print &ui_table_end(),"<p>\n";
}
print "</table><br>\n";
}
print &ui_columns_start([ $text{'pid'}, $text{'owner'},

View File

@@ -9,17 +9,20 @@ if (defined(&get_memory_info)) {
@m = &get_memory_info();
if (@m) {
$msg = $m[4] ? 'index_mem3' : 'index_mem2';
print "<p>";
print &text($msg, &nice_size($m[0]*1024),
&nice_size($m[1]*1024),
&nice_size($m[4]*1024)),"\n";
print &ui_table_start(undef, undef, 2);
print &ui_table_row($text{'index_memreal'},
&text($m[4] ? 'index_memtfc' : 'index_memtf',
&nice_size($m[0]*1024),
&nice_size($m[1]*1024),
&nice_size($m[4]*1024)));
if ($m[5]) {
print "&nbsp;&nbsp;",
&text('index_burst', &nice_size($m[5]*1024));
print &ui_table_row($text{'index_memburst'},
&nice_size($m[5]*1024));
}
print "&nbsp;&nbsp;",
&text('index_swap2', &nice_size($m[2]*1024),
&nice_size($m[3]*1024)),"<p>\n";
print &ui_table_row($text{'index_memswap'},
&text('index_memtf', &nice_size($m[2]*1024),
&nice_size($m[3]*1024)));
print &ui_table_end(),"<p>\n";
}
}
print &ui_columns_start([

View File

@@ -8,10 +8,11 @@ index_search=Search
index_zone=Zone
index_run=Run..
index_return=process list
index_mem2=<b>Real memory:</b> $1 total / $2 free
index_mem3=<b>Real memory:</b> $1 total / $2 free / $3 cached
index_swap2=<b>Swap space:</b> $1 total / $2 free
index_burst=<b>Burstable memory:</b> $1 total
index_memreal=Real memory:
index_memswap=Swap space:
index_memburst=Burstable memory:
index_memtf=$1 total / $2 free
index_memtfc=$1 total / $2 free / $3 cached
index_loadname=CPU load averages:
index_loadnums=$1 (1 mins) , $2 (5 mins) , $3 (15 mins)
index_cpuname=CPU type:

View File

@@ -66,7 +66,8 @@ else {
# Use width format character if allowed
$width = ":80";
}
open(PS, "ps --cols 2048 -eo user$width,ruser$width,group$width,rgroup$width,pid,ppid,pgid,pcpu,rss,nice,etime,time,stime,tty,args 2>/dev/null |");
my $pscmd = "ps --cols 2048 -eo user$width,ruser$width,group$width,rgroup$width,pid,ppid,pgid,pcpu,rss,nice,etime,time,stime,tty,args";
open(PS, "$pscmd 2>/dev/null |");
$dummy = <PS>;
my @now = localtime(time());
for($i=0; $line=<PS>; $i++) {
@@ -116,6 +117,7 @@ else {
$plist[$i]->{"_rgroup"} = $w[3];
$plist[$i]->{"_pgid"} = $w[6];
$plist[$i]->{"_tty"} = $w[13] =~ /\?/ ? $text{'edit_none'} : "/dev/$w[13]";
$plist[$i]->{"_pscmd"} = 1 if ($plist[$i]->{"args"} =~ /\Q$pscmd\E/);
}
close(PS);
}

View File

@@ -195,7 +195,7 @@ else {
local $sel = select($rmask, undef, undef, 1);
if ($sel > 0 && vec($rmask, $fn, 1)) {
# got something to read.. print it
sysread(OUTr, $buf, 65536) || last;
sysread(OUTr, $buf, &get_buffer_size()) || last;
$got += length($buf);
if ($_[5]) {
$buf = &html_escape($buf);
@@ -584,6 +584,7 @@ sub can_view_process
{
local ($p) = @_;
return 0 if ($p->{'pid'} == $$ && $config{'hide_self'});
return 0 if ($p->{'_pscmd'} && $config{'hide_self'});
local $user = $p->{'user'};
if ($hide{$user}) {
return 0;

View File

@@ -1,3 +1,2 @@
line2=System configuration,11
stunnel_path=Path to stunnel executable,0
pem_path=Path to default stunnel PEM file,3,None

View File

@@ -1305,7 +1305,7 @@ return "<textarea class='ui_textarea' ".
"rows='$rows' cols='$cols'".($wrap ? " wrap='$wrap'" : "").
($dis ? " disabled='true'" : "").
($tags ? " $tags" : "").">".
&html_escape($value).
&html_escape($value, 1).
"</textarea>";
}

View File

@@ -99,17 +99,21 @@ if ($ENV{'PATH_INFO'}) {
print "Content-Disposition: Attachment\n";
}
}
else {
while(read(FILE, $buffer, &get_buffer_size_binary())) {
$fdata .= $buffer;
}
}
close(FILE);
print "Content-length: $fsize\n";
print "X-Content-Type-Options: nosniff\n";
print "Content-type: $type\n\n";
print "$fdata";
# File is already read, so print it
if ($dangertypes) {
print "$fdata";
}
else {
# Send the file
while(read(FILE, $buffer, &get_buffer_size_binary())) {
print("$buffer");
}
}
close(FILE);
}
# Switch back to root

View File

@@ -32,8 +32,9 @@ $ttable .= &ui_columns_end();
print &ui_table_row($text{'advanced_tempmods'}, $ttable);
# Pass passwords to CGI programs
print &ui_table_row($text{'advanced_pass'},
&ui_yesno_radio("pass", int($miniserv{'pass_password'})));
print &ui_table_row($text{'advanced_pass_desc'},
&ui_yesno_radio("pass", int($miniserv{'pass_password'})).
&ui_help($text{'advanced_pass_help'}));
@preloads = &webmin::get_preloads(\%miniserv);
if (!@preloads && (!$miniserv{'premodules'} ||

View File

@@ -486,7 +486,8 @@ descs_title=Module Titles
descs_info=This page allows you to specify alternate titles for Usermin modules, to override their standard descriptions.
advanced_title=Advanced Options
advanced_pass=Make password available to Usermin programs?<br><font size=-1>(Does not work when session authentication is enabled)</font>
advanced_pass_desc=Make password available to Usermin programs?
advanced_pass_help=Does not work when session authentication is enabled
blocked_title=Blocked Hosts and Users
blocked_none=No hosts or users are currently blocked by Usermin.

View File

@@ -84,12 +84,12 @@ elsif ($in{'source'} == 2) {
if ($in{'mode'} eq 'rpm') {
$release ||= 1;
$progress_callback_url = &convert_osdn_url(
"http://$webmin::osdn_host/webadmin/${product}-${version}-${release}.noarch.rpm");
"http://$webmin::osdn_host/webadmin/newkey-${product}-${version}-${release}.noarch.rpm");
}
elsif ($in{'mode'} eq 'deb') {
$release = $release ? "-".$release : "";
$progress_callback_url = &convert_osdn_url(
"http://$webmin::osdn_host/webadmin/${product}_${version}${release}_all.deb");
"http://$webmin::osdn_host/webadmin/newkey-${product}_${version}${release}_all.deb");
}
else {
$release = $release ? "-".$release : "";

Some files were not shown because too many files have changed in this diff Show More