From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 19787 invoked by alias); 1 Feb 2003 18:06:01 -0000 Mailing-List: contact gcc-prs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Archive: List-Post: List-Help: Sender: gcc-prs-owner@gcc.gnu.org Received: (qmail 19769 invoked by uid 71); 1 Feb 2003 18:06:01 -0000 Resent-Date: 1 Feb 2003 18:06:01 -0000 Resent-Message-ID: <20030201180601.19767.qmail@sources.redhat.com> Resent-From: gcc-gnats@gcc.gnu.org (GNATS Filer) Resent-Cc: gcc-prs@gcc.gnu.org, gcc-bugs@gcc.gnu.org Resent-Reply-To: gcc-gnats@gcc.gnu.org, simon@pushface.org Received: (qmail 19691 invoked by uid 48); 1 Feb 2003 18:04:55 -0000 Message-Id: <20030201180455.19690.qmail@sources.redhat.com> Date: Sat, 01 Feb 2003 18:06:00 -0000 From: simon@pushface.org Reply-To: simon@pushface.org To: gcc-gnats@gcc.gnu.org X-Send-Pr-Version: gnatsweb-2.9.3 (1.1.1.1.2.31) Subject: ada/9535: Datagram socket semantics are wrong X-SW-Source: 2003-02/txt/msg00010.txt.bz2 List-Id: >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