mirror of
https://github.com/vishapoberon/vipak.git
synced 2026-04-05 20:42:26 +00:00
http fianly works, not for bin files, unfortunately
This commit is contained in:
parent
9273e64fc6
commit
ab197c6483
3 changed files with 55 additions and 10 deletions
41
http.Mod
41
http.Mod
|
|
@ -8,7 +8,35 @@ TYPE
|
||||||
PSTRING = POINTER TO ARRAY OF CHAR;
|
PSTRING = POINTER TO ARRAY OF CHAR;
|
||||||
|
|
||||||
VAR
|
VAR
|
||||||
buff: ARRAY MAXARRAYNUMBEREXTENDED OF CHAR;
|
buff, buff2: ARRAY MAXARRAYNUMBEREXTENDED OF CHAR;
|
||||||
|
|
||||||
|
PROCEDURE getClean(buff: ARRAY OF CHAR; VAR clean: ARRAY OF CHAR);
|
||||||
|
VAR
|
||||||
|
i: INTEGER;
|
||||||
|
newLine: ARRAY 2 OF CHAR;
|
||||||
|
lineIsHeader, EOL, notFirstLine: BOOLEAN;
|
||||||
|
BEGIN
|
||||||
|
i := 0;
|
||||||
|
notFirstLine := FALSE;
|
||||||
|
lineIsHeader := FALSE;
|
||||||
|
EOL := FALSE;
|
||||||
|
|
||||||
|
REPEAT
|
||||||
|
IF EOL THEN
|
||||||
|
lineIsHeader := FALSE;
|
||||||
|
EOL := FALSE;
|
||||||
|
notFirstLine := TRUE
|
||||||
|
END;
|
||||||
|
|
||||||
|
IF buff[i] = ":" THEN lineIsHeader := TRUE END;
|
||||||
|
|
||||||
|
IF ((buff[i - 1] = 0DX) & (buff[i] = 0AX)) THEN EOL := TRUE END;
|
||||||
|
|
||||||
|
INC(i);
|
||||||
|
UNTIL (i + 2 > Strings.Length(buff)) OR (~lineIsHeader & EOL & notFirstLine);
|
||||||
|
|
||||||
|
Strings.Extract(buff, i, Strings.Length(buff), clean);
|
||||||
|
END getClean;
|
||||||
|
|
||||||
PROCEDURE AppendEOLAndClean(buff: ARRAY OF CHAR; VAR buffClean: PSTRING);
|
PROCEDURE AppendEOLAndClean(buff: ARRAY OF CHAR; VAR buffClean: PSTRING);
|
||||||
VAR i: LONGINT;
|
VAR i: LONGINT;
|
||||||
|
|
@ -40,12 +68,12 @@ VAR
|
||||||
positionStart, valPositionStart, i: LONGINT;
|
positionStart, valPositionStart, i: LONGINT;
|
||||||
BEGIN
|
BEGIN
|
||||||
positionStart := Strings.Pos(key, buff, 0);
|
positionStart := Strings.Pos(key, buff, 0);
|
||||||
valPositionStart := positionStart + Strings.Length(key);
|
valPositionStart := positionStart + Strings.Length(key) + 1;
|
||||||
i := 0;
|
i := 0;
|
||||||
REPEAT
|
REPEAT
|
||||||
val[i] := buff[valPositionStart + i];
|
val[i] := buff[valPositionStart + i];
|
||||||
INC(i);
|
INC(i);
|
||||||
UNTIL val[i]; (* TODO: check value char number *)
|
UNTIL ORD(val[i]) = 10; (* 0DX number(newline)*)
|
||||||
END getHeader;
|
END getHeader;
|
||||||
|
|
||||||
PROCEDURE get(host, path, port: ARRAY OF CHAR; VAR buff: ARRAY OF CHAR);
|
PROCEDURE get(host, path, port: ARRAY OF CHAR; VAR buff: ARRAY OF CHAR);
|
||||||
|
|
@ -90,13 +118,16 @@ BEGIN
|
||||||
Strings.Append(tmpBuff, buff);
|
Strings.Append(tmpBuff, buff);
|
||||||
getHeader(buff, "Content-Length", valueContentLengthString);
|
getHeader(buff, "Content-Length", valueContentLengthString);
|
||||||
Strings.StrToReal(valueContentLengthString, valueContentLength);
|
Strings.StrToReal(valueContentLengthString, valueContentLength);
|
||||||
Out.Real(valueContentLength, 20);
|
(* Out.Real(valueContentLength, 6);
|
||||||
Out.Ln;
|
Out.Ln;
|
||||||
|
Logger.LogIntLn(Strings.Length(buff));
|
||||||
|
Logger.Log(buff); *)
|
||||||
UNTIL ~connectionFlag OR (Strings.Length(buff) > valueContentLength);
|
UNTIL ~connectionFlag OR (Strings.Length(buff) > valueContentLength);
|
||||||
Internet.Disconnect(socket);
|
Internet.Disconnect(socket);
|
||||||
END get;
|
END get;
|
||||||
|
|
||||||
BEGIN
|
BEGIN
|
||||||
get("norayr.am", "/tmp/", "80", buff);
|
get("norayr.am", "/tmp/", "80", buff);
|
||||||
Logger.Log(buff);
|
getClean(buff, buff2);
|
||||||
|
Logger.Log(buff2);
|
||||||
END http.
|
END http.
|
||||||
12
logger.Mod
12
logger.Mod
|
|
@ -1,5 +1,5 @@
|
||||||
MODULE Logger;
|
MODULE Logger;
|
||||||
IMPORT time, Out;
|
IMPORT time, Out, Strings;
|
||||||
|
|
||||||
CONST
|
CONST
|
||||||
deca = 10;
|
deca = 10;
|
||||||
|
|
@ -45,7 +45,7 @@ END LogNormalized;
|
||||||
|
|
||||||
PROCEDURE Log*(buff: ARRAY OF CHAR);
|
PROCEDURE Log*(buff: ARRAY OF CHAR);
|
||||||
VAR
|
VAR
|
||||||
year, month, day, hour, min, sec: LONGINT;
|
year, month, day, hour, min, sec, i: LONGINT;
|
||||||
BEGIN
|
BEGIN
|
||||||
time.Now(year, month, day, hour, min, sec);
|
time.Now(year, month, day, hour, min, sec);
|
||||||
|
|
||||||
|
|
@ -61,7 +61,13 @@ BEGIN
|
||||||
Out.String("-");
|
Out.String("-");
|
||||||
LogNormalized(sec, 2);
|
LogNormalized(sec, 2);
|
||||||
Out.String(" :- ");
|
Out.String(" :- ");
|
||||||
Out.String(buff);
|
FOR i:=0 TO Strings.Length(buff) DO
|
||||||
|
(* Out.Char(" ");
|
||||||
|
Out.Int(ORD(buff[i]), 4);
|
||||||
|
Out.Char("-"); *)
|
||||||
|
Out.Char(buff[i]);
|
||||||
|
(* Out.Char(" ");Out.Char(" ");Out.Char(" "); *)
|
||||||
|
END;
|
||||||
Out.Ln;
|
Out.Ln;
|
||||||
END Log;
|
END Log;
|
||||||
|
|
||||||
|
|
|
||||||
12
makefile
12
makefile
|
|
@ -27,5 +27,13 @@ run:
|
||||||
./builds/opium install
|
./builds/opium install
|
||||||
|
|
||||||
|
|
||||||
http:
|
http: clean
|
||||||
$(VOC) -s time.Mod logger.Mod types.Mod sockets.Mod netdb.Mod Internet.Mod http.Mod -m
|
cd builds && \
|
||||||
|
$(VOC) -s ../time.Mod \
|
||||||
|
../logger.Mod \
|
||||||
|
../types.Mod \
|
||||||
|
../sockets.Mod \
|
||||||
|
../netdb.Mod \
|
||||||
|
../Internet.Mod \
|
||||||
|
../http.Mod -m \
|
||||||
|
&& ./http
|
||||||
Loading…
Add table
Add a link
Reference in a new issue