@@ -167,35 +167,37 @@ if (pai->ai_flags & AI_CANONNAME) {\
167
167
}
168
168
169
169
#ifdef HAVE_SOCKADDR_SA_LEN
170
- #define GET_AI (ai , gai_afd , addr , port ) {\
171
- char *p;\
172
- if (((ai) = (struct addrinfo *)malloc(sizeof(struct addrinfo) +\
173
- ((gai_afd)->a_socklen)))\
174
- == NULL) goto free;\
175
- memcpy(ai, pai, sizeof(struct addrinfo));\
176
- (ai)->ai_addr = (struct sockaddr *)((ai) + 1);\
177
- memset((ai)->ai_addr, 0, (gai_afd)->a_socklen);\
178
- (ai)->ai_addr->sa_len = (ai)->ai_addrlen = (gai_afd)->a_socklen;\
179
- (ai)->ai_addr->sa_family = (ai)->ai_family = (gai_afd)->a_af;\
180
- ((struct sockinet *)(ai)->ai_addr)->si_port = port;\
181
- p = (char *)((ai)->ai_addr);\
182
- memcpy(p + (gai_afd)->a_off, (addr), (gai_afd)->a_addrlen);\
183
- }
170
+ #define GET_AI (ai , gai_afd , addr , port ) \
171 + do { \
172
+ char *p; \
173
+ if (((ai) = (struct addrinfo *)malloc(sizeof(struct addrinfo) + \
174
+ ((gai_afd)->a_socklen))) \
175
+ == NULL) goto free; \
176
+ memcpy(ai, pai, sizeof(struct addrinfo)); \
177
+ (ai)->ai_addr = (struct sockaddr *)((ai) + 1); \
178
+ memset((ai)->ai_addr, 0, (gai_afd)->a_socklen); \
179
+ (ai)->ai_addr->sa_len = (ai)->ai_addrlen = (gai_afd)->a_socklen; \
180
+ (ai)->ai_addr->sa_family = (ai)->ai_family = (gai_afd)->a_af; \
181
+ ((struct sockinet *)(ai)->ai_addr)->si_port = port; \
182
+ p = (char *)((ai)->ai_addr); \
183
+ memcpy(p + (gai_afd)->a_off, (addr), (gai_afd)->a_addrlen); \
184
+ } while (0)
184
185
#else
185
- #define GET_AI (ai , gai_afd , addr , port ) {\
186
- char *p;\
187
- if (((ai) = (struct addrinfo *)malloc(sizeof(struct addrinfo) +\
188
- ((gai_afd)->a_socklen)))\
189
- == NULL) goto free;\
190
- memcpy(ai, pai, sizeof(struct addrinfo));\
191
- (ai)->ai_addr = (struct sockaddr *)((ai) + 1);\
192
- memset((ai)->ai_addr, 0, (gai_afd)->a_socklen);\
193
- (ai)->ai_addrlen = (gai_afd)->a_socklen;\
194
- (ai)->ai_addr->sa_family = (ai)->ai_family = (gai_afd)->a_af;\
195
- ((struct sockinet *)(ai)->ai_addr)->si_port = port;\
196
- p = (char *)((ai)->ai_addr);\
197
- memcpy(p + (gai_afd)->a_off, (addr), (gai_afd)->a_addrlen);\
198
- }
186
+ #define GET_AI (ai , gai_afd , addr , port ) \
187
+ do { \
188
+ char *p; \
189
+ if (((ai) = (struct addrinfo *)malloc(sizeof(struct addrinfo) + \
190
+ ((gai_afd)->a_socklen))) \
191
+ == NULL) goto free; \
192
+ memcpy(ai, pai, sizeof(struct addrinfo)); \
193
+ (ai)->ai_addr = (struct sockaddr *)((ai) + 1); \
194
+ memset((ai)->ai_addr, 0, (gai_afd)->a_socklen); \
195
+ (ai)->ai_addrlen = (gai_afd)->a_socklen; \
196
+ (ai)->ai_addr->sa_family = (ai)->ai_family = (gai_afd)->a_af; \
197
+ ((struct sockinet *)(ai)->ai_addr)->si_port = port; \
198
+ p = (char *)((ai)->ai_addr); \
199
+ memcpy(p + (gai_afd)->a_off, (addr), (gai_afd)->a_addrlen); \
200
+ } while (0)
199
201
#endif
200
202
201
203
#define ERR (err ) { error = (err); goto bad; }
0 commit comments