From dfdff77871bd749264ddc46f80dd8c5566fd48c0 Mon Sep 17 00:00:00 2001 From: oddsock Date: Mon, 3 May 2004 14:59:40 +0000 Subject: [PATCH] some special handling with rename() needed for win32 svn path=/icecast/trunk/icecast/; revision=6616 --- src/auth.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/auth.c b/src/auth.c index 0f789ded..67334e49 100644 --- a/src/auth.c +++ b/src/auth.c @@ -366,10 +366,18 @@ int auth_htpasswd_deleteuser(auth_t *auth, char *username) fclose(passwdfile); /* Now move the contents of the tmp file to the original */ - if (rename(tmpfile, state->filename) != 0) { + /* Windows won't let us rename a file if the destination file + exists...so, lets remove the original first */ + if (remove(state->filename) != 0) { ERROR3("Problem moving temp authentication file to original \"%s\" - \"%s\": %s", tmpfile, state->filename, strerror(errno)); } + else { + if (rename(tmpfile, state->filename) != 0) { + ERROR3("Problem moving temp authentication file to original \"%s\" - \"%s\": %s", + tmpfile, state->filename, strerror(errno)); + } + } free(tmpfile);