delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/2013/04/11/21:14:33

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: <cygwin.cygwin.com>
List-Subscribe: <mailto:cygwin-subscribe AT cygwin DOT com>
List-Archive: <http://sourceware.org/ml/cygwin/>
List-Post: <mailto:cygwin AT cygwin DOT com>
List-Help: <mailto:cygwin-help AT cygwin DOT com>, <http://sourceware.org/ml/#faqs>
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 <oleg DOT moskalenko AT citrix DOT com>
To: "cygwin AT cygwin DOT com" <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>
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

H4sIANhdZ1EAA+0b+1PbRjq/Wn/FF5rJyFQYSzYmhZA5HibHHMGMDW1neh2P
kNZYg6z1aeUQLuX+9vu+3dXLlg3pkXR6ZZsGtNr93s9dxbu7vg2iq9n15ouv
Npo4tre2XjTtLafZceRz09Y/1XhhO3bL7mx1OlvbOG+3HMd+sfX1SMrHTCRu
jCh5yK5XrcNlo9GK98RFu4VMOpLdJ6byqw0v0/8H94aNgpA9PQ4SSKfdXqr/
9taC/tudTvNF8+lJWRx/cf0fHp/uvx/AHmz85IYhGPjXTm3mT9EivDBgUQLq
QbD4I4sNo/iqvLDh6aWNMaS2ZNQ8D159VkjuYW75BodXf0tBKgQpSPX0aJDZ
cg3SC5kb7Ri1eAIb8Qgq+NFEsE+sBKIMj96uNzis/8f4o/X0tUbu//3u/tGH
biP5lDw1jgf8f6tlt7T/tzvtZlv6/3az8+z/32Bc9KDfPe/3ji4PuzuG8Qom
6GeGcRJBwuJJELkh2BbEs2gHXs2FguIaZ24NKP+Si0bsFgTzeOQLC7wx824g
GTPgs2Q6SyCI5FOOrQEnCdwGGIyuGAwuDw+7gwHwGLr9fq/fMNKZCXq4gIgD
YrPUSz1H6NmnQCSiYRh7S0YvDq4lvgkTwr1mO7BspR4G8gIjPot8cBFttIEG
Eflu7COZY/djgBTyEVwenYPg3g1LBHF2KL2rAWc8nmBkvbNgyvg0ZBhvfY5Q
EiR0ymIUlccgSCykPZHi8PhkMosCz00CHsHUTVA+JCg3gRNwJ3DNg+gaEg4+
E94exAHKasxiBCKQjIRFMBPMJxKOLk4HYLpeMlMEJGNcgn8+BrGaUsqI8Jdb
Fx/2gEsbgN6URYPBKdzy+IaQ3QbJWEHjSmU6YorAZ3ULuUbKxGw65YIpQnHD
Hozl0uuY3xIMuX3Kp7PQjYPkLpWG1HZBErRlGvOrkE0UN6jIAc9IH/NbYj1m
uMafza1HltemoRtEa1IZJpGNpgapBFAwKSV1NHi7DnIMFDPudBpqqe8ARwmg
snOdgql/7td3DcNZsfUqQDtJFxOxLoTcQ3PTQnN9P0bDQ4Au6sTedhr2tvzT
3N5ptbffEPzWCvi3bpCgNeIsGofEMor5BJ90kissRkhtDelw4eUqJg+JiK0V
W4tMHqL5FvlM6Sjz2XnTsDvyT7OzYzut9hbh6KzAIZh0OCJPM3puK14zxIg1
NcVU4CbOVQt1e4VQs+0x81jwkQllWNVoEdabFbC8mLkJAxd9HP2yKN4D3PnD
I03nADA+X/y9C4P9D1047R3un8L+0VGfAqArCvxWM2s368vI41HEvCTHk3DJ
bMwmnMjWasOIlonZrNIeXN0Bqjskl9IwzXoaIHw3ca9jN5PZAbqxbS8jSWo6
FbZTErYkLyeElFtBC0GXPllp5lEGwEr1uxSbKR8rZEooWstQlMzDKvPTSgU8
5/+LOAhFe6mMVlpoS5Eg84eiT61v6PT48uVLjKMJm4Ldpjh6G/PoemcOxAQL
Isq8PgsRQYxJJJf9ASYo5rmYWnJZIZw1rXnmr4FRbUgV+lLJLuNIAppFOagG
GAfoPFk6NffRm3w4qIOLeW7tilLxWiZWd1KQLWZXFXUqVFhIsRoT2gbLgh6C
TyXArxJMI2TZSjoiF+8cdzLdYfxDFnKoCUdVXuiU5QJSdge4GNUSYHwcIauk
UzekPCgjeXR3xX3MwmOO4T1CdMhbMMH8OCFV5sazQRlXpdJSmSBSfLpcEDJ1
yzoEYUNvkNYPCaZZH2sCTLrHMWMHgyOiThAIC2j2NIhmnyCblHIfcMrZQslP
1TUwcoMQt8wipD+ZRRjwwrsG1Uno80l8p0uUSYBBAKVlTnEVBodZnGkqt21a
qKBaEh1KUyR8KjBdE5coBQlc1oaSK0YCvZU1DwsFQ7R/dCn9pxx5/1fupJ8S
xwP9X7u53UnPf9rt9hb1fx276Tz3f99gbK4bsA49ZB4+cHHjhiy64RY4TbuF
LzYN47sg8sIZBpy19ChmzTBQGEngYWRBL2XJUMXOIXZFV1j9Ubdg0quRX4fP
hkGFjnwM3WuxKx/lX5vrcM5F8InQyDUjMDds7MMw/9JSbJJGXpSE5si34Hj4
vntxfGpBs16vG6p6Slc1FdCYJTNskop7BmqPWvgb9IZnvbMDLKP+gdXRvYRh
GETaBAO9WTc+G7WAu0MK6zpEyd8tnU71gwr+8gFrrBqmCPVGmK+Lm14XNlEx
VkN+VfLdIY5rSnhy/chHLqgQ15I067sknQES2r3A3Eh6yLY7ajuBHVKtaGZA
LCgSUMLZUpu8sYuc/eI0229+3VUkYGSNEDsqd4hFxUdKcSWIBW6xprGANFsX
wb8ZH5miXkKyrRkbmQT0bZO0X6uNpjFuwcWJz+LYWjvGqhC7vTjmMdahbkRd
8FxBZjf+Ga0h6FoN+/gEjYJ+v5eQX0q+2b/MonitIpX1R6A913hSxL5K7bPo
JuK3VCnOYo8tIUL8Qtz9utfclQSJJPYmU1NY5/ukLfsx6H+iwitjNiOiGmEu
3ze54WjmVxvOQdlwfpg3nAzICsOxm4VdaYVf3Dhv5SJkbGraZSDa5LVM1vQk
UOhNNNNkgFQyF4GfXZ6i9yrBOqnpJTGK39STZIALYBGKAorUVEenDAdtX7Im
cwIJqIyjXSQdaY9EcB3J8xZUzZ0nD3jIPm7HQchMOfP9928dle+kgcjwp4Ep
4UClKxZF/aAr1iiIFp2PItz/7OA1FZwl3Hc5XICiJ6gZctA5h2gtcQjZkuxg
NdrvHnZPfuweaT1DC3pnWeir8AiF6V5WfashZ86d+rX2uLwXXAFf/SJ/5LhW
86iz0hw5+sDyIVYPNCkKyFXM3Bv9VEa/iOAL+C0jmWNa8apCzry5F1xKp1lU
+v1zyf2nH/P1f2P89DgeqP+3282s/scOoKPvf9vP9f83GI+v/9+KO7GZ3E2Z
aIzfzU3rc6aFeVmLl6crpiKWBPj/ZhBVzyfetPzCjafuJr1aWL8ZjMpzHlE8
R1jiB3xhKgyu5ucwBl5Xzc0JYBYFuL88h9GzQlQYriOJ2fjOZyNkAAbd/o/d
/jA90zXXbGe70cT/7LX6/KLzXv8CTHmIlQM4PD3pnl08AEAvygD8UACgy1bc
OS1u0fUVTTsL0y2abuG0QUziK8w4dIbzGfswFNFMHyzLmlEkPHavGQjZ+s2/
DTA1takXS/uu3XJzqcoyqtBiNhPuFVZTeWdZo44RS+C32BRiDteJacPGfKYz
Jsp+ROQNesN+93LQJQngSqoaaljMikRi4VQf0a6arK0RDj4jTsLOp4nsJQe9
06HK1FYJmkW7ajVTQfvIA3+9Dq95ZKkTRXSnYVIHXU7xSNZTNUk4odGU12pT
2RmYw+Hx5dnhxUnvbDiUK++N7zD1BqMFTkjhT8cJQftmnNQKJQRO35c0Xuoz
lKot0AxqE1mXi1S3jthlRwi//QYrLUEJBGnTlXnN53JWgiAIG++EaAgxHLmT
ILyjU4j94+HJWfdCla9YIsq9KWlElhbVnE0Dik0X07qIXrB5LbtCDVummaRF
r2X7ACZhRs7g9WuQEYSI656cXfRlPSY5WFjyUi457/feU1zQPGjdrB0qJlTp
u1A/jyoa9PJ9UdaoFutmWTembODuZcqVreeTa1aZOs3jRFXY0H3co/Wd2kdN
QZZUP43StVa111RqtWwbJdO4V0zQ9vSEJdMrEfkFSi3cND6sUfxRodGsa1+m
UJ+J9NxMvaIjqHW4mo1GDOdoG0YWpXJSo6f9EznMtiousyAEQnW0yyVd9G8J
kUhMuNRfihlhWNBcpk9UZ4FyQqi1kirPS3VnzilPHtrkylsgo4KILwItRRN7
b9WKwpKz3sHlMXo6+kthdv/9/slZXffgm5unHHlVbaGhiUIa9DmTBkx+lloU
UVxq+2Jvt8IEsoOF1AzKHm1VaB1/H5IGM29XTk7kZ37/Um2Yc3xlKcoGpE98
kWUYWiWgIWSkF/WSEqcsZNE2FFN5XqRMmRpJpkiCv1yTmUSl/HORUuKF7EzZ
LDqNUGjlqS2Pk1zKsJ7HTSyCh9OER6YOZ1a67XUa9toNEUT6qFSdnJdepAEx
jYe7VHqAqv98zOsHg6PhjyeDk4PTbn1x98MK0GXAwk5iCbeOkXahrgqXi0WY
Oeulg/p8unguqQSTirRcc1uF6toqn4IW9pTLbKtQUFvlA9Cyb5SOZkHHOHlo
qyczJVFFNjx639//oAPC0hyW2s3In8eWHo0vJFV7Pi6jwThZBf3StQseho+O
NE+ZKO3FNOk65TkVWpatLidVWiXPF0GuzS2xIRRddPmj3jtV71WJig5V2K7s
Zq+4Q100l+qqQlmlgl3xGOsvfI61+P1/Q6ib/qfD8dD3/3Tmk57/tBxb3v+2
nK3n859vMPLv/4+Gw+7PF92zAfZsg+GQJn7unXfPsFm87B9297aaTdgI9UHy
RhiJ0Hjify2QWt5X+FcDK0H/lf/1wPz5byrmp8TxgP/jXDP//qMpz387zdbz
9//fYvy+7z+++TcT7S+8+j4sX31vrbr6XoazU3Fp3SndWS+9FJ+rIx+627ar
7rbtxbvtTn4PV7xnL1y0O1UX7U6J6Ed+A/JFF89P8dGH85iPPkrG8vs++nCe
/qMP54s/+nAe+OhjQYOFC9hM2fqjnoesq1VlXa3s050jHjH6Wplh3+qmnySB
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_--

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019