]> granicus.if.org Git - apache/commitdiff
Remove the dependance on external cp/copy commands
authorBradley Nicholes <bnicholes@apache.org>
Wed, 17 Mar 2004 00:15:12 +0000 (00:15 +0000)
committerBradley Nicholes <bnicholes@apache.org>
Wed, 17 Mar 2004 00:15:12 +0000 (00:15 +0000)
Submitted by: Guenter Knauf <eflash@gmx.net>

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@103002 13f79535-47bb-0310-9956-ffa450edef68

support/htdigest.c

index 56917d59280b0363a12fb6930e6e304b502fa9a5..d5cd0f04d0d0ef55d869f276dc1923982dd34254 100644 (file)
@@ -63,9 +63,9 @@
  * we need to close the file before we can copy it.
  * otherwise it's locked by the system ;-(
  *
- * XXX: Other systems affected? (Netware?, OS2?)
+ * XXX: Other systems affected? (OS2?)
  */
-#if (defined(WIN32))
+#if 0
 #define OMIT_DELONCLOSE 1
 #endif
 
@@ -303,18 +303,19 @@ int main(int argc, const char * const argv[])
        add_password(user, realm, tfp);
     }
     apr_file_close(f);
-#if defined(OS2) || defined(WIN32)
-    sprintf(command, "copy \"%s\" \"%s\"", dirname, argv[1]);
-#else
-    sprintf(command, "cp %s %s", dirname, argv[1]);
-#endif
-
 #ifdef OMIT_DELONCLOSE
     apr_file_close(tfp);
-    system(command);
+#endif
+    /* The temporary file has all the data, just copy it to the new location.
+     */
+    if (apr_file_copy(dirname, argv[1], APR_FILE_SOURCE_PERMS, cntxt) !=
+                APR_SUCCESS) {
+        fprintf(stderr, "%s: unable to update file %s\n", 
+                        argv[0], argv[1]);
+    }
+#ifdef OMIT_DELONCLOSE
     apr_file_remove(dirname, cntxt);
 #else
-    system(command);
     apr_file_close(tfp);
 #endif