Server IP : 85.214.239.14 / Your IP : 3.131.37.82 Web Server : Apache/2.4.62 (Debian) System : Linux h2886529.stratoserver.net 4.9.0 #1 SMP Tue Jan 9 19:45:01 MSK 2024 x86_64 User : www-data ( 33) PHP Version : 7.4.18 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare, MySQL : OFF | cURL : OFF | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : OFF Directory : /proc/3/cwd/proc/3/root/usr/share/perl5/Debconf/FrontEnd/ |
Upload File : |
#!/usr/bin/perl -w # This file was preprocessed, do not edit! package Debconf::FrontEnd::Web; use IO::Socket; use IO::Select; use CGI; use strict; use Debconf::Gettext; use base qw(Debconf::FrontEnd); sub init { my $this=shift; $this->SUPER::init(@_); $this->port(8001) unless defined $this->port; $this->formid(0); $this->interactive(1); $this->capb('backup'); $this->need_tty(0); $this->server(IO::Socket::INET->new( LocalPort => $this->port, Proto => 'tcp', Listen => 1, Reuse => 1, LocalAddr => '127.0.0.1', )) || die "Can't bind to ".$this->port.": $!"; print STDERR sprintf(gettext("Note: Debconf is running in web mode. Go to http://localhost:%i/"),$this->port)."\n"; } sub client { my $this=shift; $this->{client}=shift if @_; return $this->{client} if $this->{client}; my $select=IO::Select->new($this->server); 1 while ! $select->can_read(1); my $client=$this->server->accept; my $commands=''; while (<$client>) { last if $_ eq "\r\n"; $commands.=$_; } $this->commands($commands); $this->{client}=$client; } sub closeclient { my $this=shift; close $this->client; $this->client(''); } sub showclient { my $this=shift; my $page=shift; my $client=$this->client; print $client $page; } sub go { my $this=shift; $this->backup(''); my $httpheader="HTTP/1.0 200 Ok\nContent-type: text/html\n\n"; my $form=''; my $id=0; my %idtoelt; foreach my $elt (@{$this->elements}) { $idtoelt{$id}=$elt; $elt->id($id++); my $html=$elt->show; if ($html ne '') { $form.=$html."<hr>\n"; } } return 1 if $form eq ''; my $formid=$this->formid(1 + $this->formid); $form="<html>\n<title>".$this->title."</title>\n<body>\n". "<form><input type=hidden name=formid value=$formid>\n". $form."<p>\n"; if ($this->capb_backup) { $form.="<input type=submit value=".gettext("Back")." name=back>\n"; } $form.="<input type=submit value=".gettext("Next").">\n"; $form.="</form>\n</body>\n</html>\n"; my $query; do { $this->showclient($httpheader . $form); $this->closeclient; $this->client; my @get=grep { /^GET / } split(/\r\n/, $this->commands); my $get=shift @get; my ($qs)=$get=~m/^GET\s+.*?\?(.*?)(?:\s+.*)?$/; $query=CGI->new($qs); } until (defined $query->param('formid') && $query->param('formid') eq $formid); if ($this->capb_backup && defined $query->param('back') && $query->param('back') ne '') { return ''; } foreach my $id ($query->param) { next unless $idtoelt{$id}; $idtoelt{$id}->value($query->param($id)); delete $idtoelt{$id}; } foreach my $elt (values %idtoelt) { $elt->value(''); } return 1; } 1