Skip to content

sendMessage(...) chunked sends when over 512 bytes #8

@deavmi

Description

@deavmi

Check the size of the message (header included) before sending over socket and then perform message split.

Notes from @rany2

<rany> You're doing 
<rany>   PRIVMSG deavmi abcdefe
<rany>    PRIVMSG deavmi fgh
<rany>  
<rany> well that'sd what you need to do 
<rany> if you did this in sendMessage/encodeMessage
<deavmiLaptop> `  PRIVMSG deavmi abcdefe`
<rany> it will do:
<rany> PRIVMSG deavmi abcdefe
<rany> fgh
<deavmiLaptop> is the spacing intentional here?
<rany> no, just formatting
<deavmiLaptop> PRIVMSG deavmi fgh
<deavmiLaptop> ah
<rany> fgh isn't an irc command so it won't go trhy
<deavmiLaptop> Yes
<rany> thru*
<deavmiLaptop> so wait
<deavmiLaptop> Let's say 6 was maxlen
<deavmiLaptop> then privateMessage("Hellon")
<deavmiLaptop> should effectievly split into:
<deavmiLaptop> PRIVMSG deavmi Hello
<deavmiLaptop> PRIVMSG deavmi n
<rany> yep
<deavmiLaptop> is what you are saying
<deavmiLaptop> ah
<deavmiLaptop> I get why you are saying now
<deavmiLaptop> It needs command awareness then
<rany> the limit isn't in message size
<rany> but IRC command size
<deavmiLaptop> Like sendMessage()
<deavmiLaptop> rany, yes sorry
<deavmiLaptop> I meant then max irc command ended at the o
<deavmiLaptop> of hello
<deavmiLaptop> just for the sake of the example
<rany> so PRIVMSG and channel message have didferent max sizes
<deavmiLaptop> Yes
<deavmiLaptop> that makes sense
<rany> because the commadn to run a private message and channel message is diff
<deavmiLaptop> aight, oki doki
<rany> and even among the same type 
<rany> the user might have a long nick 
<deavmiLaptop> Can i copy this log into the github issue?
<rany> ys
<deavmiLaptop> for ref?
<deavmiLaptop> thanks
<rany> yes*

Notes 2

<rany> deavmiLaptop: in short you need to first take length of `PRIVMSG <<nick>>` 
<deavmiLaptop> Yes
<rany> and then get the maximum IRC command size if negotiated by IRC server
<rany> or use RFC's limit
<rany> then do your calc based on that

Metadata

Metadata

Assignees

Labels

enhancementNew feature or request

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions