Block more HTTP request methods
[mgsmtp.git] / SocketUtils.pas
1 {
2 Copyright (C) 2010 MegaBrutal
3
4 This unit is free software: you can redistribute it and/or modify
5 it under the terms of the GNU Lesser General Public License as published by
6 the Free Software Foundation, either version 3 of the License, or
7 (at your option) any later version.
8
9 This unit is distributed in the hope that it will be useful,
10 but WITHOUT ANY WARRANTY; without even the implied warranty of
11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 GNU Lesser General Public License for more details.
13
14 You should have received a copy of the GNU Lesser General Public License
15 along with this program. If not, see <http://www.gnu.org/licenses/>.
16 }
17
18
19 {$MODE DELPHI}
20
21 unit SocketUtils;
22
23 interface
24 uses Sockets;
25
26 type
27
28 socket = longint;
29
30
31 function SockReadLn(Sock: socket; var Line: string): boolean;
32 function SockWriteLn(Sock: socket; const Line: string): boolean;
33
34
35
36 implementation
37
38
39 function SockReadLn(Sock: socket; var Line: string): boolean;
40 var recvb: longint; ch: char;
41 begin
42 Line:= '';
43 repeat
44 recvb:= fpRecv(Sock, @ch, 1, 0);
45 if (recvb = 1) and ((ch <> #13) and (ch <> #10)) then
46 Line:= Line + ch;
47 until (recvb <> 1) or (ch = #10);
48 Result:= (recvb = 1);
49 end;
50
51 function SockWriteLn(Sock: socket; const Line: string): boolean;
52 begin
53 Result:= fpSend(Sock, PChar(Line + #13#10), Length(Line) + 2, 0) <> -1;
54 end;
55
56
57 end.