Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
View | Details | Raw Unified | Return to bug 250055 | Differences between
and this patch

Collapse All | Expand All

(-)adasockets-1.8.6.orig/examples/listener.adb (-2 / +2 lines)
Lines 50-56 Link Here
50
   --  then telnet localhost 5000
50
   --  then telnet localhost 5000
51
51
52
   task type Echo is
52
   task type Echo is
53
      entry Start (FD : in Socket_FD);
53
      entry Start (FD : Socket_FD);
54
   end Echo;
54
   end Echo;
55
55
56
   function Rev (S : String) return String;
56
   function Rev (S : String) return String;
Lines 64-70 Link Here
64
      Sock : Socket_FD;
64
      Sock : Socket_FD;
65
   begin
65
   begin
66
      select
66
      select
67
         accept Start (FD : in Socket_FD) do
67
         accept Start (FD : Socket_FD) do
68
            Sock := FD;
68
            Sock := FD;
69
         end Start;
69
         end Start;
70
      or
70
      or
(-)adasockets-1.8.6.orig/examples/stream_listener.adb (-2 / +2 lines)
Lines 50-56 Link Here
50
   --  then stream_sender localhost 5000
50
   --  then stream_sender localhost 5000
51
51
52
   task type Echo is
52
   task type Echo is
53
      entry Start (FD : in Socket_FD);
53
      entry Start (FD : Socket_FD);
54
   end Echo;
54
   end Echo;
55
55
56
   ----------
56
   ----------
Lines 62-68 Link Here
62
      Stream : aliased Socket_Stream_Type;
62
      Stream : aliased Socket_Stream_Type;
63
   begin
63
   begin
64
      select
64
      select
65
         accept Start (FD : in Socket_FD) do
65
         accept Start (FD : Socket_FD) do
66
            Sock := FD;
66
            Sock := FD;
67
            Initialize (Stream, Sock);
67
            Initialize (Stream, Sock);
68
         end Start;
68
         end Start;
(-)adasockets-1.8.6.orig/src/sockets-multicast.adb (-4 / +4 lines)
Lines 153-160 Link Here
153
   -- Send --
153
   -- Send --
154
   ----------
154
   ----------
155
155
156
   procedure Send (Socket : in Multicast_Socket_FD;
156
   procedure Send (Socket : Multicast_Socket_FD;
157
                   Data   : in Stream_Element_Array)
157
                   Data   : Stream_Element_Array)
158
   is
158
   is
159
      Sin   : aliased Sockaddr_In   := Socket.Target;
159
      Sin   : aliased Sockaddr_In   := Socket.Target;
160
      Index : Stream_Element_Offset := Data'First;
160
      Index : Stream_Element_Offset := Data'First;
Lines 184-191 Link Here
184
184
185
   procedure Socket
185
   procedure Socket
186
     (Sock   : out Multicast_Socket_FD;
186
     (Sock   : out Multicast_Socket_FD;
187
      Domain : in Socket_Domain := PF_INET;
187
      Domain : Socket_Domain := PF_INET;
188
      Typ    : in Socket_Type   := SOCK_STREAM)
188
      Typ    : Socket_Type   := SOCK_STREAM)
189
   is
189
   is
190
   begin
190
   begin
