Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
A
actor-incubator
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
cpp-libs
actor-incubator
Commits
b1946595
Commit
b1946595
authored
Oct 03, 2019
by
Jakob Otto
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Fix build and test on FreeBSD
parent
bf48be27
Changes
3
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
31 additions
and
39 deletions
+31
-39
libcaf_net/src/convert_ip_endpoint.cpp
libcaf_net/src/convert_ip_endpoint.cpp
+1
-0
libcaf_net/test/convert_ip_endpoint.cpp
libcaf_net/test/convert_ip_endpoint.cpp
+28
-37
libcaf_net/test/udp_datagram_socket.cpp
libcaf_net/test/udp_datagram_socket.cpp
+2
-2
No files found.
libcaf_net/src/convert_ip_endpoint.cpp
View file @
b1946595
...
...
@@ -27,6 +27,7 @@ namespace caf {
namespace
detail
{
void
convert
(
const
ip_endpoint
&
src
,
sockaddr_storage
&
dst
)
{
memset
(
&
dst
,
0
,
sizeof
(
sockaddr_storage
));
if
(
src
.
address
().
embeds_v4
())
{
auto
sockaddr4
=
reinterpret_cast
<
sockaddr_in
*>
(
&
dst
);
sockaddr4
->
sin_family
=
AF_INET
;
...
...
libcaf_net/test/convert_ip_endpoint.cpp
View file @
b1946595
...
...
@@ -37,22 +37,21 @@ namespace {
struct
fixture
:
host_fixture
{
fixture
()
:
host_fixture
()
{
memset
(
&
sockaddr
6_src
,
0
,
sizeof
(
sockaddr_in6
));
memset
(
&
sockaddr6_
dst
,
0
,
sizeof
(
sockaddr_in6
));
sockaddr6_src
.
sin6_family
=
AF_INET6
;
sockaddr6_
src
.
sin6_port
=
htons
(
23
)
;
sockaddr6_
src
.
sin6_addr
=
in6addr_loopback
;
memset
(
&
sockaddr4_src
,
0
,
sizeof
(
sockaddr_in
))
;
memset
(
&
sockaddr4_dst
,
0
,
sizeof
(
sockaddr_in
)
);
sockaddr4_
src
.
sin_family
=
AF_INET
;
sockaddr4_
src
.
sin_port
=
htons
(
23
);
sockaddr4_
src
.
sin_addr
.
s_addr
=
INADDR_LOOPBACK
;
memset
(
&
sockaddr
4_src
,
0
,
sizeof
(
sockaddr_storage
));
memset
(
&
sockaddr6_
src
,
0
,
sizeof
(
sockaddr_storage
));
auto
sockaddr6_ptr
=
reinterpret_cast
<
sockaddr_in6
*>
(
&
sockaddr6_src
)
;
sockaddr6_
ptr
->
sin6_family
=
AF_INET6
;
sockaddr6_
ptr
->
sin6_port
=
htons
(
23
)
;
sockaddr6_ptr
->
sin6_addr
=
in6addr_loopback
;
auto
sockaddr4_ptr
=
reinterpret_cast
<
sockaddr_in
*>
(
&
sockaddr4_src
);
sockaddr4_
ptr
->
sin_family
=
AF_INET
;
sockaddr4_
ptr
->
sin_port
=
htons
(
23
);
sockaddr4_
ptr
->
sin_addr
.
s_addr
=
INADDR_LOOPBACK
;
}
sockaddr_in6
sockaddr6_src
;
sockaddr_in6
sockaddr6_dst
;
sockaddr_in
sockaddr4_src
;
sockaddr_in
sockaddr4_dst
;
sockaddr_storage
sockaddr6_src
;
sockaddr_storage
sockaddr4_src
;
sockaddr_storage
dst
;
ip_endpoint
ep_src
;
ip_endpoint
ep_dst
;
};
...
...
@@ -62,51 +61,43 @@ struct fixture : host_fixture {
CAF_TEST_FIXTURE_SCOPE
(
convert_ip_endpoint_tests
,
fixture
)
CAF_TEST
(
sockaddr_in6
roundtrip
)
{
ip_endpoint
e
p
;
ip_endpoint
tm
p
;
CAF_MESSAGE
(
"converting sockaddr_in6 to ip_endpoint"
);
CAF_CHECK_EQUAL
(
convert
(
reinterpret_cast
<
sockaddr_storage
&>
(
sockaddr6_src
),
ep
),
none
);
CAF_CHECK_EQUAL
(
convert
(
sockaddr6_src
,
tmp
),
none
);
CAF_MESSAGE
(
"converting ip_endpoint to sockaddr_in6"
);
convert
(
ep
,
reinterpret_cast
<
sockaddr_storage
&>
(
sockaddr6_dst
));
CAF_CHECK_EQUAL
(
memcmp
(
&
sockaddr6_src
,
&
sockaddr6_dst
,
sizeof
(
sockaddr_in6
)),
0
);
convert
(
tmp
,
dst
);
CAF_CHECK_EQUAL
(
memcmp
(
&
sockaddr6_src
,
&
dst
,
sizeof
(
sockaddr_storage
)),
0
);
}
CAF_TEST
(
ipv6_endpoint
roundtrip
)
{
sockaddr_storage
addr
;
memset
(
&
addr
,
0
,
sizeof
(
sockaddr_storage
));
sockaddr_storage
tmp
=
{};
if
(
auto
err
=
detail
::
parse
(
"[::1]:55555"
,
ep_src
))
CAF_FAIL
(
"unable to parse input: "
<<
err
);
CAF_MESSAGE
(
"converting ip_endpoint to sockaddr_in6"
);
convert
(
ep_src
,
addr
);
convert
(
ep_src
,
tmp
);
CAF_MESSAGE
(
"converting sockaddr_in6 to ip_endpoint"
);
CAF_CHECK_EQUAL
(
convert
(
addr
,
ep_dst
),
none
);
CAF_CHECK_EQUAL
(
convert
(
tmp
,
ep_dst
),
none
);
CAF_CHECK_EQUAL
(
ep_src
,
ep_dst
);
}
CAF_TEST
(
sockaddr_in4
roundtrip
)
{
ip_endpoint
e
p
;
ip_endpoint
tm
p
;
CAF_MESSAGE
(
"converting sockaddr_in to ip_endpoint"
);
CAF_CHECK_EQUAL
(
convert
(
reinterpret_cast
<
sockaddr_storage
&>
(
sockaddr4_src
),
ep
),
none
);
CAF_CHECK_EQUAL
(
convert
(
sockaddr4_src
,
tmp
),
none
);
CAF_MESSAGE
(
"converting ip_endpoint to sockaddr_in"
);
convert
(
ep
,
reinterpret_cast
<
sockaddr_storage
&>
(
sockaddr4_dst
));
CAF_CHECK_EQUAL
(
memcmp
(
&
sockaddr4_src
,
&
sockaddr4_dst
,
sizeof
(
sockaddr_in
)),
0
);
convert
(
tmp
,
dst
);
CAF_CHECK_EQUAL
(
memcmp
(
&
sockaddr4_src
,
&
dst
,
sizeof
(
sockaddr_storage
)),
0
);
}
CAF_TEST
(
ipv4_endpoint
roundtrip
)
{
sockaddr_storage
addr
;
memset
(
&
addr
,
0
,
sizeof
(
sockaddr_storage
));
sockaddr_storage
tmp
=
{};
if
(
auto
err
=
detail
::
parse
(
"127.0.0.1:55555"
,
ep_src
))
CAF_FAIL
(
"unable to parse input: "
<<
err
);
CAF_MESSAGE
(
"converting ip_endpoint to sockaddr_in"
);
convert
(
ep_src
,
addr
);
convert
(
ep_src
,
tmp
);
CAF_MESSAGE
(
"converting sockaddr_in to ip_endpoint"
);
CAF_CHECK_EQUAL
(
convert
(
addr
,
ep_dst
),
none
);
CAF_CHECK_EQUAL
(
convert
(
tmp
,
ep_dst
),
none
);
CAF_CHECK_EQUAL
(
ep_src
,
ep_dst
);
}
CAF_TEST_FIXTURE_SCOPE_END
()
;
CAF_TEST_FIXTURE_SCOPE_END
()
libcaf_net/test/udp_datagram_socket.cpp
View file @
b1946595
...
...
@@ -25,11 +25,11 @@
#include "host_fixture.hpp"
#include "caf/detail/net_syscall.hpp"
#include "caf/detail/socket_sys_includes.hpp"
#include "caf/ip_address.hpp"
#include "caf/ip_endpoint.hpp"
#include "caf/ipv4_address.hpp"
#include "caf/net/ip.hpp"
#include "caf/net/socket_guard.hpp"
using
namespace
caf
;
using
namespace
caf
::
net
;
...
...
@@ -70,11 +70,11 @@ CAF_TEST_FIXTURE_SCOPE(udp_datagram_socket_test, fixture)
CAF_TEST
(
send
and
receive
)
{
std
::
vector
<
byte
>
buf
(
1024
);
CAF_MESSAGE
(
"sending data to: "
<<
to_string
(
ep
));
if
(
auto
err
=
nonblocking
(
socket_cast
<
net
::
socket
>
(
receive_socket
),
true
))
CAF_FAIL
(
"nonblocking returned an error"
<<
err
);
CAF_CHECK_EQUAL
(
read
(
receive_socket
,
make_span
(
buf
)),
sec
::
unavailable_or_would_block
);
CAF_MESSAGE
(
"sending data to "
<<
to_string
(
ep
));
CAF_CHECK_EQUAL
(
write
(
send_socket
,
as_bytes
(
make_span
(
hello_test
)),
ep
),
hello_test
.
size
());
variant
<
std
::
pair
<
size_t
,
ip_endpoint
>
,
sec
>
read_ret
;
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment