einzelne Programmteile auf Herz und Niere testen
	- alle check routinen
	- Risikoquellen entfernen!


testen:
wget bekommt signal
offline mitten im Downnload
sehr viele Dateien
Signalverhalten von wgetter
Mitten im Download neue Downloads hinzu

kill überarbeiten
root@superbyte:/etc/init.d# Insecure dependency in kill while running with -T switch at /usr/sbin/wgetter line 177,  line 4.

wenn fertig, mit libfam gucken, ob downloads.conf wieder
einträge bekommt? derzeit nur mit SIGUSR2

Configurationsdatei ausbauen!
 - anderen Dateinamen zum abspeichern!
 - alternative URLs
 - steuerung von Anzahl von gleichzeitiger Downloads
 - Konstanteon
 - Alle Pfade u.ä. aus Programm entfernen! (z.b. wget)

mehrere Downloaddateien und Konfigurationsdateien erlauben
 (für jeden Benutzer eine)
Die Benutzerspezifischen Downloads (~/.downloads) werden
dann zu den bedingungen der Benutzer (~/.downloads.conf)
downgeloaden (also Verzeichnis wohin sie wollen uvm.)

 GUI bauen (ähnlich mldonkey)
 - Webfrontend
 - Steuerkonsolenprogramm
 - grafisches Frontend

 Bindings
Automatischer Download bei Konqueror (Einbindung wie kget)

Optionale Module
Optionale Module wenn gefordert einklinken, sonst auch ohne
arbeiten. Auch ohne wgetter downloaden. Größenüberprüfung
durchführen.

Packet
 - Englisch überall verwenden
 - Übersetzen (po + mo files)
 - debianize für deb
 - spec für rpm
 - man page schreiben
 - Lizenzdateien schreiben
 - Makefiles erstellen
 - Beispielkonfigurationsdatei hinzugeben


Size überprüfung:

# Rückgabe:
# >0 Größe in Bytes
# 0 Größe konnte nicht bestimmt werden
# -1 invalide URL
# -2 Status konnte nicht abgefragt werden
sub check_size ($)
{
	my $url = shift;
	my $size;
	# Überprüfe Größe
	
	if ($url =~ /^http:/)
	{
		$size = &HTTP::Size::get_size( $url );

		if( defined $size )
		{
			print "$url size was $size";
		}
		elsif( $HTTP::Size::ERROR == $HTTP::Size::INVALID_URL )
		{
			print "$url is not a valid absolute URL";
			return -1;
		}
		elsif( $HTTP::Size::ERROR == $HTTP::Size::COULD_NOT_FETCH )
		{
			print "Could not fetch $url\nHTTP status is $HTTP::Size::HTTP_STATUS";
			return -2;
		}
		elsif( $HTTP::Size::ERROR == $HTTP::Size::BAD_CONTENT_LENGTH )
		{
			print "Could not determine content length of $url";
			return 0;
		}
	} elsif ($url =~ /^ftp:/)
	{
		#TODO Bestimmung von Größe bei ftp
		
		my $ftp = Net::FTP->new("some.host.name", Debug => 0)
		or die "Cannot connect to some.host.name: $@";

		$ftp->login("anonymous",'-anonymous@')
		or die "Cannot login ", $ftp->message;

		$ftp->cwd("/pub")
		or die "Cannot change working directory ", $ftp->message;

		$ftp->get("that.file")
		or die "get failed ", $ftp->message;

		$ftp->quit;

	}
}
Fr Jul 30 13:54:24 CEST 2021
patent_button.gif valid-html401.png elektra.jpg fsfe-logo.png valid-css.png vim.gif anybrowser.gif