diff options
author | irfan <irfan@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 1998-04-08 22:40:51 +0000 |
---|---|---|
committer | irfan <irfan@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 1998-04-08 22:40:51 +0000 |
commit | e165a0f907dd1336c40500abdcc9eda002589e7a (patch) | |
tree | f201e98e407817376a6daebd0393dd12bb1134e6 | |
parent | e557910f60c441eb71e6ec0f5ba36b698ad1cda8 (diff) | |
download | ATCD-e165a0f907dd1336c40500abdcc9eda002589e7a.tar.gz |
*** empty log message ***
-rw-r--r-- | ChangeLog-98a | 6 | ||||
-rw-r--r-- | ace/SOCK_Acceptor.cpp | 16 |
2 files changed, 19 insertions, 3 deletions
diff --git a/ChangeLog-98a b/ChangeLog-98a index cac0b650b18..0846aea59e9 100644 --- a/ChangeLog-98a +++ b/ChangeLog-98a @@ -1,3 +1,9 @@ +Wed Apr 08 17:29:01 1998 Irfan Pyarali <irfan@cs.wustl.edu> + + * ace/SOCK_Acceptor.cpp (open): There was a boo-boo in open() as + we were only calling bind_port() and ignoring the port supplied + by the user. Call bind_port only if port == 0. + Wed Apr 8 01:09:52 1998 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu> * ace/Malloc_T: Added a new ACE_Static_Allocator class, which is diff --git a/ace/SOCK_Acceptor.cpp b/ace/SOCK_Acceptor.cpp index e32d1bd121d..677f5f9c255 100644 --- a/ace/SOCK_Acceptor.cpp +++ b/ace/SOCK_Acceptor.cpp @@ -90,9 +90,19 @@ ACE_SOCK_Acceptor::open (const ACE_Addr &local_sap, else local_inet_addr = *(sockaddr_in *) local_sap.get_addr (); - if (ACE::bind_port (this->get_handle (), - local_inet_addr.sin_addr.s_addr) == -1) - error = 1; + if (local_inet_addr.sin_port == 0) + { + if (ACE::bind_port (this->get_handle (), + local_inet_addr.sin_addr.s_addr) == -1) + error = 1; + } + else + { + if (ACE_OS::bind (this->get_handle (), + (sockaddr *) &local_inet_addr, + sizeof local_inet_addr) == -1) + error = 1; + } } else if (ACE_OS::bind (this->get_handle (), (sockaddr *) local_sap.get_addr (), local_sap.get_size ()) == -1) |