BIND 10 #1238: IfaceMgr support for IPv4 (incl. Socket binding for v4)

BIND 10 Development do-not-reply at isc.org
Tue Dec 6 18:57:12 UTC 2011


#1238: IfaceMgr support for IPv4 (incl. Socket binding for v4)
-------------------------------------+-------------------------------------
                   Reporter:         |                 Owner:  tomek
  stephen                            |                Status:  reviewing
                       Type:  task   |             Milestone:  Sprint-
                   Priority:  major  |  DHCP-20111207
                  Component:  dhcp4  |            Resolution:
                   Keywords:         |             Sensitive:  0
            Defect Severity:  N/A    |           Sub-Project:  DHCP
Feature Depending on Ticket:         |  Estimated Difficulty:  0
        Add Hours to Ticket:  0      |           Total Hours:  0
                  Internal?:  0      |
-------------------------------------+-------------------------------------
Changes (by stephen):

 * owner:  stephen => tomek


Comment:

 Reviewed commit 660cf410c0fb41587b977df992879f5dff934c19.

 A couple of minor points and one more major.

 '''src/bin/dhcp6/tests/dhcp6_srv_unittest.cc'''[[BR]]
 "basic" test: "Dhcp6Srv * srv" should be "Dhcp6* srv".

 "basic" test: There is no need to check for src being non-null before
 calling delete; if it is null, the delete call will be a no-op.

 "Solicit_basic" test: "100+i" should be "100 + i".

 '''src/bin/dhcp6/iface_mgr.cc'''[[BR]]
 delAddress(): The "return" statement could be simplified to "return
 (addrs_.size() < size);"

 >> openSocket4/6(): This is declared to return uint16_t, but it returns
 the "sock" variable which is (correctly) declared "int" (the return type
 of socket()).
 > It was pointed out in #1282 that uint16_t should be used. Signed int is
 used to indicate errors, but we handle this with exceptions. My
 understanding is that the we can use uint16_t or uint32_t here. Jelte
 pointed out that uint16_t should be used, so I'm doing that.
 #1282 says that IfaceMgr::openSocket '''takes''' int, should be uint16_t.
 That is true because an imput parameter is a port number, which is an
 unsigned 16-bit integer.  However, it returns a Unix file descriptor,
 which is an "int". (From [http://en.wikipedia.org/wiki/File_descriptor
 Wikipedia]: "In POSIX, a file descriptor is an integer, specifically of
 the C type int.") socket(), open(), creat() - all functions that return a
 file descriptor - return an int.  Even if we signal errors by throwing
 exceptions, we should use "int" for file descriptors.

-- 
Ticket URL: <http://bind10.isc.org/ticket/1238#comment:10>
BIND 10 Development <http://bind10.isc.org>
BIND 10 Development


More information about the bind10-tickets mailing list