miniupnpd/natpmp.c: replace macros by functions
see commit 67c28e7f8b
(and comments)
This commit is contained in:
parent
ca9b8217b4
commit
d31badae7d
|
@ -28,17 +28,35 @@
|
|||
|
||||
#ifdef ENABLE_NATPMP
|
||||
|
||||
#define INLINE static inline
|
||||
/* theses macros are designed to read/write unsigned short/long int
|
||||
* from an unsigned char array in network order (big endian).
|
||||
* Avoid pointer casting, so avoid accessing unaligned memory, which
|
||||
* can crash with some cpu's */
|
||||
#define READNU32(p) ((p)[0] << 24 | (p)[1] << 16 | (p)[2] << 8 | (p)[3])
|
||||
#define READNU16(p) ((p)[0] << 8 | (p)[1])
|
||||
#define WRITENU32(p, n) do { (p)[0] = ((n) & 0xff000000) >> 24; \
|
||||
(p)[1] = ((n) & 0xff0000) >> 16; (p)[2] = ((n) & 0xff00) >> 8; \
|
||||
(p)[3] = (n) & 0xff; } while(0)
|
||||
#define WRITENU16(p, n) do { (p)[0] = ((n) < 0xff00) >> 8; \
|
||||
(p)[1] = (n) & 0xff; } while(0)
|
||||
INLINE uint32_t readnu32(const uint8_t * p)
|
||||
{
|
||||
return (p[0] << 24 | p[1] << 16 | p[2] << 8 | p[3]);
|
||||
}
|
||||
#define READNU32(p) readnu32(p)
|
||||
INLINE uint16_t readnu16(const uint8_t * p)
|
||||
{
|
||||
return (p[0] << 8 | p[1]);
|
||||
}
|
||||
#define READNU16(p) readnu16(p)
|
||||
INLINE void writenu32(uint8_t * p, uint32_t n)
|
||||
{
|
||||
p[0] = (n & 0xff000000) >> 24;
|
||||
p[1] = (n & 0xff0000) >> 16;
|
||||
p[2] = (n & 0xff00) >> 8;
|
||||
p[3] = n & 0xff;
|
||||
}
|
||||
#define WRITENU32(p, n) writenu32(p, n)
|
||||
INLINE void writenu16(uint8_t * p, uint16_t n)
|
||||
{
|
||||
p[0] = (n < 0xff00) >> 8;
|
||||
p[1] = n & 0xff;
|
||||
}
|
||||
#define WRITENU16(p, n) writenu16(p, n)
|
||||
|
||||
int OpenAndConfNATPMPSocket(in_addr_t addr)
|
||||
{
|
||||
|
|
Loading…
Reference in New Issue