X-Git-Url: https://git.novaco.in/?p=novacoin.git;a=blobdiff_plain;f=src%2Fministun.h;h=4dbd186e928ee4ddeaf6c3fcc90aabe1829f8fdd;hp=8b19df8a76274d6a1fae358ae6ed1f20c62fa31e;hb=196cd7a443bc09ac1485cce0e82e472a46a78152;hpb=398575a76da1e1a35abf47fcce1c5bbff96acf92 diff --git a/src/ministun.h b/src/ministun.h index 8b19df8..4dbd186 100644 --- a/src/ministun.h +++ b/src/ministun.h @@ -20,30 +20,64 @@ #define STUN_COUNT 3 #define STUN_TIMEOUT 3 -typedef struct { unsigned int id[4]; } __attribute__((packed)) stun_trans_id; +#ifndef _MSC_VER + typedef struct { unsigned int id[4]; } __attribute__((packed)) stun_trans_id; -struct stun_header { - unsigned short msgtype; - unsigned short msglen; - stun_trans_id id; - unsigned char ies[0]; -} __attribute__((packed)); + struct stun_header { + unsigned short msgtype; + unsigned short msglen; + stun_trans_id id; + unsigned char ies[0]; + } __attribute__((packed)); -struct stun_attr { - unsigned short attr; - unsigned short len; - unsigned char value[0]; -} __attribute__((packed)); + struct stun_attr { + unsigned short attr; + unsigned short len; + unsigned char value[0]; + } __attribute__((packed)); -/* - * The format normally used for addresses carried by STUN messages. - */ -struct stun_addr { - unsigned char unused; - unsigned char family; - unsigned short port; - unsigned int addr; -} __attribute__((packed)); + /* + * The format normally used for addresses carried by STUN messages. + */ + + struct stun_addr { + unsigned char unused; + unsigned char family; + unsigned short port; + unsigned int addr; + } __attribute__((packed)); +#else + typedef struct { unsigned int id[4]; } stun_trans_id; + +#pragma pack(push, 1) + struct stun_header { + unsigned short msgtype; + unsigned short msglen; + stun_trans_id id; + unsigned char ies[0]; + }; +#pragma pack(pop) + +#pragma pack(push, 1) + struct stun_attr { + unsigned short attr; + unsigned short len; + unsigned char value[0]; + }; +#pragma pack(pop) + + /* + * The format normally used for addresses carried by STUN messages. + */ +#pragma pack(push, 1) + struct stun_addr { + unsigned char unused; + unsigned char family; + unsigned short port; + unsigned int addr; + }; +#pragma pack(pop) +#endif #define STUN_IGNORE (0) #define STUN_ACCEPT (1)