You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@httpd.apache.org by dg...@hyperreal.org on 1998/06/04 22:28:32 UTC
cvs commit: apache-1.3/src/support htpasswd.c
dgaudet 98/06/04 13:28:31
Modified: src CHANGES
src/support htpasswd.c
Log:
remove the system() call...
PR: 2332
Submitted by: "M.D.Parker" <md...@netcom.com>
Revision Changes Path
1.886 +3 -0 apache-1.3/src/CHANGES
Index: CHANGES
===================================================================
RCS file: /export/home/cvs/apache-1.3/src/CHANGES,v
retrieving revision 1.885
retrieving revision 1.886
diff -u -r1.885 -r1.886
--- CHANGES 1998/06/04 20:13:11 1.885
+++ CHANGES 1998/06/04 20:28:29 1.886
@@ -1,5 +1,8 @@
Changes with Apache 1.3.1
+ *) Remove the system() call from htpasswd.c, which eliminates a system
+ dependancy. ["M.D.Parker" <md...@netcom.com>] PR#2332
+
*) PORT: Fix compilation failures on NEXTSTEP.
[Rex Dieter <rd...@math.unl.edu>] PR#2293, 2316
1.16 +13 -9 apache-1.3/src/support/htpasswd.c
Index: htpasswd.c
===================================================================
RCS file: /export/home/cvs/apache-1.3/src/support/htpasswd.c,v
retrieving revision 1.15
retrieving revision 1.16
diff -u -r1.15 -r1.16
--- htpasswd.c 1998/04/21 20:14:06 1.15
+++ htpasswd.c 1998/06/04 20:28:31 1.16
@@ -161,7 +161,7 @@
if (argc == 4) {
if (strcmp(argv[1], "-c"))
usage();
- if (!(tfp = fopen(argv[2], "w"))) {
+ if (!(tfp = fopen(argv[2], "w+"))) {
fprintf(stderr, "Could not open passwd file %s for writing.\n",
argv[2]);
perror("fopen");
@@ -176,12 +176,12 @@
usage();
tn = tmpnam(NULL);
- if (!(tfp = fopen(tn, "w"))) {
+ if (!(tfp = fopen(tn, "w+"))) {
fprintf(stderr, "Could not open temp file.\n");
exit(1);
}
- if (!(f = fopen(argv[1], "r"))) {
+ if (!(f = fopen(argv[1], "r+"))) {
fprintf(stderr,
"Could not open passwd file %s for reading.\n", argv[1]);
fprintf(stderr, "Use -c option to create new one.\n");
@@ -211,14 +211,18 @@
printf("Adding user %s\n", user);
add_password(user, tfp);
}
+/*
+* make a copy from the tmp file to the actual file
+*/
+ rewind(f);
+ rewind(tfp);
+ while ( fgets(command,MAX_STRING_LEN,tfp) != NULL)
+ {
+ fputs(command,f);
+ }
+
fclose(f);
fclose(tfp);
-#if defined(__EMX__) || defined(WIN32)
- sprintf(command, "copy \"%s\" \"%s\"", tn, argv[1]);
-#else
- sprintf(command, "cp %s %s", tn, argv[1]);
-#endif
- system(command);
unlink(tn);
exit(0);
}