diff options
author | joeh <joeh@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 1999-04-20 18:49:23 +0000 |
---|---|---|
committer | joeh <joeh@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 1999-04-20 18:49:23 +0000 |
commit | 62d8c29b4539ccb77178688b6ed7fea7f5800ef8 (patch) | |
tree | 3e207d3f2f517e8b10bdc2c48e4c0e106a4f4651 /ace/TLI_Connector.cpp | |
parent | 0a8c9480b373d422abcde26cc4b2710abea133cb (diff) | |
download | ATCD-62d8c29b4539ccb77178688b6ed7fea7f5800ef8.tar.gz |
Removed non-blocking connects for XTI/ATM since this causes problems with FORE's driver on Solaris 7
Diffstat (limited to 'ace/TLI_Connector.cpp')
-rw-r--r-- | ace/TLI_Connector.cpp | 21 |
1 files changed, 16 insertions, 5 deletions
diff --git a/ace/TLI_Connector.cpp b/ace/TLI_Connector.cpp index c4c9c33e4a8..878386e26f1 100644 --- a/ace/TLI_Connector.cpp +++ b/ace/TLI_Connector.cpp @@ -56,7 +56,7 @@ ACE_TLI_Connector::connect (ACE_TLI_Stream &new_stream, struct t_bind *localaddr; localaddr = (struct t_bind *) - ::t_alloc (new_stream.get_handle (), T_BIND, T_ADDR); + ACE_OS::t_alloc (new_stream.get_handle (), T_BIND, T_ADDR); if (localaddr == 0) result = -1; @@ -80,9 +80,12 @@ ACE_TLI_Connector::connect (ACE_TLI_Stream &new_stream, #endif /* ACE_HAS_FORE_ATM_XTI */ { // localaddr->glen = 0; - localaddr->addr.maxlen = local_sap.get_size (); + //localaddr->addr.maxlen = local_sap.get_size (); localaddr->addr.len = local_sap.get_size (); - localaddr->addr.buf = (char *) local_sap.get_addr (); + ACE_OS::memcpy(localaddr->addr.buf, + local_sap.get_addr (), + localaddr->addr.len); + //localaddr->addr.buf = (char *) local_sap.get_addr (); if (ACE_OS::t_bind (new_stream.get_handle (), localaddr, @@ -114,9 +117,12 @@ ACE_TLI_Connector::connect (ACE_TLI_Stream &new_stream, new_stream.close (); return -1; } - callptr->addr.maxlen = remote_sap.get_size (); + //callptr->addr.maxlen = remote_sap.get_size (); callptr->addr.len = remote_sap.get_size (); - callptr->addr.buf = (char *) remote_sap.get_addr (); + ACE_OS::memcpy(callptr->addr.buf, + remote_sap.get_addr (), + callptr->addr.len); + //callptr->addr.buf = (char *) remote_sap.get_addr (); if (udata != 0) ACE_OS::memcpy ((void *) &callptr->udata, (void *) udata, sizeof *udata); @@ -124,6 +130,11 @@ ACE_TLI_Connector::connect (ACE_TLI_Stream &new_stream, ACE_OS::memcpy ((void *) &callptr->opt, (void *) opt, sizeof *opt); // Connect to remote endpoint. +#if defined (ACE_HAS_FORE_ATM_XTI) + // FORE's XTI/ATM driver has problems with ioctl/fcntl calls so (at least + // for now) always have blocking calls. + timeout = 0; +#endif /* ACE_HAS_FORE_ATM_XTI */ if (timeout != 0) // Enable non-blocking, if required. { |