EMANE
1.2.1
socket.cc
Go to the documentation of this file.
1
/*
2
* Copyright (c) 2015 - Adjacent Link LLC, Bridgewater, New Jersey
3
* All rights reserved.
4
*
5
* Redistribution and use in source and binary forms, with or without
6
* modification, are permitted provided that the following conditions
7
* are met:
8
*
9
* * Redistributions of source code must retain the above copyright
10
* notice, this list of conditions and the following disclaimer.
11
* * Redistributions in binary form must reproduce the above copyright
12
* notice, this list of conditions and the following disclaimer in
13
* the documentation and/or other materials provided with the
14
* distribution.
15
* * Neither the name of Adjacent Link LLC nor the names of its
16
* contributors may be used to endorse or promote products derived
17
* from this software without specific prior written permission.
18
*
19
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
20
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
21
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
22
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
23
* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
24
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
25
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
26
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
27
* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
28
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
29
* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
30
* POSSIBILITY OF SUCH DAMAGE.
31
*/
32
33
#include "
socket.h
"
34
#include "
socketexception.h
"
35
36
#include <unistd.h>
37
#include <sys/types.h>
38
#include <sys/socket.h>
39
40
void
EMANE::Socket::close
()
41
{
42
if
(
iSock_
!= -1)
43
{
44
::close
(
iSock_
);
45
iSock_
= -1;
46
}
47
}
48
49
ssize_t
EMANE::Socket::sendto
(
const
void
* buf,
size_t
len,
int
flags,
const
INETAddr
& address)
50
{
51
return ::sendto(
iSock_
,buf,len,flags,address.
getSockAddr
(),address.
getAddrLength
());
52
}
53
54
55
EMANE::Socket::Socket
():
56
iSock_
{-1}{}
57
58
EMANE::Socket::~Socket
()
59
{
60
close
();
61
}
EMANE::Socket::close
void close()
Definition:
socket.cc:40
EMANE::INETAddr::getAddrLength
socklen_t getAddrLength() const
Definition:
inetaddr.cc:404
EMANE::INETAddr::getSockAddr
sockaddr * getSockAddr() const
Definition:
inetaddr.cc:399
EMANE::INETAddr
Definition:
inetaddr.h:43
EMANE::Socket::~Socket
virtual ~Socket()
Definition:
socket.cc:58
EMANE::Socket::Socket
Socket()
Definition:
socket.cc:55
EMANE::Socket::iSock_
int iSock_
Definition:
socket.h:55
EMANE::Socket::sendto
ssize_t sendto(const void *buf, size_t len, int flags, const INETAddr &address)
Definition:
socket.cc:49
socket.h
socketexception.h
src
libemane
socket.cc
Generated by
1.8.13