summaryrefslogtreecommitdiff
path: root/ace/SOCK_Dgram_Mcast.i
blob: 3244f21b078fc7daf2629b96663d0cbe14950afd (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
/* -*- C++ -*- */
// $Id$

ACE_INLINE int
ACE_SOCK_Dgram_Mcast::set_option (int option,
                                  char optval)
{
  ACE_TRACE ("ACE_SOCK_Dgram_Mcast::set_option");

  if (this->get_handle () == ACE_INVALID_HANDLE)
    return -1;

  int level = IPPROTO_IP;
#if defined (IPPROTO_IPV6) && ! defined (INTEGRITY)
  if (this->send_addr_.get_type () == PF_INET6)
    level = IPPROTO_IPV6;
#endif /* IPPROTO_IPV6 */

  return this->ACE_SOCK::set_option (level,
                                     option,
                                     &optval,
                                     sizeof (optval));
}

ACE_INLINE ssize_t
ACE_SOCK_Dgram_Mcast::send (const void *buf,
                            size_t n,
                            int flags) const
{
  ACE_TRACE ("ACE_SOCK_Dgram_Mcast::send");
  return this->ACE_SOCK_Dgram::send (buf,
                                     n,
                                     this->send_addr_,
                                     flags);
}

ACE_INLINE ssize_t
ACE_SOCK_Dgram_Mcast::send (const iovec iov[],
                            int n,
                            int flags) const
{
  ACE_TRACE ("ACE_SOCK_Dgram_Mcast::send");
  return this->ACE_SOCK_Dgram::send (iov,
                                     n,
                                     this->send_addr_,
                                     flags);
}