|
16 | 16 | * Copyright (c) 2003-2005, PostgreSQL Global Development Group
|
17 | 17 | *
|
18 | 18 | * IDENTIFICATION
|
19 |
| - * $PostgreSQL: pgsql/src/port/getaddrinfo.c,v 1.18 2005/08/24 22:13:23 tgl Exp $ |
| 19 | + * $PostgreSQL: pgsql/src/port/getaddrinfo.c,v 1.19 2005/08/25 17:51:01 tgl Exp $ |
20 | 20 | *
|
21 | 21 | *-------------------------------------------------------------------------
|
22 | 22 | */
|
@@ -103,9 +103,12 @@ haveNativeWindowsIPv6routines(void)
|
103 | 103 | {
|
104 | 104 | /* We found a dll, so now get the addresses of the routines */
|
105 | 105 |
|
106 |
| -getaddrinfo_ptr=GetProcAddress(hLibrary,"getaddrinfo"); |
107 |
| -freeaddrinfo_ptr=GetProcAddress(hLibrary,"freeaddrinfo"); |
108 |
| -getnameinfo_ptr=GetProcAddress(hLibrary,"getnameinfo"); |
| 106 | +getaddrinfo_ptr= (getaddrinfo_ptr_t)GetProcAddress(hLibrary, |
| 107 | +"getaddrinfo"); |
| 108 | +freeaddrinfo_ptr= (freeaddrinfo_ptr_t)GetProcAddress(hLibrary, |
| 109 | +"freeaddrinfo"); |
| 110 | +getnameinfo_ptr= (getnameinfo_ptr_t)GetProcAddress(hLibrary, |
| 111 | +"getnameinfo"); |
109 | 112 |
|
110 | 113 | /*
|
111 | 114 | * If any one of the routines is missing, let's play it safe and
|
@@ -277,7 +280,7 @@ freeaddrinfo(struct addrinfo * res)
|
277 | 280 | */
|
278 | 281 | if (haveNativeWindowsIPv6routines())
|
279 | 282 | {
|
280 |
| -(*freeaddrinfo_ptr) (node,service,hintp,res); |
| 283 | +(*freeaddrinfo_ptr) (res); |
281 | 284 | return;
|
282 | 285 | }
|
283 | 286 | #endif
|
@@ -310,15 +313,40 @@ gai_strerror(int errcode)
|
310 | 313 | }
|
311 | 314 |
|
312 | 315 | returnhstrerror(hcode);
|
313 |
| -#else/* !HAVE_HSTRERROR */ |
| 316 | + |
| 317 | +#else/* !HAVE_HSTRERROR */ |
314 | 318 |
|
315 | 319 | switch (errcode)
|
316 | 320 | {
|
317 | 321 | caseEAI_NONAME:
|
318 | 322 | return"Unknown host";
|
319 | 323 | caseEAI_AGAIN:
|
320 | 324 | return"Host name lookup failure";
|
321 |
| -caseEAI_FAIL: |
| 325 | +/* Errors below are probably WIN32 only */ |
| 326 | +#ifdefEAI_BADFLAGS |
| 327 | +caseEAI_BADFLAGS: |
| 328 | +return"Invalid argument"; |
| 329 | +#endif |
| 330 | +#ifdefEAI_FAMILY |
| 331 | +caseEAI_FAMILY: |
| 332 | +return"Address family not supported"; |
| 333 | +#endif |
| 334 | +#ifdefEAI_MEMORY |
| 335 | +caseEAI_MEMORY: |
| 336 | +return"Not enough memory"; |
| 337 | +#endif |
| 338 | +#ifdefEAI_NODATA |
| 339 | +caseEAI_NODATA: |
| 340 | +return"No host data of that type was found"; |
| 341 | +#endif |
| 342 | +#ifdefEAI_SERVICE |
| 343 | +caseEAI_SERVICE: |
| 344 | +return"Class type not found"; |
| 345 | +#endif |
| 346 | +#ifdefEAI_SOCKTYPE |
| 347 | +caseEAI_SOCKTYPE: |
| 348 | +return"Socket type not supported"; |
| 349 | +#endif |
322 | 350 | default:
|
323 | 351 | return"Unknown server error";
|
324 | 352 | }
|
|