]> mj.ucw.cz Git - moe.git/blob - submit/test.pl
ff36335eeb9beede311aa3ffab18dd2981a3e476
[moe.git] / submit / test.pl
1 #!/usr/bin/perl
2
3 use strict;
4 use warnings;
5
6 use IO::Socket::INET;
7 use IO::Socket::SSL; # qw(debug3);
8
9 use lib "lib/perl5";
10 use Sherlock::Object;
11
12 my $sk = new IO::Socket::INET(
13 #       PeerAddr => "nikam.ms.mff.cuni.cz:443",
14         PeerAddr => "localhost:8888",
15         Proto => "tcp",
16 ) or die "Cannot connect to server: $!";
17
18 my $z = <$sk>;
19 defined $z or die "Server failed to send welcome message\n";
20 $z =~ /^\+/ or die "Server reported error: $z";
21 print $z;
22
23 if ($z =~ /TLS/) {
24         $sk = IO::Socket::SSL->start_SSL(
25                 $sk,
26                 SSL_version => 'TLSv1',
27                 SSL_use_cert => 1,
28                 SSL_key_file => "client-key.pem",
29                 SSL_cert_file => "client-cert.pem",
30                 SSL_ca_file => "ca-cert.pem",
31                 SSL_verify_mode => 3,
32         ) or die "Cannot establish TLS connection: " . IO::Socket::SSL::errstr() . "\n";
33 }
34
35 sub req($) {
36         my $x = shift @_;
37         $x->write($sk);
38         print $sk "\n";
39 }
40
41 sub reply() {
42         my $x = new Sherlock::Object;
43         $x->read($sk) or die "Incomplete reply";
44         $x->get('+') or die "-" . $x->get('-') . "\n";
45         return $x;
46 }
47
48 my $req;
49 my $reply;
50
51 $req = new Sherlock::Object;
52 $req->set("U" => "testuser");
53 req($req);
54 $reply = reply();
55
56 #$req = new Sherlock::Object;
57 #$req->set("!" => "SUBMIT", "T" => "plans", "X" => "pas", "S" => 100);
58 #req($req);
59 #$reply = reply();
60 #print $sk "<..................................................................................................>";
61 #$reply = reply();
62
63 $req = new Sherlock::Object;
64 $req->set("!" => "STATUS");
65 req($req);
66 $reply = reply();
67 $reply->write_indented(*STDOUT);
68
69 close $sk;