[Ace-users] Subject: Proactor: Linux proactor always returns errno 14 (Bad Address) with UDP socket

FCJ fernando.fcavalcanti at gmail.com
Thu Feb 21 16:15:12 CST 2008


I found out 3 issues so far with ACE_POSIX_Asynch_Read_Dgram_Result:

1 - aio_read () fails with error 14 (Bad Address) for
ACE_POSIX_Asynch_Read_Dgram_Result due to the following not being set
in the constructor:
     this->aio_buf = message_block->wr_ptr ();

2 - aio_send () fails with error 89 (Destination address required) for
ACE_POSIX_Asynch_Write_Dgram_Result because the following is not being
set in the costructor:
      this->aio_buf = message_block->rd_ptr();

3 - I don't see what is the point of doing the following in the
constructor for ACE_POSIX_Asynch_Read_Dgram_Result:
     ACE_NEW (this->remote_address_, ACE_INET_Addr);

This remote_address_ is never set to the real remote address... It
seems to me that the remote address should be stored on the open call
(or be given in the recv call itself).  Right now, I am giving my
ACE_INET_Addr in the act variable, so I can retrieve it later.


Can anyone verify the following fixes? I am testing on my side, if it
works I would be more than happy to add them to ACE distribution.

Fernando


More information about the Ace-users mailing list