patches for easier mirroring, to eliminate a special copy, to make www.freebsd.org/security a full copy of security.freebsd.org and be eventually be the same. For now files are just sitting there. The symlinks are missing. Discussed on: www (repository location) Discussed with: simon (so)
		
			
				
	
	
		
			42 lines
		
	
	
	
		
			1.1 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			42 lines
		
	
	
	
		
			1.1 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
| Index: dol.c
 | |
| ===================================================================
 | |
| RCS file: /mnt/ncvs/src/bin/csh/Attic/dol.c,v
 | |
| retrieving revision 1.8.2.1
 | |
| retrieving revision 1.8.2.2
 | |
| diff -u -r1.8.2.1 -r1.8.2.2
 | |
| --- dol.c	1999/08/29 14:11:42	1.8.2.1
 | |
| +++ dol.c	2000/11/05 21:34:27	1.8.2.2
 | |
| @@ -40,6 +40,7 @@
 | |
|  #endif
 | |
|  #endif /* not lint */
 | |
|  
 | |
| +#include <sys/time.h>
 | |
|  #include <sys/types.h>
 | |
|  #include <fcntl.h>
 | |
|  #include <errno.h>
 | |
| @@ -850,13 +851,20 @@
 | |
|      Char  **vp;
 | |
|      bool    quoted;
 | |
|      char   *tmp;
 | |
| +    struct timeval tv;
 | |
|  
 | |
| -    if (creat(tmp = short2str(shtemp), 0600) < 0)
 | |
| -	stderror(ERR_SYSTEM, tmp, strerror(errno));
 | |
| -    (void) close(0);
 | |
| -    if (open(tmp, O_RDWR) < 0) {
 | |
| +again:
 | |
| +    tmp = short2str(shtemp);
 | |
| +    if (open(tmp, O_RDWR|O_CREAT|O_TRUNC|O_EXCL, 0600) < 0) {
 | |
|  	int     oerrno = errno;
 | |
| -
 | |
| +	if (errno == EEXIST) {
 | |
| +	    if (unlink(tmp) == -1) {
 | |
| +		(void) gettimeofday(&tv, NULL);
 | |
| +		shtemp = Strspl(STRtmpsh, putn((((int)tv.tv_sec) ^
 | |
| +		    ((int)tv.tv_usec) ^ ((int)getpid())) & 0x00ffffff));
 | |
| +	    }
 | |
| +	    goto again;
 | |
| +	}
 | |
|  	(void) unlink(tmp);
 | |
|  	errno = oerrno;
 | |
|  	stderror(ERR_SYSTEM, tmp, strerror(errno));
 |