use OSSP::uuid for link generation
authorheiko
Wed, 11 May 2011 12:22:00 +0200
changeset 12 79baa14a3b9c
parent 11 189e63c5b36f
child 13 0996f1a07114
use OSSP::uuid for link generation
upload.pl
--- a/upload.pl	Wed May 11 10:37:40 2011 +0200
+++ b/upload.pl	Wed May 11 12:22:00 2011 +0200
@@ -28,8 +28,8 @@
 use CGI::Pretty;
 use IO::File;
 use File::Basename;
-use Digest::SHA1 qw(sha1_hex);
 use Digest::MD5 qw(md5_hex);
+use OSSP::uuid;
 
 my $DIR      = "d/{view}";
 my $DIR_URI = "/$DIR";
@@ -56,7 +56,7 @@
 	or die "Can't mkdir $DIR: $!\n";
     
 
-    if (param("delete") =~ /([a-z\d]+-\d+)/i) {
+    if (param("delete") =~ /([-a-z\d]+-\d+)/i) {
         my $dir = $1;
         if (-d "$DIR/$dir") {
             unlink map { /(.*)/ && $1 } glob("$DIR/$dir/*")
@@ -78,6 +78,7 @@
     if (length(my $file = param("upload"))) {
 	my $days = param("expires");
         my $expires;
+	tie my $uuid => "OSSP::uuid::tie", "v4";
 
         # sanitize expires
         $days =~ /.*?(\d+).*/;
@@ -90,7 +91,7 @@
         $filename =~ /(.*)/;
         $filename = $1;
 
-        my $dir = "$DIR/" . sha1_hex(time + rand(10_000)) . "-$expires";
+        my $dir = "$DIR/$uuid-$expires";
         mkdir $dir, 0750 or die "Can't mkdir $dir: $!\n";
         my $outfh = new IO::File ">$dir/$filename"
           or die "Can't create $dir/$filename: $!\n";