File: content.pm

package info (click to toggle)
webrt 1.0.1-4
  • links: PTS
  • area: contrib
  • in suites: potato
  • size: 652 kB
  • ctags: 324
  • sloc: perl: 5,541; makefile: 265; ansic: 28
file content (91 lines) | stat: -rwxr-xr-x 2,528 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
package rt;

sub write_content {
    local ($time, $serial_num,$transaction_num,$content) =@_;
     my ($temp,$file);


    require rt::support::utils; # for untaint

    $serial_num=int($serial_num);
    $transaction_num=int($transaction_num);
    ($weekday, $month, $monthday, $hour, $min, $sec, $TZ, $year)=&parse_time($time);
	$serial_num = &rt::untaint($serial_num);
	$transaction_num = &rt::untaint($transaction_num);
	$weekday= &rt::untaint($weekday);
	$month= &rt::untaint($month);
	$monthday = &rt::untaint($monthday);
	$hour = &rt::untaint($hour);
	$min = &rt::untaint($min);
	$sec = &rt::untaint($sec);
#	$TZ= &rt::untaint($TZ);
	$year = &rt::untaint($year);

    $temp = $<;
    $< = $>; #set real to effective uid
    

    if (! (-d "$transaction_dir/$year")) {
	mkdir ("$transaction_dir/$year",$dirmode) or  
           die "Could not create dir $transaction_dir/$year: $!\n";
#	chown $rtusernum, $rtgroupnum, "$transaction_dir/$year";
    }
    $month_dir = "$transaction_dir/$year/$month"; 

    if (! (-d "$month_dir"))  {
	mkdir("$month_dir",$dirmode) or 
           die "Could not create dir $month_dir: $!\n";
	#chown $rtusernum, $rtgroupnum, "$transaction_dir/$year/$month";
    }

    $day_dir = "$month_dir/$monthday";
  

  if (! (-d "$day_dir"))  {
	mkdir ("$day_dir", $dirmode) or
		die "Could not create dir $day_dir: $!\n"; 
#	chown $rtusernum, $rtgroupnum, "$transaction_dir/$year/$month/$monthday";
    }
    $file="$transaction_dir/$year/$month/$monthday/$serial_num.$transaction_num";



    open(CONTENT, ">$file") or die "Couldn't open $file for writing: $!\n";
    print CONTENT "$content" or die "Error writing to $file: $!\n";
    close (CONTENT);

    
}




sub read_content {
    
    local ($in_time, $in_serial_num,$in_transaction_num) =@_;
    local ($content="");
    
    $in_serial_num=int($in_serial_num);
    $in_transaction_num=int($in_transaction_num);
    
    ($weekday, $month, $monthday, $hour, $min, $sec, $TZ, $year)=&parse_time($in_time);
    $file="$transaction_dir/$year/$month/$monthday/$in_serial_num.$in_transaction_num";
    if (! (-r $file)) 
    {
	$file="$transaction_dir/$year/$month/$in_serial_num.$in_transaction_num";
	if (! (-r $file))
        {                                  	
	    
	    return (0,"The specified transaction's content is missing or inaccessable. ($in_time, $in_serial_num:$in_transaction_num)");
	}
    }
    open(CONTENT, $file); 
    while (<CONTENT>)
    {
	$content .= $_;
    }
    close (CONTENT);
    return (1,$content);
}

1;