summaryrefslogtreecommitdiff
path: root/ace/TLI_Connector.cpp
diff options
context:
space:
mode:
authorjoeh <joeh@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>1999-04-20 18:49:23 +0000
committerjoeh <joeh@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>1999-04-20 18:49:23 +0000
commit62d8c29b4539ccb77178688b6ed7fea7f5800ef8 (patch)
tree3e207d3f2f517e8b10bdc2c48e4c0e106a4f4651 /ace/TLI_Connector.cpp
parent0a8c9480b373d422abcde26cc4b2710abea133cb (diff)
downloadATCD-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.cpp21
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.
{