From serge69@nym.alias.net Thu Apr 22 12:23:50 1999
Return-Path: <serge69@nym.alias.net>
Received: from anon.lcs.mit.edu (anon.lcs.mit.edu [18.26.0.254])
	by hub.freebsd.org (Postfix) with SMTP id 64F2814D1E
	for <FreeBSD-gnats-submit@freebsd.org>; Thu, 22 Apr 1999 12:23:46 -0700 (PDT)
	(envelope-from serge69@nym.alias.net)
Message-Id: <19990422192116.31130.qmail@nym.alias.net>
Date: 22 Apr 1999 19:21:16 -0000
From: Sergey <serge69@nym.alias.net>
To: FreeBSD-gnats-submit@freebsd.org
Subject: fetch http-timeout/timestamp bug

>Number:         11283
>Category:       bin
>Synopsis:       fetch http-timeout/timestamp bug
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    des
>State:          closed
>Quarter:        
>Keywords:       
>Date-Required:  
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Thu Apr 22 12:30:01 PDT 1999
>Closed-Date:    Thu Aug 31 07:47:54 PDT 2000
>Last-Modified:  Thu Aug 31 07:48:52 PDT 2000
>Originator:     Sergey
>Release:        FreeBSD 3.1-RELEASE i386 & FreeBSD-3.1-stable
>Organization:
>Environment:
>Description:

	Timestamp on output file is incorrect when fetch terminates due
	to http timeout (-R -T). This causes re-fetching of the WHOLE file 
	on restart (-r). 

>How-To-Repeat:

	client$ fetch -R -T 5 http://server/x.tgz
	server# killall -stop httpd && sleep 5 && killall -cont httpd
	client$ fetch -R -r http://server/x.tgz
	Fetching .... 0%

>Fix:
--- main.c.org	Thu Feb 25 23:42:00 1999
+++ main.c	Thu Apr 22 22:30:56 1999
@@ -277,6 +277,7 @@
 		fprintf(stderr, "\n"); /* just in case */
 		warnx("%s: interrupted by signal: %s", fs->fs_status, 
 		      sys_signame[error]);
+close:
 		sigdelset(&omask, error);
 		signal(error, SIG_DFL);
 		sigprocmask(SIG_SETMASK, (sigset_t *)&omask, 0);
@@ -286,7 +287,6 @@
 	sigprocmask(SIG_SETMASK, (sigset_t *)&omask, 0);
 	error = fs->fs_retrieve(fs);
 
-close:
 	sigaction(SIGHUP, &oldhup, 0);
 	sigaction(SIGINT, &oldint, 0);
 	sigaction(SIGQUIT, &oldquit, 0);



>Release-Note:
>Audit-Trail:

From: "Andrey A. Chernov" <ache@nagual.pp.ru>
To: Sergey <serge69@nym.alias.net>
Cc: FreeBSD-gnats-submit@FreeBSD.ORG
Subject: Re: bin/11283: fetch http-timeout/timestamp bug
Date: Sat, 24 Apr 1999 23:29:02 +0400

 On Thu, Apr 22, 1999 at 07:21:16PM -0000, Sergey wrote:
 > +close:
 >  		sigdelset(&omask, error);
 >  		signal(error, SIG_DFL);
 >  		sigprocmask(SIG_SETMASK, (sigset_t *)&omask, 0);
 
 Your change cause fetch terminated upon timeout which is unacceptable if
 several files specified in command line.
 
 -- 
 Andrey A. Chernov
 http://nagual.pp.ru/~ache/
 MTH/SH/HE S-- W-- N+ PEC>+ D A a++ C G>+ QH+(++) 666+>++ Y
 
Responsible-Changed-From-To: freebsd-bugs->des 
Responsible-Changed-By: des 
Responsible-Changed-When: Thu Jun 29 02:30:51 PDT 2000 
Responsible-Changed-Why:  
fetch(1) is mine. 

http://www.freebsd.org/cgi/query-pr.cgi?pr=11283 
State-Changed-From-To: open->closed 
State-Changed-By: des 
State-Changed-When: Thu Aug 31 07:47:54 PDT 2000 
State-Changed-Why:  
Fixed in 4.x and 5.x. 3.x is no longer supported. 

http://www.freebsd.org/cgi/query-pr.cgi?pr=11283 
>Unformatted:
 
