Ticket #216 (new defect)

Opened 3 years ago

Last modified 3 years ago

hydranode fails on big endian

Reported by: chan Assigned to: madcat
Priority: normal Milestone:
Component: hydraengine Version: svn-snapshot
Severity: major Keywords:
Cc:

Description

Hydranode, as of svn 2640, Just Doesn't Work(tm) on big endian boxen. Attaching a random patch of fixes. Notes: * powerpc and sparc are good to test, too * BIG_ENDIAN is builtin-defined on gcc 4, which makes it a bad idea to redefine it * the ed2k patches are guesswork, the problem might just well be at a lower level. I didn't have time to go through the whole C++:ian behemoth! I'm saying this, because the server.met loading also _seems_ to give wrong results, eg. on second and subsequent starts hn can't seem to connect anywhere, but on first start it does (when using the builtin serverlist)

Attachments

hn-060208-big-endian.patch (3.9 kB) - added by chan on 02/08/06 08:12:35.
random big endian patches

Change History

02/08/06 08:12:35 changed by chan

  • attachment hn-060208-big-endian.patch added.

random big endian patches

02/14/06 08:46:42 changed by madcat

The actual problem is Utils::getVal / putVal methods which don't correctly work on big-endian systems right now.

Madcat.

02/14/06 08:46:48 changed by madcat

  • component changed from console to hydraengine.

02/15/06 01:06:35 changed by chan

I could fix that more cleanly, if your time is limited. However, I'd need to know what is the intended behaviour: should the endian conversion be done by the stream or, like it was in ed2k, at the packet processing level?