#!/usr/bin/perl
#
#





define();
getcmd();

my $result=abfrage_ausfuehren();
if ($result = "blablabla")
{
  print STDOUT $2;
  print STDERR $3;
  exit $1;
} else {
  print "$result\n";
  exit 27;
}












###########################################################################
# The fun starts here
#
###########################################################################
# mein RequestAgent
sub define {
  # ein paar http-objekte
  use HTTP::Request;
  use HTTP::Headers;
  # include package for cmd-line-arguments
  use Getopt::Std;

  use LWP;
  package RequestAgent;
  @ISA =qw(LWP::UserAgent);

  sub get_basic_credentials {
    my($self, $realm, $uri) = @_;
    return ($main::opts{'u'},$main::opts{'p'});
  }
}



sub getcmd {
  # hash mit optionen
  %opts =(
	  u => '',
	  p => '',
	  l => 'http://your.server.com',
	  a => '',
	  c => '',
	  h => '0',
	 );
  # welche optionen gibt es ?
  getopts('u:p:l:a:c:h',\%opts);

  # hilfe ausgeben
  if ( $opts{'h'} ) {
    print "Usage: $0 [ -u <username> ] [ -p password ] [-a args ] [ -c command ] -l URL\n";
    exit 1;
  }
} # sub cetcmd

sub abfrage_ausfuehren {

  # string der geschickt wird
  my $post_string="args=".$opts{'a'}."&cmd=".$opts{'c'};
  # user agent erzeugen
  my $ua = RequestAgent->new();
  # http-header erzeugen
  my $header = HTTP::Headers->new();
  # content-type des http-header richtig setzen
  $header->header('Content-Type' => 'application/x-www-form-urlencoded');
  # request-objekt erzeugen
  #print $post_string;
  my $request = HTTP::Request->new('POST', $opts{'l'}, $header, $post_string);
  # den request abschicken und die fkt callbak zum auswerten registrieren
  my $response = $ua->request($request,\&callback);

  # ergebnis des HTTP-requests
  if ($response->is_success) {
    return $theline
  } else {
    # krasser fehler !
    return $response->status_line() ;
  }
}


# hier wird die daten die zurueckkommen ausgewertet
#
sub callback {
  my($data, $response, $protocol) = @_;
  $main::theline=$data;
}
