Commit 25f350a0 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 121cb9ee
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 and 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
@@ -1569,6 +1569,10 @@ bad:
				}
			j=TXT_DB_write(out,db);
			if (j <= 0) goto err;
			BIO_free_all(out);
			out = NULL;
			BIO_free_all(in);
			in = NULL;
			strncpy(buf[1],dbfile,BSIZE-4);
			buf[1][BSIZE-4]='\0';
#ifndef OPENSSL_SYS_VMS