miniupnpd: move READNU32/WRITENU32/etc. to rw_unaligned.h
This commit is contained in:
parent
c13a4b15f1
commit
a4e12c01c4
|
@ -1,7 +1,7 @@
|
|||
/* $Id: macros.h,v 1.5 2019/09/24 09:37:52 nanard Exp $ */
|
||||
/* $Id: macros.h,v 1.7 2022/10/16 06:03:56 nanard Exp $ */
|
||||
/* MiniUPnP project
|
||||
* http://miniupnp.free.fr/ or http://miniupnp.tuxfamily.org/
|
||||
* (c) 2012-2021 Thomas Bernard
|
||||
* http://miniupnp.free.fr/ or https://miniupnp.tuxfamily.org/
|
||||
* (c) 2012-2022 Thomas Bernard
|
||||
* This software is subject to the conditions detailed
|
||||
* in the LICENCE file provided within the distribution */
|
||||
|
||||
|
@ -21,38 +21,4 @@
|
|||
* if debug_flag is on, syslog already print on console */
|
||||
#define INIT_PRINT_ERR(...) do { if (!debug_flag) fprintf(stderr, __VA_ARGS__); syslog(LOG_ERR, __VA_ARGS__); } while(0)
|
||||
|
||||
#include <stdint.h>
|
||||
|
||||
#ifndef INLINE
|
||||
#define INLINE static inline
|
||||
#endif
|
||||
/* 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 */
|
||||
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)
|
||||
|
||||
#endif /* MACROS_H_INCLUDED */
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
/* $Id: natpmp.c,v 1.57 2019/09/24 11:48:01 nanard Exp $ */
|
||||
/* $Id: natpmp.c,v 1.58 2022/10/16 06:03:56 nanard Exp $ */
|
||||
/* MiniUPnP project
|
||||
* (c) 2007-2019 Thomas Bernard
|
||||
* http://miniupnp.free.fr/ or http://miniupnp.tuxfamily.org/
|
||||
* (c) 2007-2022 Thomas Bernard
|
||||
* http://miniupnp.free.fr/ or https://miniupnp.tuxfamily.org/
|
||||
* This software is subject to the conditions detailed
|
||||
* in the LICENCE file provided within the distribution */
|
||||
#include <stdio.h>
|
||||
|
@ -17,6 +17,7 @@
|
|||
#include <sys/uio.h>
|
||||
|
||||
#include "macros.h"
|
||||
#include "rw_unaligned.h"
|
||||
#include "config.h"
|
||||
#include "natpmp.h"
|
||||
#include "upnpglobalvars.h"
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $Id: pcpserver.c,v 1.51 2019/05/21 08:39:44 nanard Exp $ */
|
||||
/* $Id: pcpserver.c,v 1.56 2022/10/16 06:03:56 nanard Exp $ */
|
||||
/* vim: tabstop=4 shiftwidth=4 noexpandtab
|
||||
* MiniUPnP project
|
||||
* Website : http://miniupnp.free.fr/ or https://miniupnp.tuxfamily.org/
|
||||
|
@ -73,6 +73,7 @@ POSSIBILITY OF SUCH DAMAGE.
|
|||
#include "pcpserver.h"
|
||||
#include "natpmp.h"
|
||||
#include "macros.h"
|
||||
#include "rw_unaligned.h"
|
||||
#include "upnpglobalvars.h"
|
||||
#include "pcplearndscp.h"
|
||||
#include "upnpredirect.h"
|
||||
|
|
|
@ -0,0 +1,45 @@
|
|||
/* $Id: rw_unaligned.h,v 1.1 2022/10/16 06:02:01 nanard Exp $ */
|
||||
/* MiniUPnP project
|
||||
* http://miniupnp.free.fr/ or https://miniupnp.tuxfamily.org/
|
||||
* (c) 2012-2022 Thomas Bernard
|
||||
* This software is subject to the conditions detailed
|
||||
* in the LICENCE file provided within the distribution */
|
||||
|
||||
#ifndef RW_UNALIGNED_H_INCLUDED
|
||||
#define RW_UNALIGNED_H_INCLUDED
|
||||
|
||||
#include <stdint.h>
|
||||
|
||||
#ifndef INLINE
|
||||
#define INLINE static inline
|
||||
#endif
|
||||
/* 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 */
|
||||
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)
|
||||
|
||||
#endif /* RW_UNALIGNED_H_INCLUDED */
|
Loading…
Reference in New Issue