Closed Bug 26520 Opened 25 years ago Closed 25 years ago

Define PR_AF_INET6 to be the same as AF_INET6.

Categories

(NSPR :: NSPR, enhancement, P3)

enhancement

Tracking

(Not tracked)

RESOLVED FIXED

People

(Reporter: wtc, Assigned: wtc)

Details

Attachments

(2 files)

PR_AF_INET6 should be defined to have the same value as AF_INET6 if AF_INET6 is defined. This will allow us to avoid the mapping between PR_AF_INET6 and AF_INET6. Unlike AF_INET, the value of AF_INET6 varies from platform to platform. So the platform-specific value of PR_AF_INET6 will need to be defined in prcpucfg.h.
Attached patch Proposed patch. (deleted) — Splinter Review
The patch should work for now. One issue to note is that when more platforms support Ipv6 in the future, the value of PR_AF_INET6 (as defined now) could be different from AF_INET6 (as defined, then, by the platform). This means NSPR must handle the possibility that (PR_AF_INET6 != AF_INET6), if backward compatibility is to be maintained. This patch works only when AF_INET6 == PR_AF_INET6.
Binary compatibility is a good point. Marked the bug WONTFIX.
Severity: normal → enhancement
Status: NEW → RESOLVED
Closed: 25 years ago
Resolution: --- → WONTFIX
After thinking about it some more, I decided to take a compromise. The patch I just checked in defines PR_AF_INET6 to have the same value as AF_INET6 if AF_INET6 is defined on the platform. Surprisingly, many platforms already define AF_INET6 in their socket header files, even though they may not support IPv6 yet. I use the value of AF_INET6 in HP-UX's IPv6 Developer's Kit, hoping that it will stay the same when it is defined in the standard <sys/socket.h>. I left the code that maps PR_AF_INET6 to/from AF_INET6 untouched. For the platforms where PR_AF_INET6 and AF_INET6 are the same, this mapping is wasted work. The good thing is that we have the option to remove the PR_AF_INET6/AF_INET6 mapping code on these platforms in a future minor or patch release. If we define PR_AF_INET6 to be 100 for all platforms, that value will be locked in by binary compatibility on all platforms and we won't be able to perform this optimization on any platform until the next major release.
Reopened bug to change resolution.
Status: RESOLVED → REOPENED
Resolution: WONTFIX → ---
Marked the bug fixed.
Status: REOPENED → RESOLVED
Closed: 25 years ago25 years ago
Resolution: --- → FIXED
Mike Pinkerton <pinkerton@netscape.com> said that the value of AF_INET6 on Mac OS X is 30. Define PR_AF_INET6 to be 30 in nsprpub/pr/src/md/mac/prcpucfg.h. (revision 3.2.58.1, NSPRPUB_RELEASE_4_0_BRANCH)
Define PR_AF_INET6 the same as AF_INET6 on NSPRPUB_RELEASE_4_0_BRANCH for the following platforms: OS/2, OpenVMS, Neutrino (NTO), BSD/OS, FreeBSD, NetBSD, and OpenBSD.
Define PR_AF_INET6 as 30 in _rhapsody.cfg on NSPRPUB_RELEASE_4_0_BRANCH. (Rhapsody is the old code name of Mac OS X.)
Define PR_AF_INET6 as 5 in _beos.cfg on NSPRPUB_RELEASE_4_0_BRANCH.
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: