#!/usr/bin/perl # edit_stunnel.cgi # Edit or create an SSL tunnel run from inetd require './stunnel-lib.pl'; &ReadParse(); if ($in{'new'}) { &ui_print_header(undef, $text{'create_title'}, ""); $st = { 'active' => 1 }; } else { &ui_print_header(undef, $text{'edit_title'}, ""); @stunnels = &list_stunnels(); $st = $stunnels[$in{'idx'}]; } print &ui_form_start("save_stunnel.cgi", "post"); print &ui_hidden("new",$in{'new'}); print &ui_hidden("idx",$in{'idx'}); print &ui_table_start($text{'edit_header1'}, "width=80%", 4); print &ui_columns_row([ "<b>$text{'edit_name'}</b> ", &ui_textbox("name", $st->{'name'}, 15), " <b>$text{'edit_port'}</b> ", &ui_textbox("port", $st->{'port'}, 6) ]); print &ui_columns_row([ "<b>$text{'edit_active'}</b>", &ui_oneradio("active","1", $text{'yes'}, ($st->{'active'} ? 1 : 0) ). " ".&ui_oneradio("active","0", $text{'no'}, ($st->{'active'} ? 0 : 1) ), "<b>$text{'edit_type'}</b>", ( !$in{'new'} ? "<tt>$st->{'type'}</tt>" : ( $has_inetd && $has_xinetd ? &ui_select("type", undef,[["xinetd","xinetd","selected"],["inetd","inetd",""]]) : "") ) ]); print ui_table_end(); print "<br>"; if ($in{'new'}) { $ptymode = 'l'; } elsif (&get_stunnel_version() >= 4) { # Parse new-style stunnel configuration file if ($st->{'args'} =~ /^(\S+)\s+(\S+)/) { $cfile = $2; @conf = &get_stunnel_config($cfile); ($conf) = grep { !$_->{'name'} } @conf; if ($cmd = $conf->{'values'}->{'exec'}) { $args = $conf->{'values'}->{'execargs'}; $ptymode = $conf->{'values'}->{'pty'} eq 'yes' ? "L" : "l"; } else { $rport = $conf->{'values'}->{'connect'}; if ($rport =~ /^(\S+):(\d+)/) { $rhost = $1; $rport = $2; } } $pem = $conf->{'values'}->{'cert'}; $cmode = $conf->{'values'}->{'client'} =~ /yes/i; $tcpw = $conf->{'values'}->{'service'}; $iface = $conf->{'values'}->{'local'}; } } else { # Parse old-style stunnel parameters if ($st->{'args'} =~ s/\s*-([lL])\s+(\S+)\s+--\s+(.*)// || $st->{'args'} =~ s/\s*-([lL])\s+(\S+)//) { $ptymode = $1; $cmd = $2; $args = $3; } if ($st->{'args'} =~ s/\s*-r\s+((\S+):)?(\d+)//) { $rhost = $2; $rport = $3; } if ($st->{'args'} =~ s/\s*-p\s+(\S+)//) { $pem = $1; } if ($st->{'args'} =~ s/\s*-c//) { $cmode = 1; } if ($st->{'args'} =~ s/\s*-N\s+(\S+)//) { $tcpw = $1; } if ($st->{'args'} =~ s/\s*-I\s+(\S+)//) { $iface = $1; } } print &ui_table_start($text{'edit_header2'}, "width=80%", 5); print &ui_columns_row([ &ui_oneradio("mode","0", $text{'edit_mode0'}, ($ptymode eq 'l' ? 1 : 0) ), "<b>$text{'edit_cmd'}</b>", &ui_textbox("cmd0", ( $ptymode eq 'l' ? $cmd : "" ), 20), "<b>$text{'edit_args'}</b>", &ui_textbox("args0", ( $ptymode eq 'l' ? $args : "" ), 20) ]); print &ui_columns_row([ &ui_oneradio("mode","1", $text{'edit_mode1'}, ($ptymode eq 'L' ? 1 : 0) ), "<b>$text{'edit_cmd'}</b>", &ui_textbox("cmd1", ( $ptymode eq 'L' ? $cmd : "" ), 20), "<b>$text{'edit_args'}</b>", &ui_textbox("args1", ( $ptymode eq 'L' ? $args : "" ), 20) ]); print &ui_columns_row([ &ui_oneradio("mode","2", $text{'edit_mode2'}, ($rport ? 1 : 0) ), "<b>$text{'edit_rhost'}</b>", &ui_textbox("rhost", ( !$rport ? "" : ( $rhost ? $rhost : "localhost" ) ), 20), "<b>$text{'edit_rport'}</b>", &ui_textbox("rport", $rport, 6) ]); print ui_table_end(); print "<br>"; $haspem = $config{'pem_path'} && -r $config{'pem_path'}; print &ui_table_start($text{'edit_header3'}, "width=80%", 2); if ($in{'new'}) { print &ui_columns_row([ "<b>$text{'edit_pem'}</b>", &ui_oneradio("pmode","0", $text{'edit_pem0'})." ". &ui_oneradio("pmode","1", $text{'edit_pem1'}, ( $haspem ? 0 : 1) )." ". &ui_oneradio("pmode","2", $text{'edit_pem2'}, ( $haspem ? 1 : 0) )." ". &ui_filebox("pem", ( $haspem ? $config{'pem_path'} : "" ), 25) ]); } else { local $pmode = $pem eq $webmin_pem ? 1 : $pem ? 2 : 0; print &ui_columns_row([ "<b>$text{'edit_pem'}</b>", &ui_oneradio("pmode","0", $text{'edit_pem0'}, ( $pmode == 0 ? 1 : 0 ) )." ". &ui_oneradio("pmode","1", $text{'edit_pem1'}, ( $pmode == 1 ? 1 : 0 ) )." ". &ui_oneradio("pmode","2", $text{'edit_pem2'}, ( $pmode == 2 ? 1 : 0) )." ". &ui_filebox("pem", ( $pmode == 2 ? $pem : "" ), 25) ]); } print &ui_columns_row([ "<b>$text{'edit_tcpw'}</b>", &ui_oneradio("tcpw_def","1", $text{'edit_auto'}, ( $tcpw ? 0 : 1 ) )." ". &ui_oneradio("tcpw_def","0", undef, ( $tcpw ? 1 : 0 ) )." ". &ui_textbox("tcpw", $tcpw, 25) ]); print &ui_columns_row([ "<b>$text{'edit_cmode'}</b>", &ui_oneradio("cmode","0", $text{'edit_cmode0'}, ( $cmode ? 0 : 1 ) )." ". &ui_oneradio("cmode","1", $text{'edit_cmode1'}, ( $cmode ? 1 : 0 ) ) ]); print &ui_columns_row([ "<b>$text{'edit_iface'}</b>", &ui_oneradio("iface_def","1", $text{'edit_auto'}, ( $iface ? 0 : 1 ) )." ". &ui_oneradio("iface_def","0", undef, ( $iface ? 1 : 0 ) )." ". &ui_textbox("iface", $iface, 25) ]); print ui_table_end(); print &ui_hidden("args",$st->{'args'}); print "<br>"; if ($in{'new'}) { print &ui_submit($text{'create'}); } else { print &ui_submit($text{'save'})." ".&ui_submit($text{'delete'},"delete"); } print &ui_form_end(); &ui_print_footer("", $text{'index_return'});
Name | Type | Size | Permission | Actions |
---|---|---|---|---|
help | Folder | 0755 |
|
|
images | Folder | 0755 |
|
|
lang | Folder | 0755 |
|
|
CHANGELOG | File | 99 B | 0644 |
|
apply.cgi | File | 187 B | 0755 |
|
backup_config.pl | File | 1.09 KB | 0755 |
|
config | File | 37 B | 0644 |
|
config-coherent-linux | File | 31 B | 0644 |
|
config-debian-linux | File | 31 B | 0644 |
|
config-gentoo-linux | File | 31 B | 0644 |
|
config-mandrake-linux | File | 31 B | 0644 |
|
config-openSUSE-Linux-15.0-ALL | File | 31 B | 0644 |
|
config-openmamba-linux | File | 31 B | 0644 |
|
config-redhat-linux | File | 31 B | 0644 |
|
config-redhat-linux-14-ALL | File | 30 B | 0644 |
|
config-redhat-linux-18.0-ALL | File | 30 B | 0644 |
|
config-suse-linux-8.2-ALL | File | 31 B | 0644 |
|
config-syno-linux | File | 37 B | 0644 |
|
config-trustix-linux | File | 31 B | 0644 |
|
config-united-linux | File | 31 B | 0644 |
|
config.info | File | 121 B | 0644 |
|
config.info.ca | File | 139 B | 0644 |
|
config.info.cs | File | 76 B | 0644 |
|
config.info.de | File | 132 B | 0644 |
|
config.info.es | File | 152 B | 0644 |
|
config.info.fr | File | 140 B | 0644 |
|
config.info.ms | File | 127 B | 0644 |
|
config.info.nl | File | 125 B | 0644 |
|
config.info.no | File | 119 B | 0644 |
|
config.info.ru | File | 191 B | 0644 |
|
config.info.uk | File | 216 B | 0644 |
|
delete_tunnels.cgi | File | 651 B | 0755 |
|
edit_stunnel.cgi | File | 5.68 KB | 0755 |
|
feedback_files.pl | File | 205 B | 0755 |
|
index.cgi | File | 3.95 KB | 0755 |
|
install_check.pl | File | 378 B | 0755 |
|
log_parser.pl | File | 536 B | 0755 |
|
module.info | File | 188 B | 0644 |
|
module.info.af | File | 0 B | 0644 |
|
module.info.af.auto | File | 169 B | 0644 |
|
module.info.ar | File | 0 B | 0644 |
|
module.info.ar.auto | File | 179 B | 0644 |
|
module.info.be | File | 0 B | 0644 |
|
module.info.be.auto | File | 247 B | 0644 |
|
module.info.bg | File | 0 B | 0644 |
|
module.info.bg.auto | File | 210 B | 0644 |
|
module.info.ca | File | 139 B | 0644 |
|
module.info.ca.auto | File | 18 B | 0644 |
|
module.info.cs | File | 19 B | 0644 |
|
module.info.cs.auto | File | 137 B | 0644 |
|
module.info.da | File | 0 B | 0644 |
|
module.info.da.auto | File | 163 B | 0644 |
|
module.info.de | File | 100 B | 0644 |
|
module.info.de.auto | File | 15 B | 0644 |
|
module.info.el | File | 0 B | 0644 |
|
module.info.el.auto | File | 299 B | 0644 |
|
module.info.es | File | 21 B | 0644 |
|
module.info.es.auto | File | 130 B | 0644 |
|
module.info.eu | File | 0 B | 0644 |
|
module.info.eu.auto | File | 163 B | 0644 |
|
module.info.fa | File | 0 B | 0644 |
|
module.info.fa.auto | File | 227 B | 0644 |
|
module.info.fi | File | 0 B | 0644 |
|
module.info.fi.auto | File | 165 B | 0644 |
|
module.info.fr | File | 20 B | 0644 |
|
module.info.fr.auto | File | 154 B | 0644 |
|
module.info.he | File | 0 B | 0644 |
|
module.info.he.auto | File | 182 B | 0644 |
|
module.info.hr | File | 0 B | 0644 |
|
module.info.hr.auto | File | 138 B | 0644 |
|
module.info.hu | File | 0 B | 0644 |
|
module.info.hu.auto | File | 224 B | 0644 |
|
module.info.it | File | 0 B | 0644 |
|
module.info.it.auto | File | 154 B | 0644 |
|
module.info.ja | File | 161 B | 0644 |
|
module.info.ja.auto | File | 21 B | 0644 |
|
module.info.ko | File | 0 B | 0644 |
|
module.info.ko.auto | File | 189 B | 0644 |
|
module.info.lt | File | 0 B | 0644 |
|
module.info.lt.auto | File | 189 B | 0644 |
|
module.info.lv | File | 0 B | 0644 |
|
module.info.lv.auto | File | 168 B | 0644 |
|
module.info.ms | File | 150 B | 0644 |
|
module.info.ms.auto | File | 16 B | 0644 |
|
module.info.mt | File | 0 B | 0644 |
|
module.info.mt.auto | File | 140 B | 0644 |
|
module.info.nl | File | 20 B | 0644 |
|
module.info.nl.auto | File | 130 B | 0644 |
|
module.info.no | File | 22 B | 0644 |
|
module.info.no.auto | File | 135 B | 0644 |
|
module.info.pl | File | 0 B | 0644 |
|
module.info.pl.auto | File | 156 B | 0644 |
|
module.info.pt | File | 0 B | 0644 |
|
module.info.pt.auto | File | 151 B | 0644 |
|
module.info.pt_BR | File | 0 B | 0644 |
|
module.info.pt_BR.auto | File | 160 B | 0644 |
|
module.info.ro | File | 0 B | 0644 |
|
module.info.ro.auto | File | 158 B | 0644 |
|
module.info.ru | File | 27 B | 0644 |
|
module.info.ru.auto | File | 201 B | 0644 |
|
module.info.sk | File | 0 B | 0644 |
|
module.info.sk.auto | File | 171 B | 0644 |
|
module.info.sl | File | 0 B | 0644 |
|
module.info.sl.auto | File | 147 B | 0644 |
|
module.info.sv | File | 0 B | 0644 |
|
module.info.sv.auto | File | 161 B | 0644 |
|
module.info.th | File | 0 B | 0644 |
|
module.info.th.auto | File | 219 B | 0644 |
|
module.info.tr | File | 0 B | 0644 |
|
module.info.tr.auto | File | 183 B | 0644 |
|
module.info.uk | File | 0 B | 0644 |
|
module.info.uk.auto | File | 238 B | 0644 |
|
module.info.ur | File | 0 B | 0644 |
|
module.info.ur.auto | File | 256 B | 0644 |
|
module.info.vi | File | 0 B | 0644 |
|
module.info.vi.auto | File | 181 B | 0644 |
|
module.info.zh | File | 0 B | 0644 |
|
module.info.zh.auto | File | 134 B | 0644 |
|
module.info.zh_TW | File | 0 B | 0644 |
|
module.info.zh_TW.auto | File | 143 B | 0644 |
|
save_stunnel.cgi | File | 4.72 KB | 0755 |
|
stunnel-lib.pl | File | 10.31 KB | 0755 |
|