Date: Wed, 7 Feb 2001 17:11:10 -0800 (PST) From: yxiao@cisco.com To: freebsd-gnats-submit@FreeBSD.org Subject: misc/24942: tftp client timeout failure Message-ID: <200102080111.f181BA453783@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
>Number: 24942 >Category: misc >Synopsis: tftp client timeout failure >Confidential: no >Severity: non-critical >Priority: medium >Responsible: freebsd-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: sw-bug >Submitter-Id: current-users >Arrival-Date: Wed Feb 07 17:20:00 PST 2001 >Closed-Date: >Last-Modified: >Originator: Yuqing Xiao >Release: $FreeBSD: src/usr.bin/tftp/tftp.c,v 1.5 1999/08/28 01:06:24 peter Exp >Organization: Cisco Systems >Environment: Linux dhcp-171-70-93-24.cisco.com 2.2.14-5.0 #1 Tue Mar 7 21:07:39 EST 2000 i686 unknown >Description: Alarm clock can only fired once. Problem: SIGALRM blocked. >How-To-Repeat: >Fix: change timer function: --- tftp.c 2000/08/01 20:38:08 1.2 +++ tftp.c 2001/02/07 16:18:03 @@ -455,9 +455,15 @@ timer(sig) int sig; { + sigset_t sigset; + int error; + //signal(SIGALRM, timer); + error = sigemptyset(&sigset); + error |= sigdelset(&sigset, SIGALRM); + error |= sigprocmask(SIG_SETMASK, &sigset, NULL); timeout += rexmtval; - if (timeout >= maxtimeout) { + if (timeout >= maxtimeout || error) { printf("Transfer timed out.\n"); global_errno = ETIMEDOUT; longjmp(toplevel, -1); >Release-Note: >Audit-Trail: >Unformatted: To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-bugs" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200102080111.f181BA453783>