mirror of
https://github.com/vishapoberon/vipak.git
synced 2026-04-05 20:42:26 +00:00
http header is correctly processed, class fields assigned.
This commit is contained in:
parent
0dafbd6674
commit
ebdec10e40
1 changed files with 26 additions and 2 deletions
|
|
@ -12,6 +12,13 @@ CONST
|
||||||
|
|
||||||
hdrDate = "Date";
|
hdrDate = "Date";
|
||||||
hdrServer = "Server";
|
hdrServer = "Server";
|
||||||
|
hdrLastMod = "Last-Modified";
|
||||||
|
hdrETag = "ETag";
|
||||||
|
hdrAcceptRanges = "Accept-Ranges";
|
||||||
|
hdrContLength = "Content-Length";
|
||||||
|
hdrVary = "Vary";
|
||||||
|
hdrContTyp = "Content-Type";
|
||||||
|
|
||||||
|
|
||||||
TYPE
|
TYPE
|
||||||
|
|
||||||
|
|
@ -33,7 +40,7 @@ TYPE
|
||||||
rspnLastModified- : strTypes.pstring;
|
rspnLastModified- : strTypes.pstring;
|
||||||
rspnETag- : strTypes.pstring;
|
rspnETag- : strTypes.pstring;
|
||||||
rspnAcceptRanges- : strTypes.pstring;
|
rspnAcceptRanges- : strTypes.pstring;
|
||||||
rspnContentLength- : INTEGER;
|
rspnContentLength- : LONGINT;
|
||||||
rspnVary- : strTypes.pstring;
|
rspnVary- : strTypes.pstring;
|
||||||
rspnContentType- : strTypes.pstring;
|
rspnContentType- : strTypes.pstring;
|
||||||
|
|
||||||
|
|
@ -172,7 +179,7 @@ PROCEDURE processHeader(VAR http: httpClient; VAR hdr: ARRAY OF CHAR);
|
||||||
VAR
|
VAR
|
||||||
len, i, j: INTEGER;
|
len, i, j: INTEGER;
|
||||||
key, val: ARRAY 64 OF CHAR;
|
key, val: ARRAY 64 OF CHAR;
|
||||||
|
res: SHORTINT;
|
||||||
BEGIN
|
BEGIN
|
||||||
len := Strings.Length(hdr);
|
len := Strings.Length(hdr);
|
||||||
Out.String("header length is "); Out.Int(len, 0); Out.Ln;
|
Out.String("header length is "); Out.Int(len, 0); Out.Ln;
|
||||||
|
|
@ -191,6 +198,23 @@ strUtils.string2pstring(http^.rspnPstrings^[0]^, http^.rspnFirstLine);
|
||||||
Out.String("key: '"); Out.String(key); Out.Char("'"); Out.Ln;
|
Out.String("key: '"); Out.String(key); Out.Char("'"); Out.Ln;
|
||||||
strUtils.getTillEOL(http^.rspnPstrings^[i]^, j+1, val);
|
strUtils.getTillEOL(http^.rspnPstrings^[i]^, j+1, val);
|
||||||
Out.String("val: '"); Out.String(val); Out.Char("'"); Out.Ln;
|
Out.String("val: '"); Out.String(val); Out.Char("'"); Out.Ln;
|
||||||
|
IF key = hdrDate THEN strUtils.string2pstring(val, http^.rspnDate) END;
|
||||||
|
IF key = hdrServer THEN strUtils.string2pstring(val, http^.rspnServer) END;
|
||||||
|
IF key = hdrLastMod THEN strUtils.string2pstring(val, http^.rspnLastModified) END;
|
||||||
|
IF key = hdrETag THEN strUtils.string2pstring(val, http^.rspnETag) END;
|
||||||
|
IF key = hdrAcceptRanges THEN strUtils.string2pstring(val, http^.rspnAcceptRanges) END;
|
||||||
|
|
||||||
|
IF key = hdrContLength THEN
|
||||||
|
IntStr.StrToInt(val, http^.rspnContentLength, res);
|
||||||
|
IF res # IntStr.strAllRight THEN
|
||||||
|
Out.String("not number"); Out.Ln; HALT(1)
|
||||||
|
ELSE
|
||||||
|
Out.String("got content length: "); Out.Int(http^.rspnContentLength, 0); Out.Ln
|
||||||
|
END;
|
||||||
|
END;
|
||||||
|
|
||||||
|
IF key = hdrVary THEN strUtils.string2pstring(val, http^.rspnVary) END;
|
||||||
|
IF key = hdrContTyp THEN strUtils.string2pstring(val, http^.rspnContentType) END;
|
||||||
INC(i)
|
INC(i)
|
||||||
UNTIL i = LEN(http^.rspnPstrings^)-1;
|
UNTIL i = LEN(http^.rspnPstrings^)-1;
|
||||||
END processHeader;
|
END processHeader;
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue