if i showed you what i had done for the password auth i think you would laugh - 
 i got as far as using the XOR but my code didn't look at all like yours (which 
works nicely)

i tried to do the following but i don't seem to get what is going on here - i'd 
appreciate if you could show me the error of my ways

// following https://mariadb.com/kb/en/com_query/
// this code is put above       break; // or do something else here

Buffer := 'show databases;';
writeln(Buffer);
buffer := Buf2Hex(buffer);
Buffer := #03 + Buffer + #0; // #03 com_query header    #0 <eof>
writeln(Buffer);
sock.sendstring(buffer);
buffer := sock.recvpacket(2000);
writeln(Buffer);


//get
//show databases;
// 73 68 6F 77 20 64 61 74 61 62 61 73 65 73 3B      missing #03/com_query 
header    and   #0/<eof> ??
//!��#08S01Got packets out of order
//Done, press enter to exit









On Mon, 07 Aug 2023 06:25:50 +0200
Rik van Kekem <r...@graficalc.nl> wrote:

> You can use RecvPacket (it is high level and reads from the linebuffer). But 
> I think what is meant here is that you can't expect RecvPacket to always get 
> the entire package. The incoming data could be split up into several parts.
>
> Each package is preceded by a length (in 3 bytes) and a package number. So 
> when processing your incoming data you need to keep reading the buffer (keep 
> doing buffer := buffer + recvpacket(2000) until you are sure you have the 
> complete data package from the server before proceeding with processing that 
> package. (You can peek or read in the buffer to see the header for checking 
> the needed length of the buffer).
>
> Because the packages for authentication are small, I don't think these would 
> ever be fragmented. But going further with larger data packages you can't 
> rely on that fact. Then you'll need to use a buffer mechanisme.
>
> Maybe there is another way of looking at it. Other views and reading 
> techniques are welcome 🤗
>
> Grtz,
> Rik
>
>
> paste...@gmx.com schreef op 7 augustus 2023 02:20:54 CEST:
> >
> >Lukas would you mind expanding on what you said
> >
> >'It is stream based protocol, not packet based. So, usage of RecvPacket is a 
> >big mistake here.'
> >
> >then it seems to be 'contradicted' by
> >
> >'on the reply packet structure. It using RecvPacket internally, and receive 
> >multiple packets if it is needed.'
> >
>
>
> _______________________________________________
> synalist-public mailing list
> synalist-public@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/synalist-public


_______________________________________________
synalist-public mailing list
synalist-public@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/synalist-public

Reply via email to