Page History
- 2012-Nov-13 16:18 adesmet
- 2011-Apr-12 14:23 m
- 2010-Sep-08 11:25 adesmet
- 2010-Aug-17 14:53 adesmet
- 2010-Apr-27 21:43 m
- 2010-Apr-07 06:02 m
- 2010-Mar-29 10:27 m
- 2010-Jan-28 18:46 m
- 2010-Jan-28 18:46 m
- 2010-Jan-26 18:35 m
- 2010-Jan-25 17:20 m
- 2010-Jan-25 17:19 m
- 2010-Jan-25 17:09 m
- 2010-Jan-25 17:06 m
- 2010-Jan-24 21:07 m
- 2010-Jan-24 21:04 m
- 2010-Jan-24 21:03 m
- 2010-Jan-24 20:52 m
- 2010-Jan-24 19:36 m
- 2010-Jan-24 19:07 m
- 2010-Jan-24 18:58 m
- 2010-Jan-22 17:07 m
- 2010-Jan-22 17:06 m
- 2010-Jan-19 10:40 m
- 2010-Jan-19 10:36 m
- 2010-Jan-18 11:05 m
- 2010-Jan-18 11:05 m
- 2010-Jan-12 16:15 m
- 2010-Jan-12 15:52 m
- 2010-Jan-12 15:43 m
- 2010-Jan-12 15:42 m
- 2010-Jan-12 15:34 m
- 2010-Jan-12 15:18 m
- 2010-Jan-12 15:11 m
- 2010-Jan-12 15:10 m
- 2010-Jan-12 10:36 m
- 2010-Jan-12 10:36 m
- 2009-Dec-23 16:34 m
- 2009-Dec-23 16:32 m
- 2009-Dec-23 16:25 m
- 2009-Dec-23 16:23 m
- 2009-Dec-23 16:22 m
- 2009-Dec-23 14:47 m
- 2009-Dec-23 14:47 m
- 2009-Dec-23 14:36 m
- 2009-Dec-23 11:33 matt
- 2009-Dec-21 18:21 m
- 2009-Dec-21 18:21 m
- 2009-Dec-21 18:17 m
- 2009-Dec-21 18:14 m
- 2009-Dec-21 18:13 m
- 2009-Dec-21 04:29 m
- 2009-Dec-21 04:27 m
- 2009-Dec-21 04:17 m
- 2009-Dec-21 04:14 m
- 2009-Dec-21 04:08 m
- 2009-Dec-21 04:05 m
- 2009-Dec-21 04:03 m
- 2009-Dec-21 04:01 m
- 2009-Dec-21 03:54 m
- 2009-Dec-21 03:42 m
- 2009-Dec-21 03:35 m
- 2009-Dec-18 17:14 m
- 2009-Dec-11 16:09 m
- 2009-Dec-11 16:07 m
- 2009-Dec-11 16:06 m
- 2009-Dec-11 16:05 m
- 2009-Dec-11 16:04 m
- 2009-Dec-11 16:01 m
- 2009-Dec-11 15:34 m
- 2009-Dec-08 04:54 m
- 2009-Dec-08 04:53 m
- 2009-Dec-08 04:50 m
- 2009-Dec-08 04:48 m
- 2009-Dec-08 04:36 m
- 2009-Dec-08 04:36 m
- 2009-Dec-08 04:35 m
- 2009-Dec-08 04:34 m
- 2009-Dec-08 04:33 m
- 2009-Dec-08 04:26 m
- 2009-Dec-08 04:24 m
- 2009-Dec-08 04:23 m
- 2009-Dec-08 04:23 m
- 2009-Dec-08 04:17 m
- 2009-Dec-08 04:11 m
- 2009-Dec-08 04:08 m
- 2009-Dec-08 04:03 m
- 2009-Dec-04 17:24 m
- 2009-Dec-04 17:17 m
- 2009-Dec-04 17:15 m
- 2009-Dec-04 17:04 m
What should be changed?
All the deprecated BSD socket functions. These are complete list. (from Userlevel IPv6 Programming Introduction)
numbers in right denotes lines of code that has the keyword. struct sockaddr_in : 237 gethostbyname : 165 gethostbyname2 : 0 getservbyname : 5 gethostbyaddr : 23 getservbyport : 0 inet_addr : 13 inet_aton : 7 inet_nsap_addr : 0 inet_ntoa : 114 inet_nsap_ntoa : 0 inet_makeaddr : 0 inet_netof : 0 inet_network : 0 inet_neta : 0 inet_net_netop : 0 inet_net_pton : 0 rcmd : 10 rexec : 2 rrsevport : 0 total 576 lines of code *must* be changed.
IP address is no longer fixed 4 bytes nor fixed 16 bytes. It can be both of them. So, every storage class should be changed. For some of source codes that use 'int' as storage for IP address, this is most troublesome because it could be hidden to simple text search.
Current Condor Code Base
sockaddr_in is used in many areas and also unsigned long is used to hold IP address.
There are many places to change. For example, in sock.h,
unsigned int Sock::get_ip_int() unsigned int Sock::peer_ip_int()
The method of Attack
Having some network abstraction classes, single IP address class that deals both IPv4 and IPv6. So, nobody uses sockaddr, sockaddr_in, or plain int to represent IP address.
class Sock already has abstraction of BSD socket interface. But, IP address escapes from this classes by returning it as an 4 byte int and sockaddr_in.
Todo
Manageable daily work-list.
- investigate every source code where calls obsolete BSD socket interface.
- remove every obsolete interface.
- find places where use 'int' as IP address storage. mark and count them.
- investigate ipv6 address handling in C++ Boost library
- make unified address class
- change every incidents where use sockaddr,sockaddr_in, and int.
Note
- internet.h seems to have a lot of IP-v6 incompatible functions.
- why do you call <a.b.c.d:pppp> as sinful string? what does it mean 'sinful'?
- do we really need unified ip address class? IPv6 address space contains IPv4 and there is 1-to-1 mapping.
*** currently, this is just temporary page