Page History

Turn Off History

See also:

Phases

  1. use newer socket API without supporting IPv6 at all
  2. introduce ipaddr structure, which is capable of storing IPv6 address. (but no IPv6 support)
  3. Support IPv6
  4. (maybe) support dual stack (IPv4 and IPv6 on single daemon, single socket)

Phase 1

step 0: thursday, april 29

  1. list all functions that need to be ipv6 aware. gethostbyname, gethostbyaddr, etc.

  2. create wrappers for each of the above functions if they do not exist.

  3. find all call sites for above functions and use wrapper instead

step 1: friday, april 30

  1. reimplement gethostbyname (and others) to invoke getaddrinfo() instead, and copy resulting ipv4 address into hostent structure, and return. this does not change the signature of condor_gethostbyname().

step 2: monday, may 3

  1. deal with inet_ntoa and family?

step 3: monday, may 10

  1. introduce ipaddr class (which encapsulates both v4 and v6 addresses) and change function signatures where needed. update call sites.

step 4: wednesday, may 12

  1. introduce condor_hostent (might actually be equivalent to addrinfo), change function signatures, update call sites. hostent was static, so also add calls to free() for the new condor_hostent structure.

everything to here done by may 14th.

step 5: (next semester)

  1. actually populate the condor_hostent and ipaddr classes with ipv6 data. watch what breaks, come up with a plan. ipverify() and many other places in condor which assume 4-byte ip address or 21-byte address strings will need to be updated.