404

[ Avaa Bypassed ]




Upload:

Command:

botdev@18.190.157.16: ~ $
#!/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

Filemanager

Name Type Size Permission Actions
Kde Folder 0755
Dialog.pm File 7.22 KB 0644
Editor.pm File 2.11 KB 0644
Gnome.pm File 7.34 KB 0644
Kde.pm File 4.31 KB 0644
Noninteractive.pm File 734 B 0644
Passthrough.pm File 6.29 KB 0644
Readline.pm File 3.53 KB 0644
ScreenSize.pm File 881 B 0644
Teletype.pm File 1.54 KB 0644
Text.pm File 155 B 0644
Web.pm File 2.6 KB 0644