X-Recipient: archive-cygwin AT delorie DOT com DomainKey-Signature: a=rsa-sha1; c=nofws; d=sourceware.org; h=list-id :list-unsubscribe:list-subscribe:list-archive:list-post :list-help:sender:from:to:date:subject:message-id:references :in-reply-to:content-type:mime-version; q=dns; s=default; b=o8Ph 1oKMblxTm/ZWTbtYaNVbrEBe44N2mE7dZhv0Iovn6Ik68iABBx9tJ7oGbLHA6N4F YzFrk9/cUE5RoQiPsBGwrrEFVATx9ouloYZ22C272BSuEf3l3n98p3jzqTzJ56oO 26dwpeH4Nox+5LPWUTL6gxxCOnJxfYag9PxTeVc= DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=sourceware.org; h=list-id :list-unsubscribe:list-subscribe:list-archive:list-post :list-help:sender:from:to:date:subject:message-id:references :in-reply-to:content-type:mime-version; s=default; bh=yLIKXqiEOT GhZvbDujkMVQkZr6g=; b=klkaRUq48PFfwDryJr+YzOpkPKYxSzdD3F+gtK95VO iXZiWsSPgi9SUgl/TQvpgLNxL1W6SUfvu3DjSeF9fZxs4+9Rp3Z2qSftioXY0nQk 4+XlvgVVB+KM10wgNgEXJELV0XkMo4ZKW8ei1d+6EXQFkAn3LgnlJb4ABjvqwayS s= Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner AT cygwin DOT com Mail-Followup-To: cygwin AT cygwin DOT com Delivered-To: mailing list cygwin AT cygwin DOT com X-Spam-SWARE-Status: No, score=-6.2 required=5.0 tests=AWL,BAYES_00,KHOP_RCVD_UNTRUST,KHOP_THREADED,RCVD_IN_DNSWL_LOW,RCVD_IN_HOSTKARMA_W,RCVD_IN_HOSTKARMA_WL,RP_MATCHES_RCVD,SPF_HELO_PASS,TW_CG,TW_DP autolearn=ham version=3.3.1 From: Oleg Moskalenko To: "cygwin AT cygwin DOT com" Date: Thu, 11 Apr 2013 18:14:10 -0700 Subject: RE: UDP/DTLS sockets communication pattern is broken in Cygwin Message-ID: <031222CBCF33214AB2EB4ABA279428A30140C1ACA378@SJCPMAILBOX01.citrite.net> References: <031222CBCF33214AB2EB4ABA279428A30140C1ACA374 AT SJCPMAILBOX01 DOT citrite DOT net> <20130411212115 DOT GA1376 AT ednor DOT casa DOT cgf DOT cx> In-Reply-To: <20130411212115.GA1376@ednor.casa.cgf.cx> Content-Type: multipart/mixed; boundary="_002_031222CBCF33214AB2EB4ABA279428A30140C1ACA378SJCPMAILBOX_" MIME-Version: 1.0 X-Virus-Found: No --_002_031222CBCF33214AB2EB4ABA279428A30140C1ACA378SJCPMAILBOX_ Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable I am sending the test case in the attachment.=20 In the attachment, you will find source code for two programs - udpbugserve= r and udpbugclient. "make" will build them both. They work perfectly togeth= er in Linux, FreeBSD and Solaris. But they fail in Cygwin. Thanks Oleg >=20 > On Thu, Apr 11, 2013 at 02:19:25PM -0700, Oleg Moskalenko wrote: > >Hi All > > > >I found a non-standard behavior of UDP sockets in Cygwin. Normally, peop= le =3D > do not experience it, but the communication pattern that I am going to de= sc=3D > ribe here is often used in DTLS (actually, this is virtually the only way= t=3D o make > OpenSSL working with DTLS on the server side), so I suppose that wit=3D h= the > growing DTLS popularity people will experience the problem often. > > > >So this is how to reproduce the problem in "plain" UDP (without actually= using > DTLS): > > > >1) Server application: open a UDP socket (socket A); > > > >2) Server application: bind socket A to a local server address (say, > 172.17.17.107:3478); > > > >3) Server application: wait for a packet from a client application; > > > >4) Client application: open a UDP socket (socket C); > > > >5) Client application: bind socket C it to a local client address (= say, > 168.16.16.106:12345); > > > >6) Client application: send a UDP packet P1 from socket C to server= socket A > (to 172.17.17.107:3478); > > > >7) Server application: socket A receives the packet P1 from socket = C; > > > >8) Server application: create another UDP socket B; > > > >9) Server application: bind socket B TO THE SAME LOCAL ADDRESS as s= ocket > A (172.17.17.107:3478); > > > >10) Server application: connect socket B to the remote address of sock= et C > (168.16.16.106:12345) by calling connect() on the datagram socket B. > > > >11) Server application: send packet P2 from socket B to socket C (to > 168.16.16.106:12345). > > > >12) Client application: on socket C, receive packet P2 from socket B (= from > 172.17.17.107:3478). > > > >13) Client application: from socket C, send packet P3 to the server ad= dress > 172.17.17.107:3478. > > > >14) Server application: socket A receives the packet P3 from the clien= t socket. > ERROR !!! > > > >Step 14 is wrong: the packet P3 must be delivered to socket B, because s= ocket > B is "connected" > >to the remote address 168.16.16.106:12345, but socket A is "unconnected= ". > >Both sockets (A and B) are "bound" to the same server ad=3D dress > >(172.17.17.107:3478) but the connected one (socket B) must be obtaining > packets from the remote address that it is connected to. > > > >This is a very essential functionality for anybody who wants to implemen= t the > server-side DTLS communications. > > > >This patterns works in any OS that I tried (all FreeBSD versions, all Li= nux > versions and Solaris) but Cygwin fails, unfortunately. > > > >I am trying to migrate (port) our server application to Cygwin, and it s= tops us > completely. It works everywhere else. > > > >Please take a look if this is something that can be fixed quickly. >=20 > How about a simple test case? >=20 > cgf >=20 > -- > Problem reports: http://cygwin.com/problems.html > FAQ: http://cygwin.com/faq/ > Documentation: http://cygwin.com/docs.html > Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple --_002_031222CBCF33214AB2EB4ABA279428A30140C1ACA378SJCPMAILBOX_ Content-Type: application/x-gzip; name="cygwinbug.tar.gz" Content-Description: cygwinbug.tar.gz Content-Disposition: attachment; filename="cygwinbug.tar.gz"; size=3537; creation-date="Fri, 12 Apr 2013 01:13:28 GMT"; modification-date="Fri, 12 Apr 2013 01:09:08 GMT" Content-Transfer-Encoding: base64 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 z5loKCd6rpSfx/N4Hs/j/3D8F2ARY0AAQgAA --_002_031222CBCF33214AB2EB4ABA279428A30140C1ACA378SJCPMAILBOX_ Content-Type: text/plain; charset=us-ascii -- Problem reports: http://cygwin.com/problems.html FAQ: http://cygwin.com/faq/ Documentation: http://cygwin.com/docs.html Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple --_002_031222CBCF33214AB2EB4ABA279428A30140C1ACA378SJCPMAILBOX_--