191
      Raise_Exception (Program_Error'Identity,
191
      Raise_Exception (Program_Error'Identity,
(-)adasockets-1.8.6.orig/src/sockets-multicast.ads (-4 / +4 lines)
Lines 68-83 Link Here
68
   --  to the local port Local_Port. Use 0 if you do not care about
68
   --  to the local port Local_Port. Use 0 if you do not care about
69
   --  the local port.
69
   --  the local port.
70
70
71
   procedure Send (Socket : in Multicast_Socket_FD;
71
   procedure Send (Socket : Multicast_Socket_FD;
72
                   Data   : in Ada.Streams.Stream_Element_Array);
72
                   Data   : Ada.Streams.Stream_Element_Array);
73
   --  Send data over a multicast socket
73
   --  Send data over a multicast socket
74
74
75
private
75
private
76
76
77
   procedure Socket
77
   procedure Socket
78
     (Sock   : out Multicast_Socket_FD;
78
     (Sock   : out Multicast_Socket_FD;
79
      Domain : in Socket_Domain := PF_INET;
79
      Domain : Socket_Domain := PF_INET;
80
      Typ    : in Socket_Type   := SOCK_STREAM);
80
      Typ    : Socket_Type   := SOCK_STREAM);
81
   pragma No_Return (Socket);
81
   pragma No_Return (Socket);
82
   --  Do not call this one, it will raise Program_Error
82
   --  Do not call this one, it will raise Program_Error
83
83
(-)adasockets-1.8.6.orig/src/sockets-naming.adb (-4 / +4 lines)
Lines 67-74 Link Here
67
   --  Parse an entry
67
   --  Parse an entry
68
68
69
   procedure Raise_Naming_Error
69
   procedure Raise_Naming_Error
70
     (Errno   : in Integer;
70
     (Errno   : Integer;
71
      Message : in String);
71
      Message : String);
72
   --  Raise the exception Naming_Error with an appropriate error message
72
   --  Raise the exception Naming_Error with an appropriate error message
73
73
74
   protected Naming_Lock is
74
   protected Naming_Lock is
Lines 462-469 Link Here
462
   ------------------------
462
   ------------------------
463
463
464
   procedure Raise_Naming_Error
464
   procedure Raise_Naming_Error
465
     (Errno   : in Integer;
465
     (Errno   : Integer;
466
      Message : in String)
466
      Message : String)
467
   is
467
   is
468
468
469
      function Error_Message return String;
469
      function Error_Message return String;
(-)adasockets-1.8.6.orig/src/sockets-stream_io.adb (-2 / +2 lines)
Lines 46-52 Link Here
46
46
47
   procedure Initialize
47
   procedure Initialize
48
     (Stream : in out Socket_Stream_Type;
48
     (Stream : in out Socket_Stream_Type;
49
      FD     : in Socket_FD)
49
      FD     : Socket_FD)
50
   is
50
   is
51
   begin
51
   begin
52
      Stream.FD := FD;
52
      Stream.FD := FD;
Lines 72-78 Link Here
72
72
73
   procedure Write
73
   procedure Write
74
     (Stream : in out Socket_Stream_Type;
74
     (Stream : in out Socket_Stream_Type;
75
      Item   : in Ada.Streams.Stream_Element_Array)
75
      Item   : Ada.Streams.Stream_Element_Array)
76
   is
76
   is
77
   begin
77
   begin
78
      Send (Stream.FD, Item);
78
      Send (Stream.FD, Item);
(-)adasockets-1.8.6.orig/src/sockets-stream_io.ads (-2 / +2 lines)
Lines 46-52 Link Here
46
46
47
   procedure Initialize
47
   procedure Initialize
48
     (Stream : in out Socket_Stream_Type;
48
     (Stream : in out Socket_Stream_Type;
49
      FD     : in Socket_FD);
49
      FD     : Socket_FD);
50
   --  Initialize must be called with an opened socket as parameter before
50
   --  Initialize must be called with an opened socket as parameter before
51
   --  being used as a stream.
51
   --  being used as a stream.
52
52
Lines 57-63 Link Here
57
57
58
   procedure Write
58
   procedure Write
59
     (Stream : in out Socket_Stream_Type;
59
     (Stream : in out Socket_Stream_Type;
60
      Item   : in Ada.Streams.Stream_Element_Array);
60
      Item   : Ada.Streams.Stream_Element_Array);
61
61
62
private
62
private
63
63
(-)adasockets-1.8.6.orig/src/sockets-utils.adb (-2 / +2 lines)
Lines 67-74 Link Here
67
   -- Raise_With_Message --
67
   -- Raise_With_Message --
68
   ------------------------
68
   ------------------------
69
69
70
   procedure Raise_With_Message (Message    : in String;
70
   procedure Raise_With_Message (Message    : String;
71
                                 With_Errno : in Boolean := True)
71
                                 With_Errno : Boolean := True)
72
   is
72
   is
73
      Current_Errno : constant Integer := Errno;
73
      Current_Errno : constant Integer := Errno;
74
   begin
74
   begin
(-)adasockets-1.8.6.orig/src/sockets-utils.ads (-2 / +2 lines)
Lines 44-51 Link Here
44
44
45
   pragma Elaborate_Body;
45
   pragma Elaborate_Body;
46
46
47
   procedure Raise_With_Message (Message    : in String;
47
   procedure Raise_With_Message (Message    : String;
48
                                 With_Errno : in Boolean := True);
48
                                 With_Errno : Boolean := True);
49
   pragma No_Return (Raise_With_Message);
49
   pragma No_Return (Raise_With_Message);
50
   --  Raise Socket_Error with an associated error message
50
   --  Raise Socket_Error with an associated error message
51
51
(-)adasockets-1.8.6.orig/src/sockets.adb (-36 / +36 lines)
Lines 94-100 Link Here
94
94
95
   CRLF : constant String := CR & LF;
95
   CRLF : constant String := CR & LF;
96
96
97
   procedure Refill (Socket : in Socket_FD'Class);
97
   procedure Refill (Socket : Socket_FD'Class);
98
   --  Refill the socket when in buffered mode by receiving one packet
98
   --  Refill the socket when in buffered mode by receiving one packet
99
   --  and putting it in the buffer.
99
   --  and putting it in the buffer.
100
100
Lines 124-130 Link Here
124
   -- Accept_Socket --
124
   -- Accept_Socket --
125
   -------------------
125
   -------------------
126
126
127
   procedure Accept_Socket (Socket     : in Socket_FD;
127
   procedure Accept_Socket (Socket     : Socket_FD;
128
                            New_Socket : out Socket_FD)
128
                            New_Socket : out Socket_FD)
129
   is
129
   is
130
      Sin  : aliased Sockaddr_In;
130
      Sin  : aliased Sockaddr_In;
Lines 147-155 Link Here
147
   ----------
147
   ----------
148
148
149
   procedure Bind
149
   procedure Bind
150
     (Socket : in Socket_FD;
150
     (Socket : Socket_FD;
151
      Port   : in Natural;
151
      Port   : Natural;
152
      Host   : in String := "")
152
      Host   : String := "")
153
   is
153
   is
154
      Sin : aliased Sockaddr_In;
154
      Sin : aliased Sockaddr_In;
155
   begin
155
   begin
Lines 168-176 Link Here
168
   -------------
168
   -------------
169
169
170
   procedure Connect
170
   procedure Connect
171
     (Socket : in Socket_FD;
171
     (Socket : Socket_FD;
172
      Host   : in String;
172
      Host   : String;
173
      Port   : in Positive)
173
      Port   : Positive)
174
   is
174
   is
175
      Sin           : aliased Sockaddr_In;
175
      Sin           : aliased Sockaddr_In;
176
      Current_Errno : Integer;
176
      Current_Errno : Integer;
Lines 195-202 Link Here
195
   -- Customized_Setsockopt --
195
   -- Customized_Setsockopt --
196
   ---------------------------
196
   ---------------------------
197
197
198
   procedure Customized_Setsockopt (Socket : in Socket_FD'Class;
198
   procedure Customized_Setsockopt (Socket : Socket_FD'Class;
199
                                    Optval : in Opt_Type)
199
                                    Optval : Opt_Type)
200
   is
200
   is
201
   begin
201
   begin
202
      pragma Assert (Optval'Size / 8 = Socket_Option_Size (Optname));
202
      pragma Assert (Optval'Size / 8 = Socket_Option_Size (Optname));
Lines 268-274 Link Here
268
   -- Get FD --
268
   -- Get FD --
269
   ------------
269
   ------------
270
270
271
   function Get_FD (Socket : in Socket_FD)
271
   function Get_FD (Socket : Socket_FD)
272
     return Interfaces.C.int
272
     return Interfaces.C.int
273
   is
273
   is
274
   begin
274
   begin
Lines 323-331 Link Here
323
   ----------------
323
   ----------------
324
324
325
   procedure Getsockopt
325
   procedure Getsockopt
326
     (Socket  : in  Socket_FD'Class;
326
     (Socket  :  Socket_FD'Class;
327
      Level   : in  Socket_Level := SOL_SOCKET;
327
      Level   :  Socket_Level := SOL_SOCKET;
328
      Optname : in  Socket_Option;
328
      Optname :  Socket_Option;
329
      Optval  : out Integer)
329
      Optval  : out Integer)
330
   is
330
   is
331
      Len : aliased int;
331
      Len : aliased int;
Lines 375-382 Link Here
375
   ------------
375
   ------------
376
376
377
   procedure Listen
377
   procedure Listen
378
     (Socket     : in Socket_FD;
378
     (Socket     : Socket_FD;
379
      Queue_Size : in Positive := 5)
379
      Queue_Size : Positive := 5)
380
   is
380
   is
381
   begin
381
   begin
382
      if C_Listen (Socket.FD, int (Queue_Size)) = Failure then
382
      if C_Listen (Socket.FD, int (Queue_Size)) = Failure then
Lines 388-395 Link Here
388
   -- New_Line --
388
   -- New_Line --
389
   --------------
389
   --------------
390
390
391
   procedure New_Line (Socket : in Socket_FD'Class;
391
   procedure New_Line (Socket : Socket_FD'Class;
392
                       Count  : in Natural := 1)
392
                       Count  : Natural := 1)
393
   is
393
   is
394
   begin
394
   begin
395
      Put (Socket, CRLF * Count);
395
      Put (Socket, CRLF * Count);
Lines 399-406 Link Here
399
   -- Put --
399
   -- Put --
400
   ---------
400
   ---------
401
401
402
   procedure Put (Socket : in Socket_FD'Class;
402
   procedure Put (Socket : Socket_FD'Class;
403
                  Str    : in String)
403
                  Str    : String)
404
   is
404
   is
405
      Stream : Stream_Element_Array (Stream_Element_Offset (Str'First) ..
405
      Stream : Stream_Element_Array (Stream_Element_Offset (Str'First) ..
406
                                     Stream_Element_Offset (Str'Last));
406
                                     Stream_Element_Offset (Str'Last));
Lines 416-422 Link Here
416
   -- Put_Line --
416
   -- Put_Line --
417
   --------------
417
   --------------
418
418
419
   procedure Put_Line (Socket : in Socket_FD'Class; Str : in String)
419
   procedure Put_Line (Socket : Socket_FD'Class; Str : String)
420
   is
420
   is
421
   begin
421
   begin
422
      Put (Socket, Str & CRLF);
422
      Put (Socket, Str & CRLF);
Lines 451-457 Link Here
451
   -- Receive --
451
   -- Receive --
452
   -------------
452
   -------------
453
453
454
   procedure Receive (Socket : in Socket_FD'Class;
454
   procedure Receive (Socket : Socket_FD'Class;
455
                      Data   : out Stream_Element_Array)
455
                      Data   : out Stream_Element_Array)
456
   is
456
   is
457
      Index   : Stream_Element_Offset := Data'First;
457
      Index   : Stream_Element_Offset := Data'First;
Lines 479-485 Link Here
479
   -- Receive_Some --
479
   -- Receive_Some --
480
   ------------------
480
   ------------------
481
481
482
   procedure Receive_Some (Socket : in Socket_FD'Class;
482
   procedure Receive_Some (Socket : Socket_FD'Class;
483
                           Data   : out Stream_Element_Array;
483
                           Data   : out Stream_Element_Array;
484
                           Last   : out Stream_Element_Offset)
484
                           Last   : out Stream_Element_Offset)
485
   is
485
   is
Lines 503-509 Link Here
503
   ------------
503
   ------------
504
504
505
   procedure Refill
505
   procedure Refill
506
     (Socket : in Socket_FD'Class)
506
     (Socket : Socket_FD'Class)
507
   is
507
   is
508
   begin
508
   begin
509
      pragma Assert (Socket.Buffer /= null);
509
      pragma Assert (Socket.Buffer /= null);
Lines 515-522 Link Here
515
   -- Send --
515
   -- Send --
516
   ----------
516
   ----------
517
517
518
   procedure Send (Socket : in Socket_FD;
518
   procedure Send (Socket : Socket_FD;
519
                   Data   : in Stream_Element_Array)
519
                   Data   : Stream_Element_Array)
520
   is
520
   is
521
      Index : Stream_Element_Offset  := Data'First;
521
      Index : Stream_Element_Offset  := Data'First;
522
      Rest  : Stream_Element_Count   := Data'Length;
522
      Rest  : Stream_Element_Count   := Data'Length;
Lines 545-551 Link Here
545
545
546
   procedure Set_Buffer
546
   procedure Set_Buffer
547
     (Socket : in out Socket_FD'Class;
547
     (Socket : in out Socket_FD'Class;
548
      Length : in Positive := 1500)
548
      Length : Positive := 1500)
549
   is
549
   is
550
   begin
550
   begin
551
      Unset_Buffer (Socket);
551
      Unset_Buffer (Socket);
Lines 557-566 Link Here
557
   ----------------
557
   ----------------
558
558
559
   procedure Setsockopt
559
   procedure Setsockopt
560
     (Socket  : in Socket_FD'Class;
560
     (Socket  : Socket_FD'Class;
561
      Level   : in Socket_Level := Sol_Socket;
561
      Level   : Socket_Level := Sol_Socket;
562
      Optname : in Socket_Option;
562
      Optname : Socket_Option;
563
      Optval  : in Integer)
563
      Optval  : Integer)
564
   is
564
   is
565
   begin
565
   begin
566
      case Socket_Option_Size (Optname) is
566
      case Socket_Option_Size (Optname) is
Lines 603-609 Link Here
603
   --------------
603
   --------------
604
604
605
   procedure Shutdown (Socket : in out Socket_FD;
605
   procedure Shutdown (Socket : in out Socket_FD;
606
                       How    : in Shutdown_Type := Both)
606
                       How    : Shutdown_Type := Both)
607
   is
607
   is
608
   begin
608
   begin
609
      if How /= Both then
609
      if How /= Both then
Lines 628-635 Link Here
628
628
629
   procedure Socket
629
   procedure Socket
630
     (Sock   : out Socket_FD;
630
     (Sock   : out Socket_FD;
631
      Domain : in Socket_Domain := PF_INET;
631
      Domain : Socket_Domain := PF_INET;
632
      Typ    : in Socket_Type   := SOCK_STREAM)
632
      Typ    : Socket_Type   := SOCK_STREAM)
633
   is
633
   is
634
      Result : constant int :=
634
      Result : constant int :=
635
        C_Socket (Socket_Domain_Match (Domain), Socket_Type_Match (Typ), 0);
635
        C_Socket (Socket_Domain_Match (Domain), Socket_Type_Match (Typ), 0);
Lines 647-654 Link Here
647
   procedure Socketpair
647
   procedure Socketpair
648
     (Read_End  : out Socket_FD;
648
     (Read_End  : out Socket_FD;
649
      Write_End : out Socket_FD;
649
      Write_End : out Socket_FD;
650
      Domain    : in Socket_Domain := PF_INET;
650
      Domain    : Socket_Domain := PF_INET;
651
      Typ       : in Socket_Type   := SOCK_STREAM)
651
      Typ       : Socket_Type   := SOCK_STREAM)
652
   is
652
   is
653
      Filedes : aliased Two_Int;
653
      Filedes : aliased Two_Int;
654
      Result  : constant int :=
654
      Result  : constant int :=
(-)adasockets-1.8.6.orig/src/sockets.ads (-35 / +35 lines)
Lines 57-81 Link Here
57
57
58
   procedure Socket
58
   procedure Socket
59
     (Sock   : out Socket_FD;
59
     (Sock   : out Socket_FD;
60
      Domain : in Socket_Domain := PF_INET;
60
      Domain : Socket_Domain := PF_INET;
61
      Typ    : in Socket_Type   := SOCK_STREAM);
61
      Typ    : Socket_Type   := SOCK_STREAM);
62
   --  Create a socket of the given mode
62
   --  Create a socket of the given mode
63
63
64
   Connection_Refused : exception;
64
   Connection_Refused : exception;
65
   Socket_Error       : exception;
65
   Socket_Error       : exception;
66
66
67
   procedure Connect
67
   procedure Connect
68
     (Socket : in Socket_FD;
68
     (Socket : Socket_FD;
69
      Host   : in String;
69
      Host   : String;
70
      Port   : in Positive);
70
      Port   : Positive);
71
   --  Connect a socket on a given host/port. Raise Connection_Refused if
71
   --  Connect a socket on a given host/port. Raise Connection_Refused if
72
   --  the connection has not been accepted by the other end, or
72
   --  the connection has not been accepted by the other end, or
73
   --  Socket_Error (with a more precise exception message) for another error.
73
   --  Socket_Error (with a more precise exception message) for another error.
74
74
75
   procedure Bind
75
   procedure Bind
76
     (Socket : in Socket_FD;
76
     (Socket : Socket_FD;
77
      Port   : in Natural;
77
      Port   : Natural;
78
      Host   : in String := "");
78
      Host   : String := "");
79
   --  Bind a socket on a given port. Using 0 for the port will tell the
79
   --  Bind a socket on a given port. Using 0 for the port will tell the
80
   --  OS to allocate a non-privileged free port. The port can be later
80
   --  OS to allocate a non-privileged free port. The port can be later
81
   --  retrieved using Get_Sock_Port on the bound socket.
81
   --  retrieved using Get_Sock_Port on the bound socket.
Lines 84-91 Link Here
84
   --  Socket_Error can be raised if the system refuses to bind the port.
84
   --  Socket_Error can be raised if the system refuses to bind the port.
85
85
86
   procedure Listen
86
   procedure Listen
87
     (Socket     : in Socket_FD;
87
     (Socket     : Socket_FD;
88
      Queue_Size : in Positive := 5);
88
      Queue_Size : Positive := 5);
89
   --  Create a socket's listen queue
89
   --  Create a socket's listen queue
90
90
91
   type Socket_Level is (SOL_SOCKET, IPPROTO_IP);
91
   type Socket_Level is (SOL_SOCKET, IPPROTO_IP);
Lines 95-129 Link Here
95
                          IP_MULTICAST_LOOP, SO_SNDBUF, SO_RCVBUF);
95
                          IP_MULTICAST_LOOP, SO_SNDBUF, SO_RCVBUF);
96
96
97
   procedure Getsockopt
97
   procedure Getsockopt
98
     (Socket  : in  Socket_FD'Class;
98
     (Socket  :  Socket_FD'Class;
99
      Level   : in  Socket_Level := SOL_SOCKET;
99
      Level   :  Socket_Level := SOL_SOCKET;
100
      Optname : in  Socket_Option;
100
      Optname :  Socket_Option;
101
      Optval  : out Integer);
101
      Optval  : out Integer);
102
   --  Get a socket option
102
   --  Get a socket option
103
103
104
   procedure Setsockopt
104
   procedure Setsockopt
105
     (Socket  : in Socket_FD'Class;
105
     (Socket  : Socket_FD'Class;
106
      Level   : in Socket_Level := SOL_SOCKET;
106
      Level   : Socket_Level := SOL_SOCKET;
107
      Optname : in Socket_Option;
107
      Optname : Socket_Option;
108
      Optval  : in Integer);
108
      Optval  : Integer);
109
   --  Set a socket option
109
   --  Set a socket option
110
110
111
   generic
111
   generic
112
      Level   : Socket_Level;
112
      Level   : Socket_Level;
113
      Optname : Socket_Option;
113
      Optname : Socket_Option;
114
      type Opt_Type is private;
114
      type Opt_Type is private;
115
   procedure Customized_Setsockopt (Socket : in Socket_FD'Class;
115
   procedure Customized_Setsockopt (Socket : Socket_FD'Class;
116
                                    Optval : in Opt_Type);
116
                                    Optval : Opt_Type);
117
   --  Low level control on setsockopt
117
   --  Low level control on setsockopt
118
118
119
   procedure Accept_Socket (Socket     : in Socket_FD;
119
   procedure Accept_Socket (Socket     : Socket_FD;
120
                            New_Socket : out Socket_FD);
120
                            New_Socket : out Socket_FD);
121
   --  Accept a connection on a socket
121
   --  Accept a connection on a socket
122
122
123
   Connection_Closed : exception;
123
   Connection_Closed : exception;
124
124
125
   procedure Send (Socket : in Socket_FD;
125
   procedure Send (Socket : Socket_FD;
126
                   Data   : in Ada.Streams.Stream_Element_Array);
126
                   Data   : Ada.Streams.Stream_Element_Array);
127
   --  Send data on a socket. Raise Connection_Closed if the socket
127
   --  Send data on a socket. Raise Connection_Closed if the socket
128
   --  has been closed.
128
   --  has been closed.
129
129
Lines 132-144 Link Here
132
     return Ada.Streams.Stream_Element_Array;
132
     return Ada.Streams.Stream_Element_Array;
133
   --  Receive data from a socket. May raise Connection_Closed
133
   --  Receive data from a socket. May raise Connection_Closed
134
134
135
   procedure Receive (Socket : in Socket_FD'Class;
135
   procedure Receive (Socket : Socket_FD'Class;
136
                      Data   : out Ada.Streams.Stream_Element_Array);
136
                      Data   : out Ada.Streams.Stream_Element_Array);
137
   --  Get data from a socket. Raise Connection_Closed if the socket has
137
   --  Get data from a socket. Raise Connection_Closed if the socket has
138
   --  been closed before the end of the array.
138
   --  been closed before the end of the array.
139
139
140
   procedure Receive_Some
140
   procedure Receive_Some
141
     (Socket : in Socket_FD'Class;
141
     (Socket : Socket_FD'Class;
142
      Data   : out Ada.Streams.Stream_Element_Array;
142
      Data   : out Ada.Streams.Stream_Element_Array;
143
      Last   : out Ada.Streams.Stream_Element_Offset);
143
      Last   : out Ada.Streams.Stream_Element_Offset);
144
   --  Get some data from a socket. The index of the last element will
144
   --  Get some data from a socket. The index of the last element will
Lines 147-163 Link Here
147
   type Shutdown_Type is (Receive, Send, Both);
147
   type Shutdown_Type is (Receive, Send, Both);
148
148
149
   procedure Shutdown (Socket : in out Socket_FD;
149
   procedure Shutdown (Socket : in out Socket_FD;
150
                       How    : in Shutdown_Type := Both);
150
                       How    : Shutdown_Type := Both);
151
   --  Close a previously opened socket
151
   --  Close a previously opened socket
152
152
153
   procedure Socketpair
153
   procedure Socketpair
154
     (Read_End  : out Socket_FD;
154
     (Read_End  : out Socket_FD;
155
      Write_End : out Socket_FD;
155
      Write_End : out Socket_FD;
156
      Domain    : in Socket_Domain := PF_INET;
156
      Domain    : Socket_Domain := PF_INET;
157
      Typ       : in Socket_Type   := SOCK_STREAM);
157
      Typ       : Socket_Type   := SOCK_STREAM);
158
   --  Create a socketpair.
158
   --  Create a socketpair.
159
159
160
   function Get_FD (Socket : in Socket_FD)
160
   function Get_FD (Socket : Socket_FD)
161
     return Interfaces.C.int;
161
     return Interfaces.C.int;
162
   --  Get a socket's FD field
162
   --  Get a socket's FD field
163
163
Lines 165-180 Link Here
165
   -- String-oriented subprograms --
165
   -- String-oriented subprograms --
166
   ---------------------------------
166
   ---------------------------------
167
167
168
   procedure Put (Socket : in Socket_FD'Class;
168
   procedure Put (Socket : Socket_FD'Class;
169
                  Str    : in String);
169
                  Str    : String);
170
   --  Send a string on the socket
170
   --  Send a string on the socket
171
171
172
   procedure New_Line (Socket : in Socket_FD'Class;
172
   procedure New_Line (Socket : Socket_FD'Class;
173
                       Count  : in Natural := 1);
173
                       Count  : Natural := 1);
174
   --  Send CR/LF sequences on the socket
174
   --  Send CR/LF sequences on the socket
175
175
176
   procedure Put_Line (Socket : in Socket_FD'Class;
176
   procedure Put_Line (Socket : Socket_FD'Class;
177
                       Str    : in String);
177
                       Str    : String);
178
   --  Send a string + CR/LF on the socket
178
   --  Send a string + CR/LF on the socket
179
179
180
   function Get (Socket : Socket_FD'Class) return String;
180
   function Get (Socket : Socket_FD'Class) return String;
Lines 195-201 Link Here
195
   --  Function form for the former procedure
195
   --  Function form for the former procedure
196
196
197
   procedure Set_Buffer (Socket : in out Socket_FD'Class;
197
   procedure Set_Buffer (Socket : in out Socket_FD'Class;
198
                         Length : in Positive := 1500);
198
                         Length : Positive := 1500);
199
   --  Put socket in buffered mode. If the socket is already buffered,
199
   --  Put socket in buffered mode. If the socket is already buffered,
200
   --  the content of the previous buffer will be lost. The buffered mode
200
   --  the content of the previous buffer will be lost. The buffered mode
201
   --  only affects read operation, through Get, Get_Char and Get_Line. Other
201
   --  only affects read operation, through Get, Get_Char and Get_Line. Other

Return to bug 250055