XRogue: fix md_htonl() and md_ntohl().
xcrypt requires them. The implementations in state.c used htonl() and ntohl(), which aren't available on Windows. So the Advanced Rogue 7 versions were copied over. This implementation could be problematic on other systems where sizeof(long) == 8. Maybe someday I can convert everything to C99 and use stdint.h.
This commit is contained in:
parent
b2ebcf72c9
commit
13f4a96d93
2 changed files with 31 additions and 9 deletions
|
|
@ -3327,18 +3327,38 @@ md_killchar()
|
||||||
return(killchar());
|
return(killchar());
|
||||||
}
|
}
|
||||||
|
|
||||||
long
|
int md_endian = 0x01020304;
|
||||||
md_ntohl(netlong)
|
|
||||||
long netlong;
|
unsigned long int
|
||||||
|
md_ntohl(unsigned long int x)
|
||||||
{
|
{
|
||||||
return( ntohl(netlong) );
|
#ifdef _WIN32
|
||||||
|
if ( *((char *)&md_endian) == 0x01 )
|
||||||
|
return(x);
|
||||||
|
else
|
||||||
|
return( ((x & 0x000000ffU) << 24) |
|
||||||
|
((x & 0x0000ff00U) << 8) |
|
||||||
|
((x & 0x00ff0000U) >> 8) |
|
||||||
|
((x & 0xff000000U) >> 24) );
|
||||||
|
#else
|
||||||
|
return( ntohl(x) );
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
long
|
unsigned long int
|
||||||
md_htonl(netlong)
|
md_htonl(unsigned long int x)
|
||||||
long netlong;
|
|
||||||
{
|
{
|
||||||
return(htonl(netlong));
|
#ifdef _WIN32
|
||||||
|
if ( *((char *)&md_endian) == 0x01 )
|
||||||
|
return(x);
|
||||||
|
else
|
||||||
|
return( ((x & 0x000000ffU) << 24) |
|
||||||
|
((x & 0x0000ff00U) << 8) |
|
||||||
|
((x & 0x00ff0000U) >> 8) |
|
||||||
|
((x & 0xff000000U) >> 24) );
|
||||||
|
#else
|
||||||
|
return( htonl(x) );
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
|
@ -3493,4 +3513,3 @@ md_unlink(char *file)
|
||||||
return(unlink(file));
|
return(unlink(file));
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -54,6 +54,9 @@
|
||||||
|
|
||||||
#define _PASSWORD_EFMT1 '_'
|
#define _PASSWORD_EFMT1 '_'
|
||||||
|
|
||||||
|
unsigned long int md_htonl(unsigned long int x);
|
||||||
|
unsigned long int md_ntohl(unsigned long int x);
|
||||||
|
|
||||||
static unsigned char IP[64] = {
|
static unsigned char IP[64] = {
|
||||||
58, 50, 42, 34, 26, 18, 10, 2, 60, 52, 44, 36, 28, 20, 12, 4,
|
58, 50, 42, 34, 26, 18, 10, 2, 60, 52, 44, 36, 28, 20, 12, 4,
|
||||||
62, 54, 46, 38, 30, 22, 14, 6, 64, 56, 48, 40, 32, 24, 16, 8,
|
62, 54, 46, 38, 30, 22, 14, 6, 64, 56, 48, 40, 32, 24, 16, 8,
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue