From owner-freebsd-hackers Mon Sep 23 6:42:22 2002 Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.FreeBSD.org (mx1.FreeBSD.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 4434A37B406 for ; Mon, 23 Sep 2002 06:42:21 -0700 (PDT) Received: from south.nanolink.com (south.nanolink.com [217.75.134.10]) by mx1.FreeBSD.org (Postfix) with SMTP id B43A543E6E for ; Mon, 23 Sep 2002 06:42:19 -0700 (PDT) (envelope-from roam@ringlet.net) Received: (qmail 83962 invoked by uid 85); 23 Sep 2002 13:51:24 -0000 Received: from sbnd.online.bg (HELO straylight.ringlet.net) (217.75.129.196) by south.nanolink.com with SMTP; 23 Sep 2002 13:51:22 -0000 Received: (qmail 926 invoked by uid 1000); 23 Sep 2002 13:42:25 -0000 Date: Mon, 23 Sep 2002 16:42:25 +0300 From: Peter Pentchev To: Vladimir Terziev Cc: hackers@FreeBSD.ORG Subject: Re: Problems catching SIGPIPE when writing to a broken stream Message-ID: <20020923134225.GD361@straylight.oblivion.bg> Mail-Followup-To: Vladimir Terziev , hackers@FreeBSD.ORG References: <20020923163418.216b14ae.vladimirt@rila.bg> Mime-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="+HP7ph2BbKc20aGI" Content-Disposition: inline In-Reply-To: <20020923163418.216b14ae.vladimirt@rila.bg> User-Agent: Mutt/1.5.1i X-Virus-Scanned: by Nik's Monitoring Daemon (AMaViS perl-11d ) Sender: owner-freebsd-hackers@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.ORG --+HP7ph2BbKc20aGI Content-Type: text/plain; charset=windows-1251 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Mon, Sep 23, 2002 at 04:34:18PM +0300, Vladimir Terziev wrote: >=20 > Hi hackers, >=20 > I'm implementing a programmme, which writes a big amount of data (using = write(2)) to a socket. > When the communication stream has been closed by some reason, during the= write(2) call, my process receives SIGPIPE. I tryed to catch it with signa= l(3) and change the behaviour of write(2) call with siginterrupt(3), but SI= GPIPE is still raised to my process and terminates it. >=20 > Any help and ideas will be useful! You should receive a short write(2) before the SIGPIPE is sent, most probably a write() which returns -1 and sets errno to, say, ECONNRESET or something like that. Are you sure *all* your previous writes return as many bytes as you have tried to write? G'luck, Peter --=20 Peter Pentchev roam@ringlet.net roam@FreeBSD.org PGP key: http://people.FreeBSD.org/~roam/roam.key.asc Key fingerprint FDBA FD79 C26F 3C51 C95E DF9E ED18 B68D 1619 4553 If I were you, who would be reading this sentence? --+HP7ph2BbKc20aGI Content-Type: application/pgp-signature Content-Disposition: inline -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.0.7 (FreeBSD) iD8DBQE9jxpA7Ri2jRYZRVMRAhSKAJ43PVomkgifAyDgKG66vjoT4RsNFACfVxS8 BIp1Ffo0iIcBVmC6O9umEzY= =0HMe -----END PGP SIGNATURE----- --+HP7ph2BbKc20aGI-- To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-hackers" in the body of the message