#!/usr/bin/perl # Send2VCL - v0.2 use Socket; # setup $f=$ARGV[0]; $type="application/octet-stream"; $dir=$ARGV[1]; $dir="." unless($dir); $type="image/gif" if($f=~/\.gif$/i); $type="image/jpeg" if($f=~/\.jpg/i); print STDERR "--- Sending $f to VCL/$dir\n"; $fi=$f; $fi =~ s#^.+/([^/]+)$#$1#; # Connect $iaddr = inet_aton("velar.ctrl-c.liu.se") || die "Can't resolve VCL: $!"; $paddr = sockaddr_in(80, $iaddr); $proto = getprotobyname('tcp'); socket(SOCK, PF_INET, SOCK_STREAM, $proto) || die "Can't set up connection to VCL: $!"; connect(SOCK, $paddr) || die "Can't connect to VCL: $!"; # Autoflush everything. $old=select(SOCK); $|=1; select($old); # Print the request print SOCK </tmp/vcl.$$") || die "/tmp/vcl.$$: $!"; print OUT "-----VCLADMIN\r\n"; print OUT "Content-Disposition: form-data; name=\"uploaddir\"\r\n\r\n"; print OUT "$dir\r\n"; print OUT "-----VCLADMIN\r\n"; print OUT "Content-Disposition: form-data; name=\"/Artists/Kelly-Price\"; filename=\"$fi\"\r\n"; print OUT "Content-type: $type\r\n\r\n"; open(IN,"<$f") || die "Can't open $f: $!"; while() { print OUT; } print OUT "\r\n-----VCLADMIN--\r\n"; close(OUT); $len=-s "/tmp/vcl.$$"; print SOCK "Content-Length: $len\r\n\r\n"; open(IN,") { print SOCK; } while() { print; }