<feed xmlns='http://www.w3.org/2005/Atom'>
<title>eglantine-cirakg/src/core/internal_network/network.cpp, branch nx2</title>
<subtitle>Mirror of github.com/cira0100/Eglantine-public nx2, a fork of Djihads80/Eglantine.</subtitle>
<id>https://git.cirakg.xyz/eglantine-cirakg/atom?h=nx2</id>
<link rel='self' href='https://git.cirakg.xyz/eglantine-cirakg/atom?h=nx2'/>
<link rel='alternate' type='text/html' href='https://git.cirakg.xyz/eglantine-cirakg/'/>
<updated>2026-11-03T00:39:54+00:00</updated>
<entry>
<title>network: close each bsd fd once and drop unwanted or malformed room packets</title>
<updated>2026-11-03T00:39:54+00:00</updated>
<author>
<name>cirakg</name>
<email>cirakg@cirakg.xyz</email>
</author>
<published>2026-11-03T00:39:54+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cirakg.xyz/eglantine-cirakg/commit/?id=4304d2704a57c22d5b3f8576b5acebc57a6a7eef'/>
<id>urn:sha1:4304d2704a57c22d5b3f8576b5acebc57a6a7eef</id>
<content type='text'>
Two threads closing the same fd both copied the descriptor and both called
Close(), so a host socket could be closed twice, and the second closesocket
could hit an unrelated socket that had reused the host fd. CloseImpl now
frees the slot under file_descriptors_mutex first and only that thread closes
the socket; the other gets EBADF.

OnProxyPacketReceived decompressed every room packet when any fd had a
socket, including native sockets and proxy sockets on other ports. Sockets
now report through AcceptsProxyPacket whether they want a packet, and only
those are collected, so an unwanted packet is not decompressed.

DecompressDataZSTD passed the frame's declared size straight to the vector
constructor, so a malformed or unsized frame from a room member threw on the
room thread. The new TryDecompressDataZSTD rejects invalid, unsized and
oversized frames, and bsd drops such packets with a warning.
DecompressDataZSTD now returns an empty vector for them instead of throwing.

Assisted-by: Claude Opus 5.5 (investigation and implementation)
</content>
</entry>
<entry>
<title>network: fix room socket races and share the room network check</title>
<updated>2026-11-02T23:17:34+00:00</updated>
<author>
<name>cirakg</name>
<email>cirakg@cirakg.xyz</email>
</author>
<published>2026-11-02T23:17:34+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cirakg.xyz/eglantine-cirakg/commit/?id=78e0a12180a71adf8dffc2c2f6697a0a0735d5ea'/>
<id>urn:sha1:78e0a12180a71adf8dffc2c2f6697a0a0735d5ea</id>
<content type='text'>
bsd:s, bsd:u and bsd:a share one file descriptor table, but each
service bound its own proxy packet callback, so every room packet was
queued three times on each socket. Bind the callback once.

The room thread walked the descriptor table without a lock while bsd
created and closed sockets, so it could reach a destroyed or not yet
created socket. Guard the table with a mutex, and publish a socket only
after it is created and initialized. Check airplane mode before an fd
is taken, so a refused socket no longer leaks its slot.

ProxySocket now initializes protocol, decompresses packets outside the
packet lock without copying the compressed data first, and keeps a read
offset for partial TCP reads instead of erasing from the front.

Add Network::GetRoomIPv4Address(), set only in the Joined and Moderator
states. NIFM uses it for network availability and for every reported
address, including EnumerateNetworkInterfaces and GetCurrentIpAddress,
so no call reports the room address while another rejects the network.

