X-Git-Url: https://git.novaco.in/?a=blobdiff_plain;f=src%2Fministun.h;h=d2ad73805c4c6b67bf0e34e1e8679efe552cc580;hb=32b53bb54ee7591fd47dd1ee24e05b73337f40b5;hp=8b19df8a76274d6a1fae358ae6ed1f20c62fa31e;hpb=6e9bdffe9ddcda32a6c0431cacdd27d5daf33ce3;p=novacoin.git diff --git a/src/ministun.h b/src/ministun.h index 8b19df8..d2ad738 100644 --- a/src/ministun.h +++ b/src/ministun.h @@ -20,30 +20,60 @@ #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; + } __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; + } __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; + }; +#pragma pack(pop) + +#pragma pack(push, 1) + struct stun_attr { + unsigned short attr; + unsigned short len; + }; +#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)