summaryrefslogtreecommitdiff
path: root/ace/TLI.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'ace/TLI.cpp')
-rw-r--r--ace/TLI.cpp273
1 files changed, 0 insertions, 273 deletions
diff --git a/ace/TLI.cpp b/ace/TLI.cpp
deleted file mode 100644
index c53ed5a7e4e..00000000000
--- a/ace/TLI.cpp
+++ /dev/null
@@ -1,273 +0,0 @@
-// $Id$
-
-// Defines the member functions for the base class of the ACE_TLI
-// abstraction.
-
-#include "ace/TLI.h"
-#include "ace/Log_Msg.h"
-#include "ace/OS_Memory.h"
-#include "ace/OS_TLI.h"
-#include "ace/OS_NS_string.h"
-#include "ace/OS_NS_sys_socket.h"
-#include "ace/Auto_Ptr.h"
-
-ACE_RCSID(ace, TLI, "$Id$")
-
-#if defined (ACE_HAS_TLI)
-
-#if !defined (__ACE_INLINE__)
-#include "ace/TLI.inl"
-#endif /* __ACE_INLINE__ */
-
-ACE_BEGIN_VERSIONED_NAMESPACE_DECL
-
-ACE_ALLOC_HOOK_DEFINE(ACE_TLI)
-
-void
-ACE_TLI::dump (void) const
-{
-#if defined (ACE_HAS_DUMP)
- ACE_TRACE ("ACE_TLI::dump");
-#endif /* ACE_HAS_DUMP */
-}
-
-ACE_TLI::ACE_TLI (void)
-{
- ACE_TRACE ("ACE_TLI::ACE_TLI");
-#if defined (ACE_HAS_SVR4_TLI)
-// Solaris 2.4 ACE_TLI option handling is broken. Thus, we must do
-// the memory allocation ourselves... Thanks to John P. Hearn
-// (jph@ccrl.nj.nec.com) for the help.
-
- this->so_opt_req.opt.maxlen = sizeof (opthdr) + sizeof (long);
- ACE_NEW (this->so_opt_req.opt.buf,
- char[this->so_opt_req.opt.maxlen]);
-
- this->so_opt_ret.opt.maxlen = sizeof (opthdr) + sizeof (long);
- ACE_NEW (this->so_opt_ret.opt.buf,
- char[this->so_opt_ret.opt.maxlen]);
-
- if (this->so_opt_ret.opt.buf == 0)
- {
- delete [] this->so_opt_req.opt.buf;
- this->so_opt_req.opt.buf = 0;
- return;
- }
-#endif /* ACE_HAS_SVR4_TLI */
-}
-
-ACE_HANDLE
-ACE_TLI::open (const char device[], int oflag, struct t_info *info)
-{
- ACE_TRACE ("ACE_TLI::open");
- if (oflag == 0)
- oflag = O_RDWR;
- this->set_handle (ACE_OS::t_open ((char *) device, oflag, info));
-
- return this->get_handle ();
-}
-
-ACE_TLI::~ACE_TLI (void)
-{
- ACE_TRACE ("ACE_TLI::~ACE_TLI");
-#if defined (ACE_HAS_SVR4_TLI)
- if (this->so_opt_req.opt.buf)
- {
- delete [] this->so_opt_req.opt.buf;
- delete [] this->so_opt_ret.opt.buf;
- this->so_opt_req.opt.buf = 0;
- this->so_opt_ret.opt.buf = 0;
- }
-#endif /* ACE_HAS_SVR4_TLI */
-}
-
-ACE_TLI::ACE_TLI (const char device[], int oflag, struct t_info *info)
-{
- ACE_TRACE ("ACE_TLI::ACE_TLI");
- if (this->open (device, oflag, info) == ACE_INVALID_HANDLE)
- ACE_ERROR ((LM_ERROR,
- ACE_LIB_TEXT ("%p\n"),
- ACE_LIB_TEXT ("ACE_TLI::ACE_TLI")));
-}
-
-int
-ACE_TLI::get_local_addr (ACE_Addr &sa) const
-{
- ACE_TRACE ("ACE_TLI::get_local_addr");
- struct netbuf name;
-
- name.maxlen = sa.get_size ();
- name.buf = (char *) sa.get_addr ();
-
- if (ACE_OS::t_getname (this->get_handle (), &name, LOCALNAME) == -1)
- return -1;
- else
- return 0;
-}
-
-int
-ACE_TLI::close (void)
-{
- ACE_TRACE ("ACE_TLI::close");
- int result = 0; // Geisler: result must be int
-
- if (this->get_handle () != ACE_INVALID_HANDLE)
- {
- result = ACE_OS::t_close (this->get_handle ());
- this->set_handle (ACE_INVALID_HANDLE);
- }
- return result;
-}
-
-int
-ACE_TLI::set_option (int level, int option, void *optval, int optlen)
-{
- /* Set up options for ACE_TLI */
- ACE_TRACE ("ACE_TLI::set_option");
-
-#if defined (ACE_HAS_XTI)
- // ret will get the negotiated option back after attempting to set it.
- // Assume this will fit in the requested size.
- struct t_optmgmt req, ret;
- ACE_NEW_RETURN (req.opt.buf, char[sizeof (struct t_opthdr) + optlen], -1);
-# if (_XOPEN_SOURCE - 0 >= 500)
- auto_ptr<char> req_opt_buf_p (reinterpret_cast<char*> (req.opt.buf));
-# else
- ACE_Auto_Array_Ptr<char> req_opt_buf_p (req.opt.buf);
-# endif /* XPG5 vs XPG4 */
- struct t_opthdr *opthdr =
- reinterpret_cast<struct t_opthdr *> (req.opt.buf);
- ACE_NEW_RETURN (ret.opt.buf, char[sizeof (struct t_opthdr) + optlen], -1);
-# if (_XOPEN_SOURCE - 0 >= 500)
- auto_ptr<char> ret_opt_buf_p (reinterpret_cast<char*> (ret.opt.buf));
-# else
- ACE_Auto_Array_Ptr<char> ret_opt_buf_p (ret.opt.buf);
-# endif /* XPG5 vs XPG4 */
-
- req.flags = T_NEGOTIATE;
- req.opt.len = sizeof *opthdr + optlen;
- ret.opt.maxlen = req.opt.len;
- opthdr->level = level;
- opthdr->name = option;
- opthdr->len = req.opt.len; // We only request one option at a time.
- ACE_OS::memcpy (&opthdr[1], optval, optlen);
- return ACE_OS::t_optmgmt (this->get_handle (), &req, &ret);
-
-#elif defined (ACE_HAS_SVR4_TLI)
- struct opthdr *opthdr = 0; /* See <sys/socket.h> for info on this format */
-
- this->so_opt_req.flags = T_NEGOTIATE;
- this->so_opt_req.opt.len = sizeof *opthdr + OPTLEN (optlen);
-
- if (this->so_opt_req.opt.len > this->so_opt_req.opt.maxlen)
- {
-# if !defined (ACE_HAS_SET_T_ERRNO)
- t_errno = TBUFOVFLW;
-# else
- set_t_errno (TBUFOVFLW);
-# endif /* ACE_HAS_SET_T_ERRNO */
- return -1;
- }
-
- opthdr = reinterpret_cast<struct opthdr *> (this->so_opt_req.opt.buf);
- opthdr->level = level;
- opthdr->name = option;
- opthdr->len = OPTLEN (optlen);
- ACE_OS::memcpy (OPTVAL (opthdr), optval, optlen);
-
- return ACE_OS::t_optmgmt (this->get_handle (),
- &this->so_opt_req,
- &this->so_opt_ret);
-#else
- ACE_UNUSED_ARG (level);
- ACE_UNUSED_ARG (option);
- ACE_UNUSED_ARG (optval);
- ACE_UNUSED_ARG (optlen);
- return -1;
-#endif /* ACE_HAS_XTI, else ACE_HAS_SVR4_TLI */
-}
-
-int
-ACE_TLI::get_option (int level, int option, void *optval, int &optlen)
-{
- ACE_TRACE ("ACE_TLI::get_option");
-#if defined (ACE_HAS_XTI)
- // ret will get the option requested in req.
- struct t_optmgmt req, ret;
- ACE_NEW_RETURN (req.opt.buf, char[sizeof (struct t_opthdr)], -1);
-# if (_XOPEN_SOURCE - 0 >= 500)
- auto_ptr<char> req_opt_buf_p (reinterpret_cast<char*> (req.opt.buf));
-# else
- ACE_Auto_Array_Ptr<char> req_opt_buf_p (req.opt.buf);
-# endif /* XPG5 vs XPG4 */
- struct t_opthdr *opthdr =
- reinterpret_cast<struct t_opthdr *> (req.opt.buf);
- ACE_NEW_RETURN (ret.opt.buf, char[sizeof (struct t_opthdr) + optlen], -1);
-# if (_XOPEN_SOURCE - 0 >= 500)
- auto_ptr<char> ret_opt_buf_p (reinterpret_cast<char*> (ret.opt.buf));
-# else
- ACE_Auto_Array_Ptr<char> ret_opt_buf_p (ret.opt.buf);
-# endif /* XPG5 vs XPG4 */
-
- req.flags = T_CURRENT;
- req.opt.len = sizeof *opthdr;
- ret.opt.maxlen = sizeof (struct t_opthdr) + optlen;
- opthdr->level = level;
- opthdr->name = option;
- opthdr->len = sizeof (*opthdr); // Just the header on the request
- if (ACE_OS::t_optmgmt (this->get_handle (), &req, &ret) == -1)
- return -1;
- else
- {
- opthdr = reinterpret_cast<struct t_opthdr *> (ret.opt.buf);
- if (opthdr->status == T_NOTSUPPORT)
- {
- errno = ENOTSUP;
- return -1;
- }
- else
- {
- ACE_OS::memcpy (optval, &opthdr[1], optlen);
- return 0;
- }
- }
-
-#elif defined (ACE_HAS_SVR4_TLI)
- struct opthdr *opthdr = 0; /* See <sys/socket.h> for details on this format */
-
- this->so_opt_req.flags = T_CHECK;
- this->so_opt_ret.opt.len = sizeof *opthdr + OPTLEN (optlen);
-
- if (this->so_opt_ret.opt.len > this->so_opt_ret.opt.maxlen)
- {
-#if !defined (ACE_HAS_SET_T_ERRNO)
- t_errno = TBUFOVFLW;
-#else
- set_t_errno (TBUFOVFLW);
-#endif /* ACE_HAS_SET_T_ERRNO */
- return -1;
- }
-
- opthdr = (struct opthdr *) this->so_opt_req.opt.buf;
- opthdr->level = level;
- opthdr->name = option;
- opthdr->len = OPTLEN (optlen);
- if (ACE_OS::t_optmgmt (this->get_handle (), &this->so_opt_req, &this->so_opt_ret) == -1)
- return -1;
- else
- {
- ACE_OS::memcpy (optval, OPTVAL (opthdr), optlen);
- return 0;
- }
-#else
- ACE_UNUSED_ARG (level);
- ACE_UNUSED_ARG (option);
- ACE_UNUSED_ARG (optval);
- ACE_UNUSED_ARG (optlen);
- return -1;
-#endif /* ACE_HAS_SVR4_TLI */
-}
-
-ACE_END_VERSIONED_NAMESPACE_DECL
-
-#endif /* ACE_HAS_TLI */