This is the mail archive of the gcc-prs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

ada/9535: Datagram socket semantics are wrong


>Number:         9535
>Category:       ada
>Synopsis:       Datagram socket semantics are wrong
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    unassigned
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Sat Feb 01 18:06:01 UTC 2003
>Closed-Date:
>Last-Modified:
>Originator:     Simon Wright
>Release:        gcc version 3.4 20030201 (experimental)
>Organization:
>Environment:
i686-pc-linux-gnu
>Description:
Datagram sockets try to behave like streams -- they will send as many datagrams as necessary to output the data rather than failing if the user sends more than the max datagram size, and read as many as necessary to fill the user buffer.
I believe they should respect the "datagram-ness" of the medium the user has chosen. There are all sorts of problems with the present model (out-of-order arrival etc).
I propose the attached patch.
>How-To-Repeat:
Not applicable.
>Fix:
As per patch.
>Release-Note:
>Audit-Trail:
>Unformatted:
----gnatsweb-attachment----
Content-Type: application/octet-stream; name="g-socket.adb.diff"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="g-socket.adb.diff"

SW5kZXg6IGctc29ja2V0LmFkYgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3Zzcm9vdC9nY2MvZ2Nj
L2djYy9hZGEvZy1zb2NrZXQuYWRiLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjQKZGlmZiAtdSAt
cjEuNCBnLXNvY2tldC5hZGIKLS0tIGctc29ja2V0LmFkYgkxNCBNYXIgMjAwMiAxMDo1OToyMiAt
MDAwMAkxLjQKKysrIGctc29ja2V0LmFkYgkxIEZlYiAyMDAzIDE4OjAzOjI2IC0wMDAwCkBAIC0x
MTgwLDI3ICsxMTgwLDEyIEBACiAgICAgICBJdGVtICAgOiBvdXQgQWRhLlN0cmVhbXMuU3RyZWFt
X0VsZW1lbnRfQXJyYXk7CiAgICAgICBMYXN0ICAgOiBvdXQgQWRhLlN0cmVhbXMuU3RyZWFtX0Vs
ZW1lbnRfT2Zmc2V0KQogICAgaXMKLSAgICAgIEZpcnN0IDogQWRhLlN0cmVhbXMuU3RyZWFtX0Vs
ZW1lbnRfT2Zmc2V0ICAgICAgICAgIDo9IEl0ZW0nRmlyc3Q7Ci0gICAgICBJbmRleCA6IEFkYS5T
dHJlYW1zLlN0cmVhbV9FbGVtZW50X09mZnNldCAgICAgICAgICA6PSBGaXJzdCAtIDE7Ci0gICAg
ICBNYXggICA6IGNvbnN0YW50IEFkYS5TdHJlYW1zLlN0cmVhbV9FbGVtZW50X09mZnNldCA6PSBJ
dGVtJ0xhc3Q7Ci0KICAgIGJlZ2luCi0gICAgICBsb29wCi0gICAgICAgICBSZWNlaXZlX1NvY2tl
dAotICAgICAgICAgICAoU3RyZWFtLlNvY2tldCwKLSAgICAgICAgICAgIEl0ZW0gKEZpcnN0IC4u
IE1heCksCi0gICAgICAgICAgICBJbmRleCwKLSAgICAgICAgICAgIFN0cmVhbS5Gcm9tKTsKLQot
ICAgICAgICAgTGFzdCAgOj0gSW5kZXg7Ci0KLSAgICAgICAgIC0tICBFeGl0IHdoZW4gYWxsIG9y
IHplcm8gZGF0YSByZWNlaXZlZC4gWmVybyBtZWFucyB0aGF0Ci0gICAgICAgICAtLSAgdGhlIHNv
Y2tldCBwZWVyIGlzIGNsb3NlZC4KLQotICAgICAgICAgZXhpdCB3aGVuIEluZGV4IDwgRmlyc3Qg
b3IgZWxzZSBJbmRleCA9IE1heDsKLQotICAgICAgICAgRmlyc3QgOj0gSW5kZXggKyAxOwotICAg
ICAgZW5kIGxvb3A7CisgICAgICBSZWNlaXZlX1NvY2tldAorICAgICAgICAoU3RyZWFtLlNvY2tl
dCwKKyAgICAgICAgIEl0ZW0sCisgICAgICAgICBMYXN0LAorICAgICAgICAgU3RyZWFtLkZyb20p
OwogICAgZW5kIFJlYWQ7CiAKICAgIC0tLS0tLS0tLS0KQEAgLTE3MzIsMjEgKzE3MTcsMTMgQEAK
ICAgICAgIE1heCAgIDogY29uc3RhbnQgQWRhLlN0cmVhbXMuU3RyZWFtX0VsZW1lbnRfT2Zmc2V0
IDo9IEl0ZW0nTGFzdDsKIAogICAgYmVnaW4KLSAgICAgIGxvb3AKLSAgICAgICAgIFNlbmRfU29j
a2V0Ci0gICAgICAgICAgIChTdHJlYW0uU29ja2V0LAotICAgICAgICAgICAgSXRlbSAoRmlyc3Qg
Li4gTWF4KSwKLSAgICAgICAgICAgIEluZGV4LAotICAgICAgICAgICAgU3RyZWFtLlRvKTsKLQot
ICAgICAgICAgLS0gIEV4aXQgd2hlbiBhbGwgb3IgemVybyBkYXRhIHNlbnQuIFplcm8gbWVhbnMg
dGhhdCB0aGUKLSAgICAgICAgIC0tICBzb2NrZXQgaGFzIGJlZW4gY2xvc2VkIGJ5IHBlZXIuCi0K
LSAgICAgICAgIGV4aXQgd2hlbiBJbmRleCA8IEZpcnN0IG9yIGVsc2UgSW5kZXggPSBNYXg7Ci0K
LSAgICAgICAgIEZpcnN0IDo9IEluZGV4ICsgMTsKLSAgICAgIGVuZCBsb29wOworICAgICAgU2Vu
ZF9Tb2NrZXQKKyAgICAgICAgKFN0cmVhbS5Tb2NrZXQsCisgICAgICAgICBJdGVtIChGaXJzdCAu
LiBNYXgpLAorICAgICAgICAgSW5kZXgsCisgICAgICAgICBTdHJlYW0uVG8pOwogCisgICAgICAt
LSAgSXQgaXMgYW4gZXJyb3IgaWYgbm90IGFsbCBvZiB0aGUgZGF0YSBoYXMgYmVlbiBzZW50Lgog
ICAgICAgaWYgSW5kZXggLz0gTWF4IHRoZW4KICAgICAgICAgIHJhaXNlIFNvY2tldF9FcnJvcjsK
ICAgICAgIGVuZCBpZjsK


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]