Skip to content

Commit

Permalink
working on issue #509 #510
Browse files Browse the repository at this point in the history
  • Loading branch information
objeck committed Feb 8, 2025
1 parent dae9a94 commit 5debbaf
Show file tree
Hide file tree
Showing 5 changed files with 22 additions and 21 deletions.
33 changes: 16 additions & 17 deletions core/compiler/lib_src/net_secure.obs
Original file line number Diff line number Diff line change
Expand Up @@ -989,33 +989,32 @@ if(client->Connect()) {
@return true if successful, false otherwise
~#
method : public : WriteSocket(message : String, fragment : Bool := false) ~ Bool {
chunk_size := 4096;

data := message->ToByteArray();
data_size := data->Size();

if(fragment & data_size > chunk_size) {
i := 0;

if(fragment) {
chunk_size := 5;
if(@is_debug) {
"0: write - off={$i}, len={$chunk_size}"->PrintLine();
};
WriteFrame(data, i, chunk_size, 1, true);

i : Int;
data_size := data->Size();
for(i := 0; chunk_size + i < data_size; i += chunk_size) {
for(i := chunk_size; chunk_size + i < data_size; i += chunk_size) {
if(@is_debug) {
"write - off={$i}, len={$chunk_size}"->PrintLine();
"1: write - off={$i}, len={$chunk_size}"->PrintLine();
};

# finish frame
if(data_size - i = 0) {
WriteFrame(data, i, chunk_size, 0, false);
}
# fragment frame
else {
WriteFrame(data, i, chunk_size, 1, true);
};
WriteFrame(data, i, chunk_size, 0, true);
};

# finish frame
if(data_size - i <> 0) {
rest := data_size - i;
if(@is_debug) {
"write - off={$i}, len={$rest}"->PrintLine();
"2: write - off={$i}, len={$rest}"->PrintLine();
};

WriteFrame(data, i, rest, 0, false);
Expand All @@ -1024,7 +1023,7 @@ if(client->Connect()) {
return true;
}
else {
return WriteFrame(data, 0, message->Size(), 1, fragment);
return WriteFrame(data, 0, message->Size(), 1, false);
};
}

Expand Down Expand Up @@ -1270,7 +1269,7 @@ buffer->ToString()->Trim()->PrintLine();
# encode payload
j := 0;
for(i := 0; i < length; i += 1;) {
frame[frame_offset + i] := data[i] xor frame[j % 4 + frame_offset - 4];
frame[frame_offset + i] := data[i + offset] xor frame[j % 4 + frame_offset - 4];
j += 1;
};

Expand Down
4 changes: 2 additions & 2 deletions core/vm/common.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -2826,9 +2826,9 @@ bool TrapProcessor::StdOutByte(StackProgram* program, size_t* inst, size_t* &op_
#endif

#ifdef _MODULE_STDIO
program->output_buffer << (void*)((unsigned char)PopInt(op_stack, stack_pos));
program->output_buffer << std::hex << L"0x" << ((unsigned char)PopInt(op_stack, stack_pos));
#else
std::wcout << (void*)((unsigned char)PopInt(op_stack, stack_pos));
std::wcout << std::hex << L"0x" << ((unsigned char)PopInt(op_stack, stack_pos));
#endif

return true;
Expand Down
Binary file modified docs/api.zip
Binary file not shown.
4 changes: 3 additions & 1 deletion programs/tests/lorem-2.txt
Original file line number Diff line number Diff line change
Expand Up @@ -344,4 +344,6 @@ Consectetur aenean id curabitur eu, inceptos scelerisque nam. Penatibus fermentu

Hac penatibus facilisi enim pulvinar sem. Eros curabitur massa interdum fermentum, pulvinar himenaeos. Donec sed cursus primis inceptos posuere aptent. Tellus magnis feugiat suspendisse duis a egestas eleifend. Arcu sodales aenean feugiat dis eleifend duis convallis iaculis. Magnis laoreet interdum ridiculus sollicitudin magna condimentum eu dignissim sodales. Cubilia condimentum vivamus eget sagittis eu massa. Nec tincidunt metus lobortis mi nullam condimentum. Dictum parturient in aenean porttitor mollis. Fermentum penatibus non sit nulla nullam torquent vivamus taciti.

Turpis diam porttitor sapien nibh curabitur semper. Diam integer metus donec ligula morbi potenti parturient aliquet mattis. Phasellus nec vitae elementum hac ridiculus ut ut. Magnis nullam lobortis ornare nulla fermentum praesent litora. Rutrum nascetur sapien netus dictum tempor amet ex quis. Gravida tortor torquent amet elit velit aliquet leo ut fringilla. Fringilla lobortis platea mus aliquam nunc dui. Sodales sapien eleifend lacus hac scelerisque nibh feugiat proin. Sociosqu lacus velit dis venenatis vel aliquam nisl sollicitudin.
Turpis diam porttitor sapien nibh curabitur semper. Diam integer metus donec ligula morbi potenti parturient aliquet mattis. Phasellus nec vitae elementum hac ridiculus ut ut. Magnis nullam lobortis ornare nulla fermentum praesent litora. Rutrum nascetur sapien netus dictum tempor amet ex quis. Gravida tortor torquent amet elit velit aliquet leo ut fringilla. Fringilla lobortis platea mus aliquam nunc dui. Sodales sapien eleifend lacus hac scelerisque nibh feugiat proin. Sociosqu lacus velit dis venenatis vel aliquam nisl sollicitudin.

Polo jeans!
2 changes: 1 addition & 1 deletion programs/tests/prgm331.obs
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ use Collection, Web.HTTP, System.IO.Filesystem;

class Test {
function : Main(args : String[]) ~ Nil {
text := "Hello World!"; # FileReader->ReadFile("lorem-2.txt");
text := FileReader->ReadFile("lorem-2.txt");
text_size := text->Size();
"text-size={$text_size}\n---"->PrintLine();

Expand Down

0 comments on commit 5debbaf

Please sign in to comment.