No EACCESS, expect EADDRNOTAVAIL instead

This commit is contained in:
Bert Belder 2011-05-04 00:25:48 +02:00
parent 17c568b235
commit 26148c1310
3 changed files with 29 additions and 40 deletions

View File

@ -204,16 +204,6 @@ int oio_bind(oio_handle* handle, struct sockaddr* addr) {
if (addr->sa_family == AF_INET) {
addrsize = sizeof(struct sockaddr_in);
domain = AF_INET;
struct sockaddr_in* addr_in = (struct sockaddr_in*)addr;
/* For platform compat, if the address is 255.255.255.255 then we must
* return EACCESS. */
if (addr_in->sin_addr.s_addr == 0xFFFFFFFF) {
oio_err_new(handle, EACCES);
return -1;
}
} else if (addr->sa_family == AF_INET6) {
addrsize = sizeof(struct sockaddr_in6);
domain = AF_INET6;

View File

@ -43,30 +43,6 @@ static oio_buf alloc_cb(oio_handle* handle, size_t size) {
}
TEST_IMPL(bind_error_access) {
struct sockaddr_in addr = oio_ip4_addr("255.255.255.255", TEST_PORT);
oio_handle server;
int r;
oio_init(alloc_cb);
r = oio_tcp_init(&server, close_cb, NULL);
ASSERT(r == 0);
r = oio_bind(&server, (struct sockaddr*) &addr);
ASSERT(r == -1);
ASSERT(oio_last_error().code == OIO_EACCESS);
oio_close(&server);
oio_run();
ASSERT(close_cb_called == 1);
return 0;
}
TEST_IMPL(bind_error_addrinuse) {
struct sockaddr_in addr = oio_ip4_addr("0.0.0.0", TEST_PORT);
oio_handle server1, server2;
@ -102,7 +78,30 @@ TEST_IMPL(bind_error_addrinuse) {
}
TEST_IMPL(bind_error_addrnotavail) {
TEST_IMPL(bind_error_addrnotavail_1) {
struct sockaddr_in addr = oio_ip4_addr("127.255.255.255", TEST_PORT);
oio_handle server;
int r;
oio_init(alloc_cb);
r = oio_tcp_init(&server, close_cb, NULL);
ASSERT(r == 0);
r = oio_bind(&server, (struct sockaddr*) &addr);
ASSERT(r == -1);
ASSERT(oio_last_error().code == OIO_EADDRNOTAVAIL);
oio_close(&server);
oio_run();
ASSERT(close_cb_called == 1);
return 0;
}
TEST_IMPL(bind_error_addrnotavail_2) {
struct sockaddr_in addr = oio_ip4_addr("4.4.4.4", TEST_PORT);
oio_handle server;
int r;

View File

@ -22,9 +22,9 @@
TEST_DECLARE (ping_pong)
TEST_DECLARE (delayed_accept)
TEST_DECLARE (tcp_writealot)
TEST_DECLARE (bind_error_access)
TEST_DECLARE (bind_error_addrinuse)
TEST_DECLARE (bind_error_addrnotavail)
TEST_DECLARE (bind_error_addrnotavail_1)
TEST_DECLARE (bind_error_addrnotavail_2)
TEST_DECLARE (bind_error_fault_1)
TEST_DECLARE (bind_error_inval)
TEST_DECLARE (connection_fail)
@ -43,11 +43,11 @@ TASK_LIST_START
TEST_ENTRY (tcp_writealot)
TEST_HELPER (tcp_writealot, echo_server)
TEST_ENTRY (bind_error_access)
TEST_ENTRY (bind_error_addrinuse)
TEST_ENTRY (bind_error_addrnotavail)
TEST_ENTRY (bind_error_addrnotavail_1)
TEST_ENTRY (bind_error_addrnotavail_2)
TEST_ENTRY (bind_error_fault_1)