Assisted-by: Claude Opus 5.5 (investigation and implementation)
</content>
</entry>
<entry>
<title>[meta] Discourage profanity usage (#4239)</title>
<updated>2026-08-09T00:53:16+00:00</updated>
<author>
<name>crueter</name>
<email>crueter@eden-emu.dev</email>
</author>
<published>2026-08-09T00:53:16+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cirakg.xyz/eglantine-cirakg/commit/?id=a3d32a18b88ba39c5d5bbf42b7eb0535895acda2'/>
<id>urn:sha1:a3d32a18b88ba39c5d5bbf42b7eb0535895acda2</id>
<content type='text'>
I'm not into millennial humor, personally.

Proactively removed as much profanity as I could grep.

Signed-off-by: crueter &lt;crueter@eden-emu.dev&gt;
Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/4239
Reviewed-by: MaranBr &lt;maranbr@eden-emu.dev&gt;
Reviewed-by: Samuel &lt;lizzie@eden-emu.dev&gt;
</content>
</entry>
<entry>
<title>[fmt] use {#:x} instead of 0x{:#x} (#4170)</title>
<updated>2026-07-25T19:47:07+00:00</updated>
<author>
<name>lizzie</name>
<email>lizzie@eden-emu.dev</email>
</author>
<published>2026-07-25T19:47:07+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cirakg.xyz/eglantine-cirakg/commit/?id=58dee5330566d8948783eb2246ed4e4cde316068'/>
<id>urn:sha1:58dee5330566d8948783eb2246ed4e4cde316068</id>
<content type='text'>
continuation of #309 but applying to even more files than before :)
also makes them lowercase because `0xfafafa` is better as `0XFAFAFA`

Signed-off-by: lizzie &lt;lizzie@eden-emu.dev&gt;
Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/4170
Reviewed-by: CamilleLaVey &lt;camillelavey99@gmail.com&gt;
Reviewed-by: Maufeat &lt;sahyno1996@gmail.com&gt;
</content>
</entry>
<entry>
<title>[hle/bsd] do not use rust-result wannabe Expected in functions (#4075)</title>
<updated>2026-06-27T06:50:24+00:00</updated>
<author>
<name>lizzie</name>
<email>lizzie@eden-emu.dev</email>
</author>
<published>2026-06-27T06:50:24+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cirakg.xyz/eglantine-cirakg/commit/?id=d8a8169eb20935b777fbaf322fa2d43e8f29d005'/>
<id>urn:sha1:d8a8169eb20935b777fbaf322fa2d43e8f29d005</id>
<content type='text'>
rust has Result&lt;T,E&gt; but we don't really need that in c++, also the header just sucks, objectively

Signed-off-by: lizzie lizzie@eden-emu.dev

Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/4075
Reviewed-by: CamilleLaVey &lt;camillelavey99@gmail.com&gt;
Reviewed-by: crueter &lt;crueter@eden-emu.dev&gt;
</content>
</entry>
<entry>
<title>[net] support SCTP protocols (+all base FBSD protos), ban more NS domains (#3955)</title>
<updated>2026-05-21T19:24:18+00:00</updated>
<author>
<name>lizzie</name>
<email>lizzie@eden-emu.dev</email>
</author>
<published>2026-05-21T19:24:18+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cirakg.xyz/eglantine-cirakg/commit/?id=46cfd9b6f3de00cc0b3b7e5f3369a66f66f7d115'/>
<id>urn:sha1:46cfd9b6f3de00cc0b3b7e5f3369a66f66f7d115</id>
<content type='text'>
bans more NS domains making hb dns check pass

also fixes bogus "SCTP is not implemented" assertion for translate protocol

Signed-off-by: lizzie &lt;lizzie@eden-emu.dev&gt;

Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/3955
Reviewed-by: MaranBr &lt;maranbr@eden-emu.dev&gt;
Reviewed-by: crueter &lt;crueter@eden-emu.dev&gt;
</content>
</entry>
<entry>
<title>[common/logging] Simplify logging logic and fix issues when logging before system is created (#3688)</title>
<updated>2026-03-12T17:29:15+00:00</updated>
<author>
<name>lizzie</name>
<email>lizzie@eden-emu.dev</email>
</author>
<published>2026-03-12T17:29:15+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cirakg.xyz/eglantine-cirakg/commit/?id=395613b01f918b559f0a3b1718c78f81987c49d4'/>
<id>urn:sha1:395613b01f918b559f0a3b1718c78f81987c49d4</id>
<content type='text'>
- our logging code was bigger than spdlog itself, why???? just keep it simple
- fix issues when logging before logging system is even started
- removes the "initialized logging twice" issue
- removes uneeded indirection in file logging
- uses direct formatting instead of jumping hoopla-around the fmt::format() ressult
- code duplication and dead code removal as usual

I did explore dup2() but I think it's not worth the hassle
I did try `fwopen()` but it's better if things are just kept as-is.

there is a lot of noise because I removed a bunch of redundant files on logging and just put everything in one file

now normally this wouldn't be a good idea, however consider: the complexity of logging; it's less than 500 lines... does it really need a whole subsystem?!?!?! ITS JUST LOGGING

Signed-off-by: lizzie &lt;lizzie@eden-emu.dev&gt;
Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/3688
Reviewed-by: crueter &lt;crueter@eden-emu.dev&gt;
Reviewed-by: DraVee &lt;chimera@dravee.dev&gt;
Reviewed-by: CamilleLaVey &lt;camillelavey99@gmail.com&gt;
Co-authored-by: lizzie &lt;lizzie@eden-emu.dev&gt;
Co-committed-by: lizzie &lt;lizzie@eden-emu.dev&gt;
</content>
</entry>
<entry>
<title>[bsd, ssl] force ssl verify option to be 0 and other fixes (#3386)</title>
<updated>2026-01-26T00:30:53+00:00</updated>
<author>
<name>Maufeat</name>
<email>sahyno1996@gmail.com</email>
</author>
<published>2026-01-26T00:30:53+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cirakg.xyz/eglantine-cirakg/commit/?id=7396149ab1a5bd045b4252f3bb183a535c8797ba'/>
<id>urn:sha1:7396149ab1a5bd045b4252f3bb183a535c8797ba</id>
<content type='text'>
JackBox games broke again, this makes it work again. Forces Verify Option to be 0

Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/3386
Reviewed-by: crueter &lt;crueter@eden-emu.dev&gt;
Reviewed-by: MaranBr &lt;maranbr@eden-emu.dev&gt;
Co-authored-by: Maufeat &lt;sahyno1996@gmail.com&gt;
Co-committed-by: Maufeat &lt;sahyno1996@gmail.com&gt;
</content>
</entry>
<entry>
<title>[compat] HaikuOS port (#2805)</title>
<updated>2025-10-22T02:53:40+00:00</updated>
<author>
<name>lizzie</name>
<email>lizzie@eden-emu.dev</email>
</author>
<published>2025-10-22T02:53:40+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cirakg.xyz/eglantine-cirakg/commit/?id=87cacbeed49facf18355c55cc93d0a2a0142be09'/>
<id>urn:sha1:87cacbeed49facf18355c55cc93d0a2a0142be09</id>
<content type='text'>
Still had the issues with libusb, but that should get solved with the other PRs anyways
Signed-off-by: lizzie &lt;lizzie@eden-emu.dev&gt;

Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/2805
Reviewed-by: MaranBr &lt;maranbr@eden-emu.dev&gt;
Reviewed-by: crueter &lt;crueter@eden-emu.dev&gt;
Co-authored-by: lizzie &lt;lizzie@eden-emu.dev&gt;
Co-committed-by: lizzie &lt;lizzie@eden-emu.dev&gt;
</content>
</entry>
<entry>
<title>[meta] fix license headers (#2547)</title>
<updated>2025-09-21T19:58:59+00:00</updated>
<author>
<name>lizzie</name>
<email>lizzie@eden-emu.dev</email>
</author>
<published>2025-09-21T19:58:59+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cirakg.xyz/eglantine-cirakg/commit/?id=191e4c75a16aa56451f72b371b4e15717c4a7022'/>
<id>urn:sha1:191e4c75a16aa56451f72b371b4e15717c4a7022</id>
<content type='text'>
Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/2547
Reviewed-by: MaranBr &lt;maranbr@eden-emu.dev&gt;
Co-authored-by: lizzie &lt;lizzie@eden-emu.dev&gt;
Co-committed-by: lizzie &lt;lizzie@eden-emu.dev&gt;
</content>
</entry>
</feed>
