2 # Starts the flash policy server on port 843, then outputs an HTML page that
3 # references the flash object
5 BEGIN { push(@INC, ".."); };
10 # Work out host and port
11 $host = $ENV{'HTTP_HOST'};
13 $telnetport = $config{'telnetport'} || 23;
16 &open_socket($host, $telnetport, TEST, \$err);
17 $err && &error(&text('index_etelnet', $telnetport));
20 # Start the policy file server on port 843
22 $proto = getprotobyname('tcp');
23 socket(MAIN, PF_INET, SOCK_STREAM, $proto) ||
24 &error(&text('index_esocket', "$!"));
25 setsockopt(MAIN, SOL_SOCKET, SO_REUSEADDR, pack("l", 1));
26 bind(MAIN, sockaddr_in($port, INADDR_ANY)) ||
27 &error(&text('index_eport', $port));
28 listen(MAIN, SOMAXCONN);
30 # Fork the process that will accept the connection
34 vec($rmask, fileno(MAIN), 1) = 1;
35 $sel = select($rmask, undef, undef, 10);
36 exit(1) if ($sel <= 0);
40 $header = "<policy-file-request/>\000";
41 read(SOCK, $buf, length($header));
42 $buf eq $header || die "Invalid message $buf";
45 <!DOCTYPE cross-domain-policy SYSTEM "/xml/dtds/cross-domain-policy.dtd">
47 <site-control permitted-cross-domain-policies="master-only"/>
48 <allow-access-from domain="$host" to-ports="$telnetport" />
49 </cross-domain-policy>
56 # Output HTML for the flash object
57 $rows = $config{'rows'} || 25;
58 $cols = $config{'cols'} || 80;
60 <script type="text/javascript">
62 flashvars.AutoConnect = 1;
63 flashvars.BitsPerSecond = 115200;
65 flashvars.BorderStyle = "Ubuntu1004";
66 flashvars.CodePage = "437";
67 flashvars.Enter = "\\r";
68 flashvars.FontHeight = 16;
69 flashvars.FontWidth = 9;
70 flashvars.ScreenColumns = $cols;
71 flashvars.ScreenRows = $rows;
72 flashvars.SendOnConnect = "";
73 flashvars.ServerHostName = "$host";
74 flashvars.ServerName = "Webmin";
75 flashvars.ServerPort = $telnetport;
76 flashvars.SocketPolicyPort = $port;
78 <script type="text/javascript" src="swfobject.js"></script>
79 <script type="text/javascript" src="fTelnet.js"></script>
82 &ui_print_header(undef, $text{'index_title'}, "", undef, 1, 1, 0, undef, $headhtml);
86 <p>fTelnet is loading. If you don't see it in a few seconds, you may need Adobe Flash Player version 10.0.0 or greater installed.</p>
87 <a href="http://get.adobe.com/flashplayer/"><img src="http://www.adobe.com/images/shared/download_buttons/get_flash_player.gif" alt="Get Adobe Flash player" border="0" /></a>
91 &ui_print_footer("/", $text{'index'});