| … | |
… | |
| 38 | |
38 | |
| 39 | &Global::getCourseEnvironment($inputs{'course'}); |
39 | &Global::getCourseEnvironment($inputs{'course'}); |
| 40 | |
40 | |
| 41 | my $cgiURL = getWebworkCgiURL; |
41 | my $cgiURL = getWebworkCgiURL; |
| 42 | my $scriptDirectory = getWebworkScriptDirectory; |
42 | my $scriptDirectory = getWebworkScriptDirectory; |
|
|
43 | require "${scriptDirectory}$Global::FILE_pl"; |
| 43 | require "${scriptDirectory}$Global::HTMLglue_pl"; |
44 | require "${scriptDirectory}$Global::HTMLglue_pl"; |
| 44 | |
45 | |
| 45 | # log access |
46 | # log access |
| 46 | &Global::log_info('', query_string); |
47 | &Global::log_info('', query_string); |
| 47 | |
48 | |
| … | |
… | |
| 84 | untie($db); |
85 | untie($db); |
| 85 | chmod($permission,"${databaseDirectory}${databaseFile}") or |
86 | chmod($permission,"${databaseDirectory}${databaseFile}") or |
| 86 | warn("$0 error", " Can't do chmod($permission, ${databaseDirectory}${databaseFile})"); |
87 | warn("$0 error", " Can't do chmod($permission, ${databaseDirectory}${databaseFile})"); |
| 87 | chown(-1,$Global::numericalGroupID,"${databaseDirectory}${databaseFile}") or |
88 | chown(-1,$Global::numericalGroupID,"${databaseDirectory}${databaseFile}") or |
| 88 | warn("$0 error", " Can't do chown(-1,$Global::numericalGroupID,${databaseDirectory}${databaseFile})"); |
89 | warn("$0 error", " Can't do chown(-1,$Global::numericalGroupID,${databaseDirectory}${databaseFile})"); |
|
|
90 | |
|
|
91 | |
| 89 | &compressSuccess(); |
92 | &compressSuccess(); |
| 90 | |
93 | exit; |
| 91 | |
94 | |
| 92 | sub tie_hash { |
95 | sub tie_hash { |
| 93 | for ($tries = 0; $tries < $TieMaxTries; $tries++) { |
96 | for ($tries = 0; $tries < $TieMaxTries; $tries++) { |
| 94 | return 1 if ($db = tie(%hash, "GDBM_File", "${databaseDirectory}${databaseFile}", $mode, $permission)); |
97 | return 1 if ($db = tie(%hash, "GDBM_File", "${databaseDirectory}${databaseFile}", $mode, $permission)); |
| 95 | sleep($TieSleepInterval); |
98 | sleep($TieSleepInterval); |