|
#!/usr/bin/perl
|
|
use Penguin;
|
|
use Penguin::Rights;
|
|
use Penguin::Frame::Code;
|
|
use Penguin::Frame::Data;
|
|
use Penguin::Wrapper::Transparent; # we're not going to PGP-sign our \
|
|
frames
|
|
use Penguin::Compartment;
|
|
use Penguin::Channel::TCP::Client;
|
|
$targethost = shift;
|
|
$targetport = shift;
|
|
|
|
$mychannel = new Penguin::Channel::TCP::Client Peer => $targethost,
|
|
Port => $targetport;
|
|
$mychannel->open() or die "couldn't connect there.\n";
|
|
$frame = new Penguin::Frame::Code Wrapper => 'Penguin::Wrapper::Tra\
|
|
nsparent';
|
|
|
|
$frame->assemble( Password => '', # frames not signed, password \
|
|
not needed
|
|
Text => "&getparagraphs()\n";
|
|
Title => "Chick",
|
|
Name => "Joe Random User");
|
|
$mychannel->putframe(Frame => $frame);
|
|
$returnframe = $mychannel->getframe();
|
|
$results = $frame1->disassemble(Password => '');
|
|
print "Paragraphs from $targethost, $targetport\n";
|
|
print "Enter your paragraph following the second line.\n";
|
|
print "Terminate it with a blank line.\n";
|
|
print "--------------\n";
|
|
print $results, "\n";
|
|
print "--------------\n";
|
|
|
|
$paragraph = "";
|
|
|
|
while(chomp($line = <STDIN>)) {
|
|
last if ($line eq '');
|
|
$paragraph = $paragraph . $line . "\n";
|
|
}
|
|
$paragraph =~ s/\'/\\\'/; # make minor attempt to escape single quotes
|
|
# to prevent agent from screwing up
|
|
|
|
$mychannel->close();
|
|
|
|
$mychannel = new Penguin::Channel::TCP::Client Peer => $targethost,
|
|
Port => $portnumber;
|
|
$frame = new Penguin::Frame::Code Wrapper => 'Penguin::Wrapper::Tra\
|
|
nsparent';
|
|
$frame->assemble( Password => '', # frames not signed, password \
|
|
not needed
|
|
Text => "&putparagraph('$paragraph')\n";
|
|
Title => "Chick",
|
|
Name => "Joe Random User");
|
|
$mychannel->putframe(Frame => $frame);
|
|
$returnframe = $mychannel->getframe();
|
|
$results = $frame1->disassemble(Password => '');
|
|
print "Server says: $results\n";
|