summaryrefslogtreecommitdiff
path: root/innobase/os
diff options
context:
space:
mode:
authorunknown <marko@hundin.mysql.fi>2005-01-14 15:23:34 +0200
committerunknown <marko@hundin.mysql.fi>2005-01-14 15:23:34 +0200
commit6d9f637870208e1657bf88a80a49b7d0a9126187 (patch)
tree11bb53344d5f984bf93f67720b2e31be7731a581 /innobase/os
parent8dc27f1ef94d909f063dd2fa3cea2619eae74518 (diff)
parent8870b671b02bcdd87a2ac64fb3b19fb2da3686ee (diff)
downloadmariadb-git-6d9f637870208e1657bf88a80a49b7d0a9126187.tar.gz
Merge marko@bk-internal.mysql.com:/home/bk/mysql-4.1
into hundin.mysql.fi:/home/marko/k/mysql-4.1 innobase/os/os0file.c: Auto merged sql/ha_innodb.cc: Auto merged
Diffstat (limited to 'innobase/os')
-rw-r--r--innobase/os/os0file.c24
1 files changed, 15 insertions, 9 deletions
diff --git a/innobase/os/os0file.c b/innobase/os/os0file.c
index 6fb27346a37..7090e8662f3 100644
--- a/innobase/os/os0file.c
+++ b/innobase/os/os0file.c
@@ -486,7 +486,7 @@ os_io_init_simple(void)
}
}
-#ifndef UNIV_HOTBACKUP
+#if !defined(UNIV_HOTBACKUP) && !defined(__NETWARE__)
/*************************************************************************
Creates a temporary file. This function is defined in ha_innodb.cc. */
@@ -494,7 +494,7 @@ int
innobase_mysql_tmpfile(void);
/*========================*/
/* out: temporary file descriptor, or < 0 on error */
-#endif /* !UNIV_HOTBACKUP */
+#endif /* !UNIV_HOTBACKUP && !__NETWARE__ */
/***************************************************************************
Creates a temporary file. */
@@ -504,9 +504,12 @@ os_file_create_tmpfile(void)
/*========================*/
/* out: temporary file handle, or NULL on error */
{
+#ifdef __NETWARE__
+ FILE* file = tmpfile();
+#else /* __NETWARE__ */
FILE* file = NULL;
int fd = -1;
-#ifdef UNIV_HOTBACKUP
+# ifdef UNIV_HOTBACKUP
int tries;
for (tries = 10; tries--; ) {
char* name = tempnam(fil_path_to_mysql_datadir, "ib");
@@ -515,15 +518,15 @@ os_file_create_tmpfile(void)
}
fd = open(name,
-# ifdef __WIN__
+# ifdef __WIN__
O_SEQUENTIAL | O_SHORT_LIVED | O_TEMPORARY |
-# endif /* __WIN__ */
+# endif /* __WIN__ */
O_CREAT | O_EXCL | O_RDWR,
S_IREAD | S_IWRITE);
if (fd >= 0) {
-# ifndef __WIN__
+# ifndef __WIN__
unlink(name);
-# endif /* !__WIN__ */
+# endif /* !__WIN__ */
free(name);
break;
}
@@ -534,22 +537,25 @@ os_file_create_tmpfile(void)
name);
free(name);
}
-#else /* UNIV_HOTBACKUP */
+# else /* UNIV_HOTBACKUP */
fd = innobase_mysql_tmpfile();
-#endif /* UNIV_HOTBACKUP */
+# endif /* UNIV_HOTBACKUP */
if (fd >= 0) {
file = fdopen(fd, "w+b");
}
+#endif /* __NETWARE__ */
if (!file) {
ut_print_timestamp(stderr);
fprintf(stderr,
" InnoDB: Error: unable to create temporary file;"
" errno: %d\n", errno);
+#ifndef __NETWARE__
if (fd >= 0) {
close(fd);
}
+#endif /* !__NETWARE__ */
}
return(file);