Commit 26e12373 authored by Dr. Stephen Henson's avatar Dr. Stephen Henson
Browse files

Fix the Win32_rename() function so it correctly
returns an error code. Use the same code in Win9X
and NT.

Fix some ca.c options so they work under Win32:
unlink/rename wont work under Win32 unless the file
is closed.
parent 4882171d
Loading
Loading
Loading
Loading
+7 −10
Original line number Diff line number Diff line
@@ -333,16 +333,13 @@ void program_name(char *in, char *out, int size)
#ifdef OPENSSL_SYS_WIN32
int WIN32_rename(char *from, char *to)
	{
#ifdef OPENSSL_SYS_WINNT
	int ret;
/* Note: MoveFileEx() doesn't work under Win95, Win98 */

	ret=MoveFileEx(from,to,MOVEFILE_REPLACE_EXISTING|MOVEFILE_COPY_ALLOWED);
	return(ret?0:-1);
#else
	unlink(to);
	return MoveFile(from, to);
#endif
	/* Windows rename gives an error if 'to' exists, so delete it
	 * first and ignore file not found errror
	 */
	if((remove(to) != 0) && (errno != ENOENT))
		return -1;
#undef rename
	return rename(from, to);
	}
#endif

+4 −0
Original line number Diff line number Diff line
@@ -1581,6 +1581,10 @@ bad:
#else
			strcat(buf[1],"-old");
#endif
			BIO_free(in);
			in = NULL;
			BIO_free(out);
			out = NULL;
			if (rename(dbfile,buf[1]) < 0)
				{
				BIO_printf(bio_err,"unable to rename %s to %s\n", dbfile, buf[1]);