+gboolean
+make_amanda_tmpdir(void)
+{
+ struct stat stat_buf;
+
+ if (stat(AMANDA_TMPDIR, &stat_buf) != 0) {
+ if (errno != ENOENT) {
+ g_debug("Error doing a stat of AMANDA_TMPDIR (%s): %s", AMANDA_TMPDIR, strerror(errno));
+ return FALSE;
+ }
+ /* create it */
+ if (mkdir(AMANDA_TMPDIR,0700) != 0) {
+ g_debug("Error mkdir of AMANDA_TMPDIR (%s): %s", AMANDA_TMPDIR, strerror(errno));
+ return FALSE;
+ }
+ if (chown(AMANDA_TMPDIR, (int)get_client_uid(), (int)get_client_gid()) < 0) {
+ g_debug("Error chown of AMANDA_TMPDIR (%s): %s", AMANDA_TMPDIR, strerror(errno));
+ return FALSE;
+ }
+ return TRUE;
+ } else {
+ /* check permission */
+ return TRUE;
+ }
+}