View Issue Details

IDProjectCategoryView StatusLast Update
0000066LDMud 3.5Networkingpublic2019-08-29 23:34
Reporterlynx Assigned ToGnomi  
Status closedResolutionfixed 
Summary0000066: socket level charset conversion (unicode support)
Descriptioni have looked at the way buffers are filled by socket_read.
since network read operations are much more efficient than input_to-lines
iconv charset conversions should happen right after socket/tls_read()
into a pre-buffer, then copy-converted into the interactive's buffer
rather than converting each input line on the LPC side..

outgoing transmissions need to find the same treatment, before
socket_write(), and also before optional compression.

+ socket charset is stored in interactive_s and given by an efun
+ charset is compared to SYSTEM_CHARSET which is given by config.h/configure
Additional Information    keeping track of charset everywhere to avoid any unnecessary conversion
    would lead to so much overhead, that occasional unnecessary conversion is
    the cheaper option. that's why we should convert in the driver close to
    the network operations.

i don't know who will find the time to look into this and
when. we may be able to provide an implementation some day,
but i thought i should submit this so we can talk and think
about it.

TagsNo tags attached.


related to 0000432 resolvedGnomi LDMud 3.6 Add string efuns with multibyte character support 



2009-01-08 07:16

administrator   ~0000864

Mhmm, it probably does not really fit into Gnomis current plans to rework the comm buffers. If so, I would relate it to our plans for Unicode support in 3.5.x.
I think, an optional transparent charset conversion might be beneficial although there might be some problems as well, e.g. people getting some output the LPC side did not actually generate. In these cases wizards need to keep in mind of the transparent conversion layer in the driver.
So... 3.5.x?


2009-01-08 07:41

manager   ~0000867

I agree, this is something for 3.5.


2019-08-29 23:34

manager   ~0002477

This is implemented in LDMud 3.6.0.

Issue History

Date Modified Username Field Change
2004-06-11 11:15 lynx New Issue
2009-01-08 07:16 zesstra Note Added: 0000864
2009-01-08 07:41 Gnomi Relationship added related to 0000432
2009-01-08 07:41 Gnomi Note Added: 0000867
2009-01-08 07:41 Gnomi Project LDMud 3.3 => LDMud 3.5
2019-08-29 23:34 Gnomi Assigned To => Gnomi
2019-08-29 23:34 Gnomi Status new => closed
2019-08-29 23:34 Gnomi Resolution open => fixed
2019-08-29 23:34 Gnomi Note Added: 0002477