| Summary: | globus_libc_getnameinfo() always fails on IRIX 6.5 | ||
|---|---|---|---|
| Product: | Toolkit Internals | Reporter: | Jason Alt <jalt@ncsa.uiuc.edu> |
| Component: | globus_common | Assignee: | Joseph M Link <link@mcs.anl.gov> |
| Status: | RESOLVED FIXED | ||
| Severity: | blocker | CC: | bresnaha@mcs.anl.gov |
| Priority: | P2 | ||
| Version: | 3.2beta | ||
| Target Milestone: | --- | ||
| Hardware: | SGI | ||
| OS: | IRIX | ||
Can you try replacing the sizeof(globus_sockaddr_t) with GlobusLibcSockaddrLen(addr) and let me know if it works? Thanks, Joe
GlobusLibcSockaddrLen(addr) appears to be working perfectly. Thanks!
ok, I will make an update available. Check the advisories page soon.
Platform: SGI IRIX 6.5.22m Package: globus_common-4.8 getnameinfo() is called with sizeof (struct sockaddr_storage) = 0x80. IRIX must be keying off of the size, not just the family (2) because its returning 5 (EAI_FAMILY). It does work with sizeof(struct sockaddr_in). globus_libc.c: globus_result_t globus_libc_getnameinfo( const globus_sockaddr_t * addr, char * hostbuf, globus_size_t hostbuf_len, char * servbuf, globus_size_t servbuf_len, int flags) { int rc; globus_result_t result; result = GLOBUS_SUCCESS; rc = getnameinfo( (const struct sockaddr *) addr, sizeof(globus_sockaddr_t), hostbuf, hostbuf_len, servbuf, servbuf_len, flags); Partial trace: > 0 _getnameinfo(0x7fff1758, 0x80, 0x7fff17e8, 0x100, 0x7fff18e8, 0xa, 0x8, 0x7fff1758) ["/xlv46/6.5.22m/work/irix/lib/libc/libc_n32_M4/ns/getnameinfo.c":129, 0xfb26958] 1 globus_libc_getnameinfo(addr = 0x7fff1758, hostbuf = 0x7fff17e8 = "", hostbuf_len = 256, servbuf = 0x7fff18e8 = "", servbuf_len = 10, flags = 8) ["/scratch/jalt/BUILD/globus_common-4.8/library/globus_libc.c":3237, 0x10335b64]