Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
L
libnice
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
libnice
Commits
03dce9b3
Commit
03dce9b3
authored
Jan 30, 2009
by
Youness Alaoui
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Porting the unit tests to use the new stun API
parent
95c34a4b
Changes
5
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
79 additions
and
110 deletions
+79
-110
stun/tests/test-bind.c
stun/tests/test-bind.c
+2
-13
stun/tests/test-conncheck.c
stun/tests/test-conncheck.c
+25
-35
stun/tests/test-format.c
stun/tests/test-format.c
+20
-22
stun/tests/test-parse.c
stun/tests/test-parse.c
+32
-31
stun/tests/test-turn.c
stun/tests/test-turn.c
+0
-9
No files found.
stun/tests/test-bind.c
View file @
03dce9b3
...
@@ -49,15 +49,6 @@
...
@@ -49,15 +49,6 @@
#ifdef _WIN32
#ifdef _WIN32
#include <winsock2.h>
#include <winsock2.h>
#include <ws2tcpip.h>
#include <ws2tcpip.h>
#define ENOENT -1
#define EINVAL -2
#define ENOBUFS -3
#define EAFNOSUPPORT -4
#define EPROTO -5
#define EACCES -6
#define EINPROGRESS -7
#define EAGAIN -8
#define ENOSYS -9
#define MSG_DONTWAIT 0
#define MSG_DONTWAIT 0
#define MSG_NOSIGNAL 0
#define MSG_NOSIGNAL 0
...
@@ -69,7 +60,6 @@
...
@@ -69,7 +60,6 @@
#include <sys/socket.h>
#include <sys/socket.h>
#include <arpa/inet.h>
#include <arpa/inet.h>
#include <netdb.h>
#include <netdb.h>
#include <errno.h>
#endif
#endif
#undef NDEBUG
/* ensure assertions are built-in */
#undef NDEBUG
/* ensure assertions are built-in */
...
@@ -370,9 +360,8 @@ static void responses (void)
...
@@ -370,9 +360,8 @@ static void responses (void)
==
STUN_VALIDATION_SUCCESS
);
==
STUN_VALIDATION_SUCCESS
);
stun_agent_init_response
(
&
agent
,
&
msg
,
buf
,
sizeof
(
buf
),
&
msg
);
stun_agent_init_response
(
&
agent
,
&
msg
,
buf
,
sizeof
(
buf
),
&
msg
);
val
=
stun_message_append_addr
(
&
msg
,
STUN_ATTRIBUTE_MAPPED_ADDRESS
,
assert
(
stun_message_append_addr
(
&
msg
,
STUN_ATTRIBUTE_MAPPED_ADDRESS
,
(
struct
sockaddr
*
)
&
addr
,
addrlen
);
(
struct
sockaddr
*
)
&
addr
,
addrlen
)
==
STUN_MESSAGE_RETURN_SUCCESS
);
assert
(
val
==
0
);
len
=
stun_agent_finish_message
(
&
agent
,
&
msg
,
NULL
,
0
);
len
=
stun_agent_finish_message
(
&
agent
,
&
msg
,
NULL
,
0
);
assert
(
len
>
0
);
assert
(
len
>
0
);
...
...
stun/tests/test-conncheck.c
View file @
03dce9b3
...
@@ -49,16 +49,6 @@
...
@@ -49,16 +49,6 @@
#ifdef _WIN32
#ifdef _WIN32
#include <winsock2.h>
#include <winsock2.h>
#include <ws2tcpip.h>
#include <ws2tcpip.h>
#define ENOENT -1
#define EINVAL -2
#define ENOBUFS -3
#define EAFNOSUPPORT -4
#define EPROTO -5
#define EACCES -6
#define EINPROGRESS -7
#define EAGAIN -8
#define ENOSYS -9
#define MSG_DONTWAIT 0
#define MSG_DONTWAIT 0
#define MSG_NOSIGNAL 0
#define MSG_NOSIGNAL 0
...
@@ -69,7 +59,6 @@
...
@@ -69,7 +59,6 @@
#include <arpa/inet.h>
#include <arpa/inet.h>
#include <netinet/in.h>
#include <netinet/in.h>
#include <netdb.h>
#include <netdb.h>
#include <errno.h>
#endif
#endif
#undef NDEBUG
/* ensure assertions are built-in */
#undef NDEBUG
/* ensure assertions are built-in */
...
@@ -82,7 +71,8 @@ int main (void)
...
@@ -82,7 +71,8 @@ int main (void)
uint8_t
req_buf
[
STUN_MAX_MESSAGE_SIZE
];
uint8_t
req_buf
[
STUN_MAX_MESSAGE_SIZE
];
uint8_t
resp_buf
[
STUN_MAX_MESSAGE_SIZE
];
uint8_t
resp_buf
[
STUN_MAX_MESSAGE_SIZE
];
const
uint64_t
tie
=
0x8000000000000000LL
;
const
uint64_t
tie
=
0x8000000000000000LL
;
ssize_t
val
;
StunMessageReturn
val
;
StunUsageIceReturn
val2
;
size_t
len
;
size_t
len
;
size_t
rlen
;
size_t
rlen
;
static
char
username
[]
=
"L:R"
,
ufrag
[]
=
"L"
,
pass
[]
=
"secret"
;
static
char
username
[]
=
"L:R"
,
ufrag
[]
=
"L"
,
pass
[]
=
"secret"
;
...
@@ -119,32 +109,32 @@ int main (void)
...
@@ -119,32 +109,32 @@ int main (void)
assert
(
rlen
>
0
);
assert
(
rlen
>
0
);
len
=
sizeof
(
resp_buf
);
len
=
sizeof
(
resp_buf
);
val
=
stun_usage_ice_conncheck_create_reply
(
&
agent
,
&
req
,
val
2
=
stun_usage_ice_conncheck_create_reply
(
&
agent
,
&
req
,
&
resp
,
resp_buf
,
&
len
,
(
struct
sockaddr
*
)
&
ip4
,
&
resp
,
resp_buf
,
&
len
,
(
struct
sockaddr
*
)
&
ip4
,
sizeof
(
ip4
),
&
control
,
tie
,
STUN_USAGE_ICE_COMPATIBILITY_DRAFT19
);
sizeof
(
ip4
),
&
control
,
tie
,
STUN_USAGE_ICE_COMPATIBILITY_DRAFT19
);
assert
(
val
==
EINVAL
);
assert
(
val
2
==
STUN_USAGE_ICE_RETURN_INVALID_REQUEST
);
assert
(
len
==
0
);
assert
(
len
==
0
);
/* Incorrect message method */
/* Incorrect message method */
assert
(
stun_agent_init_request
(
&
agent
,
&
req
,
req_buf
,
sizeof
(
req_buf
),
0x666
));
assert
(
stun_agent_init_request
(
&
agent
,
&
req
,
req_buf
,
sizeof
(
req_buf
),
0x666
));
val
=
stun_message_append_string
(
&
req
,
STUN_ATTRIBUTE_USERNAME
,
username
);
val
=
stun_message_append_string
(
&
req
,
STUN_ATTRIBUTE_USERNAME
,
username
);
assert
(
val
==
0
);
assert
(
val
==
STUN_MESSAGE_RETURN_SUCCESS
);
rlen
=
stun_agent_finish_message
(
&
agent
,
&
req
,
pass
,
strlen
(
pass
));
rlen
=
stun_agent_finish_message
(
&
agent
,
&
req
,
pass
,
strlen
(
pass
));
assert
(
rlen
>
0
);
assert
(
rlen
>
0
);
len
=
sizeof
(
resp_buf
);
len
=
sizeof
(
resp_buf
);
val
=
stun_usage_ice_conncheck_create_reply
(
&
agent
,
&
req
,
val
2
=
stun_usage_ice_conncheck_create_reply
(
&
agent
,
&
req
,
&
resp
,
resp_buf
,
&
len
,
(
struct
sockaddr
*
)
&
ip4
,
&
resp
,
resp_buf
,
&
len
,
(
struct
sockaddr
*
)
&
ip4
,
sizeof
(
ip4
),
&
control
,
tie
,
STUN_USAGE_ICE_COMPATIBILITY_DRAFT19
);
sizeof
(
ip4
),
&
control
,
tie
,
STUN_USAGE_ICE_COMPATIBILITY_DRAFT19
);
assert
(
val
==
EPROTO
);
assert
(
val
2
==
STUN_USAGE_ICE_RETURN_INVALID_METHOD
);
assert
(
len
>
0
);
assert
(
len
>
0
);
/* Unknown attribute */
/* Unknown attribute */
assert
(
stun_agent_init_request
(
&
agent
,
&
req
,
req_buf
,
sizeof
(
req_buf
),
STUN_BINDING
));
assert
(
stun_agent_init_request
(
&
agent
,
&
req
,
req_buf
,
sizeof
(
req_buf
),
STUN_BINDING
));
val
=
stun_message_append_string
(
&
req
,
0x666
,
"The evil unknown attribute!"
);
val
=
stun_message_append_string
(
&
req
,
0x666
,
"The evil unknown attribute!"
);
assert
(
val
==
0
);
assert
(
val
==
STUN_MESSAGE_RETURN_SUCCESS
);
val
=
stun_message_append_string
(
&
req
,
STUN_ATTRIBUTE_USERNAME
,
username
);
val
=
stun_message_append_string
(
&
req
,
STUN_ATTRIBUTE_USERNAME
,
username
);
assert
(
val
==
0
);
assert
(
val
==
STUN_MESSAGE_RETURN_SUCCESS
);
rlen
=
stun_agent_finish_message
(
&
agent
,
&
req
,
pass
,
strlen
(
pass
));
rlen
=
stun_agent_finish_message
(
&
agent
,
&
req
,
pass
,
strlen
(
pass
));
assert
(
rlen
>
0
);
assert
(
rlen
>
0
);
...
@@ -178,19 +168,19 @@ int main (void)
...
@@ -178,19 +168,19 @@ int main (void)
/* Good message */
/* Good message */
assert
(
stun_agent_init_request
(
&
agent
,
&
req
,
req_buf
,
sizeof
(
req_buf
),
STUN_BINDING
));
assert
(
stun_agent_init_request
(
&
agent
,
&
req
,
req_buf
,
sizeof
(
req_buf
),
STUN_BINDING
));
val
=
stun_message_append32
(
&
req
,
STUN_ATTRIBUTE_PRIORITY
,
0x12345678
);
val
=
stun_message_append32
(
&
req
,
STUN_ATTRIBUTE_PRIORITY
,
0x12345678
);
assert
(
val
==
0
);
assert
(
val
==
STUN_MESSAGE_RETURN_SUCCESS
);
val
=
stun_message_append_flag
(
&
req
,
STUN_ATTRIBUTE_USE_CANDIDATE
);
val
=
stun_message_append_flag
(
&
req
,
STUN_ATTRIBUTE_USE_CANDIDATE
);
assert
(
val
==
0
);
assert
(
val
==
STUN_MESSAGE_RETURN_SUCCESS
);
val
=
stun_message_append_string
(
&
req
,
STUN_ATTRIBUTE_USERNAME
,
ufrag
);
val
=
stun_message_append_string
(
&
req
,
STUN_ATTRIBUTE_USERNAME
,
ufrag
);
assert
(
val
==
0
);
assert
(
val
==
STUN_MESSAGE_RETURN_SUCCESS
);
rlen
=
stun_agent_finish_message
(
&
agent
,
&
req
,
pass
,
strlen
(
pass
));
rlen
=
stun_agent_finish_message
(
&
agent
,
&
req
,
pass
,
strlen
(
pass
));
assert
(
rlen
>
0
);
assert
(
rlen
>
0
);
len
=
sizeof
(
resp_buf
);
len
=
sizeof
(
resp_buf
);
val
=
stun_usage_ice_conncheck_create_reply
(
&
agent
,
&
req
,
val
2
=
stun_usage_ice_conncheck_create_reply
(
&
agent
,
&
req
,
&
resp
,
resp_buf
,
&
len
,
(
struct
sockaddr
*
)
&
ip4
,
&
resp
,
resp_buf
,
&
len
,
(
struct
sockaddr
*
)
&
ip4
,
sizeof
(
ip4
),
&
control
,
tie
,
STUN_USAGE_ICE_COMPATIBILITY_DRAFT19
);
sizeof
(
ip4
),
&
control
,
tie
,
STUN_USAGE_ICE_COMPATIBILITY_DRAFT19
);
assert
(
val
==
0
);
assert
(
val
==
STUN_USAGE_ICE_RETURN_SUCCESS
);
assert
(
len
>
0
);
assert
(
len
>
0
);
assert
(
stun_agent_validate
(
&
agent
,
&
resp
,
resp_buf
,
len
,
assert
(
stun_agent_validate
(
&
agent
,
&
resp
,
resp_buf
,
len
,
stun_agent_default_validater
,
validater_data
)
==
STUN_VALIDATION_SUCCESS
);
stun_agent_default_validater
,
validater_data
)
==
STUN_VALIDATION_SUCCESS
);
...
@@ -201,16 +191,16 @@ int main (void)
...
@@ -201,16 +191,16 @@ int main (void)
/* Invalid socket address */
/* Invalid socket address */
assert
(
stun_agent_init_request
(
&
agent
,
&
req
,
req_buf
,
sizeof
(
req_buf
),
STUN_BINDING
));
assert
(
stun_agent_init_request
(
&
agent
,
&
req
,
req_buf
,
sizeof
(
req_buf
),
STUN_BINDING
));
val
=
stun_message_append_string
(
&
req
,
STUN_ATTRIBUTE_USERNAME
,
ufrag
);
val
=
stun_message_append_string
(
&
req
,
STUN_ATTRIBUTE_USERNAME
,
ufrag
);
assert
(
val
==
0
);
assert
(
val
==
STUN_MESSAGE_RETURN_SUCCESS
);
rlen
=
stun_agent_finish_message
(
&
agent
,
&
req
,
pass
,
strlen
(
pass
));
rlen
=
stun_agent_finish_message
(
&
agent
,
&
req
,
pass
,
strlen
(
pass
));
assert
(
rlen
>
0
);
assert
(
rlen
>
0
);
ip4
.
sin_family
=
AF_UNSPEC
;
ip4
.
sin_family
=
AF_UNSPEC
;
len
=
sizeof
(
resp_buf
);
len
=
sizeof
(
resp_buf
);
val
=
stun_usage_ice_conncheck_create_reply
(
&
agent
,
&
req
,
val
2
=
stun_usage_ice_conncheck_create_reply
(
&
agent
,
&
req
,
&
resp
,
resp_buf
,
&
len
,
(
struct
sockaddr
*
)
&
ip4
,
&
resp
,
resp_buf
,
&
len
,
(
struct
sockaddr
*
)
&
ip4
,
sizeof
(
ip4
),
&
control
,
tie
,
STUN_USAGE_ICE_COMPATIBILITY_DRAFT19
);
sizeof
(
ip4
),
&
control
,
tie
,
STUN_USAGE_ICE_COMPATIBILITY_DRAFT19
);
assert
(
val
==
EAFNOSUPPORT
);
assert
(
val
2
==
STUN_USAGE_ICE_RETURN_INVALID_ADDRESS
);
assert
(
len
==
0
);
assert
(
len
==
0
);
ip4
.
sin_family
=
AF_INET
;
ip4
.
sin_family
=
AF_INET
;
...
@@ -218,19 +208,19 @@ int main (void)
...
@@ -218,19 +208,19 @@ int main (void)
/* Lost role conflict */
/* Lost role conflict */
assert
(
stun_agent_init_request
(
&
agent
,
&
req
,
req_buf
,
sizeof
(
req_buf
),
STUN_BINDING
));
assert
(
stun_agent_init_request
(
&
agent
,
&
req
,
req_buf
,
sizeof
(
req_buf
),
STUN_BINDING
));
val
=
stun_message_append64
(
&
req
,
STUN_ATTRIBUTE_ICE_CONTROLLING
,
tie
+
1
);
val
=
stun_message_append64
(
&
req
,
STUN_ATTRIBUTE_ICE_CONTROLLING
,
tie
+
1
);
assert
(
val
==
0
);
assert
(
val
==
STUN_MESSAGE_RETURN_SUCCESS
);
val
=
stun_message_append_string
(
&
req
,
STUN_ATTRIBUTE_USERNAME
,
ufrag
);
val
=
stun_message_append_string
(
&
req
,
STUN_ATTRIBUTE_USERNAME
,
ufrag
);
assert
(
val
==
0
);
assert
(
val
==
STUN_MESSAGE_RETURN_SUCCESS
);
rlen
=
stun_agent_finish_message
(
&
agent
,
&
req
,
pass
,
strlen
(
pass
));
rlen
=
stun_agent_finish_message
(
&
agent
,
&
req
,
pass
,
strlen
(
pass
));
assert
(
rlen
>
0
);
assert
(
rlen
>
0
);
len
=
sizeof
(
resp_buf
);
len
=
sizeof
(
resp_buf
);
control
=
true
;
control
=
true
;
val
=
stun_usage_ice_conncheck_create_reply
(
&
agent
,
&
req
,
val
2
=
stun_usage_ice_conncheck_create_reply
(
&
agent
,
&
req
,
&
resp
,
resp_buf
,
&
len
,
(
struct
sockaddr
*
)
&
ip4
,
&
resp
,
resp_buf
,
&
len
,
(
struct
sockaddr
*
)
&
ip4
,
sizeof
(
ip4
),
&
control
,
tie
,
STUN_USAGE_ICE_COMPATIBILITY_DRAFT19
);
sizeof
(
ip4
),
&
control
,
tie
,
STUN_USAGE_ICE_COMPATIBILITY_DRAFT19
);
assert
(
val
==
EACCES
);
assert
(
val
2
==
STUN_USAGE_ICE_RETURN_ROLE_CONFLICT
);
assert
(
len
>
0
);
assert
(
len
>
0
);
assert
(
control
==
false
);
assert
(
control
==
false
);
assert
(
stun_agent_validate
(
&
agent
,
&
resp
,
resp_buf
,
len
,
assert
(
stun_agent_validate
(
&
agent
,
&
resp
,
resp_buf
,
len
,
...
@@ -240,18 +230,18 @@ int main (void)
...
@@ -240,18 +230,18 @@ int main (void)
/* Won role conflict */
/* Won role conflict */
assert
(
stun_agent_init_request
(
&
agent
,
&
req
,
req_buf
,
sizeof
(
req_buf
),
STUN_BINDING
));
assert
(
stun_agent_init_request
(
&
agent
,
&
req
,
req_buf
,
sizeof
(
req_buf
),
STUN_BINDING
));
val
=
stun_message_append64
(
&
req
,
STUN_ATTRIBUTE_ICE_CONTROLLED
,
tie
-
1
);
val
=
stun_message_append64
(
&
req
,
STUN_ATTRIBUTE_ICE_CONTROLLED
,
tie
-
1
);
assert
(
val
==
0
);
assert
(
val
==
STUN_MESSAGE_RETURN_SUCCESS
);
val
=
stun_message_append_string
(
&
req
,
STUN_ATTRIBUTE_USERNAME
,
ufrag
);
val
=
stun_message_append_string
(
&
req
,
STUN_ATTRIBUTE_USERNAME
,
ufrag
);
assert
(
val
==
0
);
assert
(
val
==
STUN_MESSAGE_RETURN_SUCCESS
);
rlen
=
stun_agent_finish_message
(
&
agent
,
&
req
,
pass
,
strlen
(
pass
));
rlen
=
stun_agent_finish_message
(
&
agent
,
&
req
,
pass
,
strlen
(
pass
));
assert
(
rlen
>
0
);
assert
(
rlen
>
0
);
len
=
sizeof
(
resp_buf
);
len
=
sizeof
(
resp_buf
);
control
=
false
;
control
=
false
;
val
=
stun_usage_ice_conncheck_create_reply
(
&
agent
,
&
req
,
val
2
=
stun_usage_ice_conncheck_create_reply
(
&
agent
,
&
req
,
&
resp
,
resp_buf
,
&
len
,
(
struct
sockaddr
*
)
&
ip4
,
&
resp
,
resp_buf
,
&
len
,
(
struct
sockaddr
*
)
&
ip4
,
sizeof
(
ip4
),
&
control
,
tie
,
STUN_USAGE_ICE_COMPATIBILITY_DRAFT19
);
sizeof
(
ip4
),
&
control
,
tie
,
STUN_USAGE_ICE_COMPATIBILITY_DRAFT19
);
assert
(
val
==
0
);
assert
(
val
2
==
STUN_USAGE_ICE_RETURN_SUCCESS
);
assert
(
len
>
0
);
assert
(
len
>
0
);
assert
(
control
==
false
);
assert
(
control
==
false
);
assert
(
stun_agent_validate
(
&
agent
,
&
resp
,
resp_buf
,
len
,
assert
(
stun_agent_validate
(
&
agent
,
&
resp
,
resp_buf
,
len
,
...
...
stun/tests/test-format.c
View file @
03dce9b3
...
@@ -48,20 +48,10 @@
...
@@ -48,20 +48,10 @@
#ifdef _WIN32
#ifdef _WIN32
#include <winsock2.h>
#include <winsock2.h>
#define ENOENT -1
#define EINVAL -2
#define ENOBUFS -3
#define EAFNOSUPPORT -4
#define EPROTO -5
#define EACCES -6
#define EINPROGRESS -7
#define EAGAIN -8
#define ENOSYS -9
#else
#else
#include <sys/types.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <sys/socket.h>
#include <arpa/inet.h>
#include <arpa/inet.h>
#include <errno.h>
#endif
#endif
...
@@ -155,27 +145,29 @@ check_af (const char *name, int family, socklen_t addrlen)
...
@@ -155,27 +145,29 @@ check_af (const char *name, int family, socklen_t addrlen)
stun_agent_init_request
(
&
agent
,
&
msg
,
buf
,
sizeof
(
buf
),
STUN_BINDING
);
stun_agent_init_request
(
&
agent
,
&
msg
,
buf
,
sizeof
(
buf
),
STUN_BINDING
);
if
(
stun_message_append_addr
(
&
msg
,
STUN_ATTRIBUTE_MAPPED_ADDRESS
,
if
(
stun_message_append_addr
(
&
msg
,
STUN_ATTRIBUTE_MAPPED_ADDRESS
,
(
struct
sockaddr
*
)
&
addr
,
addrlen
)
!=
EAFNOSUPPORT
)
(
struct
sockaddr
*
)
&
addr
,
addrlen
)
!=
STUN_MESSAGE_RETURN_UNSUPPORTED_ADDRESS
)
fatal
(
"Unknown address family test failed"
);
fatal
(
"Unknown address family test failed"
);
if
(
stun_message_append_xor_addr
(
&
msg
,
STUN_ATTRIBUTE_XOR_MAPPED_ADDRESS
,
if
(
stun_message_append_xor_addr
(
&
msg
,
STUN_ATTRIBUTE_XOR_MAPPED_ADDRESS
,
(
struct
sockaddr
*
)
&
addr
,
addrlen
)
!=
EAFNOSUPPORT
)
(
struct
sockaddr
*
)
&
addr
,
addrlen
)
!=
STUN_MESSAGE_RETURN_UNSUPPORTED_ADDRESS
)
fatal
(
"Unknown address family xor test failed"
);
fatal
(
"Unknown address family xor test failed"
);
addr
.
ss_family
=
family
;
addr
.
ss_family
=
family
;
if
(
stun_message_append_addr
(
&
msg
,
STUN_ATTRIBUTE_MAPPED_ADDRESS
,
if
(
stun_message_append_addr
(
&
msg
,
STUN_ATTRIBUTE_MAPPED_ADDRESS
,
(
struct
sockaddr
*
)
&
addr
,
addrlen
-
1
)
!=
EINVAL
)
(
struct
sockaddr
*
)
&
addr
,
addrlen
-
1
)
!=
STUN_MESSAGE_RETURN_INVALID
)
fatal
(
"Too small %s sockaddr test failed"
,
name
);
fatal
(
"Too small %s sockaddr test failed"
,
name
);
if
(
stun_message_append_xor_addr
(
&
msg
,
STUN_ATTRIBUTE_XOR_MAPPED_ADDRESS
,
if
(
stun_message_append_xor_addr
(
&
msg
,
STUN_ATTRIBUTE_XOR_MAPPED_ADDRESS
,
(
struct
sockaddr
*
)
&
addr
,
addrlen
-
1
)
!=
EINVAL
)
(
struct
sockaddr
*
)
&
addr
,
addrlen
-
1
)
!=
STUN_MESSAGE_RETURN_INVALID
)
fatal
(
"Too small %s sockaddr xor test failed"
,
name
);
fatal
(
"Too small %s sockaddr xor test failed"
,
name
);
if
(
stun_message_append_addr
(
&
msg
,
STUN_ATTRIBUTE_MAPPED_ADDRESS
,
if
(
stun_message_append_addr
(
&
msg
,
STUN_ATTRIBUTE_MAPPED_ADDRESS
,
(
struct
sockaddr
*
)
&
addr
,
addrlen
)
)
(
struct
sockaddr
*
)
&
addr
,
addrlen
)
!=
STUN_MESSAGE_RETURN_SUCCESS
)
fatal
(
"%s sockaddr test failed"
,
name
);
fatal
(
"%s sockaddr test failed"
,
name
);
if
(
stun_message_append_xor_addr
(
&
msg
,
STUN_ATTRIBUTE_XOR_MAPPED_ADDRESS
,
if
(
stun_message_append_xor_addr
(
&
msg
,
STUN_ATTRIBUTE_XOR_MAPPED_ADDRESS
,
(
struct
sockaddr
*
)
&
addr
,
addrlen
)
)
(
struct
sockaddr
*
)
&
addr
,
addrlen
)
!=
STUN_MESSAGE_RETURN_SUCCESS
)
fatal
(
"%s sockaddr xor test failed"
,
name
);
fatal
(
"%s sockaddr xor test failed"
,
name
);
}
}
...
@@ -187,7 +179,10 @@ int main (void)
...
@@ -187,7 +179,10 @@ int main (void)
StunAgent
agent
;
StunAgent
agent
;
StunMessage
msg
;
StunMessage
msg
;
uint16_t
known_attributes
[]
=
{
STUN_ATTRIBUTE_USERNAME
,
STUN_ATTRIBUTE_MESSAGE_INTEGRITY
,
STUN_ATTRIBUTE_ERROR_CODE
,
0
};
uint16_t
known_attributes
[]
=
{
STUN_ATTRIBUTE_USERNAME
,
STUN_ATTRIBUTE_MESSAGE_INTEGRITY
,
STUN_ATTRIBUTE_ERROR_CODE
,
0
};
stun_agent_init
(
&
agent
,
known_attributes
,
stun_agent_init
(
&
agent
,
known_attributes
,
STUN_COMPATIBILITY_RFC5389
,
STUN_AGENT_USAGE_USE_FINGERPRINT
);
STUN_COMPATIBILITY_RFC5389
,
STUN_AGENT_USAGE_USE_FINGERPRINT
);
...
@@ -225,19 +220,22 @@ int main (void)
...
@@ -225,19 +220,22 @@ int main (void)
stun_agent_init_request
(
&
agent
,
&
msg
,
buf
,
sizeof
(
buf
),
STUN_BINDING
);
stun_agent_init_request
(
&
agent
,
&
msg
,
buf
,
sizeof
(
buf
),
STUN_BINDING
);
for
(
len
=
0
;
for
(
len
=
0
;
stun_message_append_flag
(
&
msg
,
0xffff
)
!=
ENOBUFS
;
stun_message_append_flag
(
&
msg
,
0xffff
)
!=
STUN_MESSAGE_RETURN_NOT_ENOUGH_SPACE
;
len
+=
4
)
len
+=
4
)
{
{
if
(
len
>
0xffff
)
if
(
len
>
0xffff
)
fatal
(
"Overflow protection test failed"
);
fatal
(
"Overflow protection test failed"
);
}
}
if
(
stun_message_append32
(
&
msg
,
0xffff
,
0x12345678
)
!=
ENOBUFS
)
if
(
stun_message_append32
(
&
msg
,
0xffff
,
0x12345678
)
!=
STUN_MESSAGE_RETURN_NOT_ENOUGH_SPACE
)
fatal
(
"Double-word overflow test failed"
);
fatal
(
"Double-word overflow test failed"
);
if
(
stun_message_append64
(
&
msg
,
0xffff
,
if
(
stun_message_append64
(
&
msg
,
0xffff
,
0x123456789abcdef0
)
!=
ENOBUFS
)
0x123456789abcdef0
)
!=
STUN_MESSAGE_RETURN_NOT_ENOUGH_SPACE
)
fatal
(
"Quad-word overflow test failed"
);
fatal
(
"Quad-word overflow test failed"
);
if
(
stun_message_append_string
(
&
msg
,
0xffff
,
"foobar"
)
!=
ENOBUFS
)
if
(
stun_message_append_string
(
&
msg
,
0xffff
,
"foobar"
)
!=
STUN_MESSAGE_RETURN_NOT_ENOUGH_SPACE
)
fatal
(
"String overflow test failed"
);
fatal
(
"String overflow test failed"
);
memset
(
&
addr
,
0
,
sizeof
(
addr
));
memset
(
&
addr
,
0
,
sizeof
(
addr
));
...
@@ -246,7 +244,7 @@ int main (void)
...
@@ -246,7 +244,7 @@ int main (void)
addr
.
sa_len
=
sizeof
(
addr
);
addr
.
sa_len
=
sizeof
(
addr
);
#endif
#endif
if
(
stun_message_append_xor_addr
(
&
msg
,
0xffff
,
&
addr
,
if
(
stun_message_append_xor_addr
(
&
msg
,
0xffff
,
&
addr
,
sizeof
(
addr
))
!=
ENOBUFS
)
sizeof
(
addr
))
!=
STUN_MESSAGE_RETURN_NOT_ENOUGH_SPACE
)
fatal
(
"Address overflow test failed"
);
fatal
(
"Address overflow test failed"
);
len
=
sizeof
(
msg
);
len
=
sizeof
(
msg
);
if
(
stun_agent_finish_message
(
&
agent
,
&
msg
,
NULL
,
0
)
!=
0
)
if
(
stun_agent_finish_message
(
&
agent
,
&
msg
,
NULL
,
0
)
!=
0
)
...
...
stun/tests/test-parse.c
View file @
03dce9b3
...
@@ -45,20 +45,10 @@
...
@@ -45,20 +45,10 @@
#ifdef _WIN32
#ifdef _WIN32
#include <winsock2.h>
#include <winsock2.h>
#define ENOENT -1
#define EINVAL -2
#define ENOBUFS -3
#define EAFNOSUPPORT -4
#define EPROTO -5
#define EACCES -6
#define EINPROGRESS -7
#define EAGAIN -8
#define ENOSYS -9
#else
#else
#include <sys/types.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <sys/socket.h>
#include <arpa/inet.h>
#include <arpa/inet.h>
#include <errno.h>
#endif
#endif
...
@@ -251,7 +241,8 @@ static void test_message (void)
...
@@ -251,7 +241,8 @@ static void test_message (void)
fatal
(
"Binding Error Response failed"
);
fatal
(
"Binding Error Response failed"
);
if
(
stun_message_validate_buffer_length
(
NULL
,
0
)
!=
STUN_MESSAGE_BUFFER_INVALID
)
if
(
stun_message_validate_buffer_length
(
NULL
,
0
)
!=
STUN_MESSAGE_BUFFER_INVALID
)
fatal
(
"0 bytes test failed"
);
fatal
(
"0 bytes test failed"
);
if
(
stun_message_validate_buffer_length
((
uint8_t
*
)
"
\xf0
"
,
1
)
>=
0
)
if
(
stun_message_validate_buffer_length
((
uint8_t
*
)
"
\xf0
"
,
1
)
>=
0
)
fatal
(
"1 byte test failed"
);
fatal
(
"1 byte test failed"
);
...
@@ -396,51 +387,61 @@ static void test_attribute (void)
...
@@ -396,51 +387,61 @@ static void test_attribute (void)
if
(
!
stun_message_has_attribute
(
&
msg
,
0xff01
))
if
(
!
stun_message_has_attribute
(
&
msg
,
0xff01
))
fatal
(
"Present attribute test failed"
);
fatal
(
"Present attribute test failed"
);
if
(
stun_message_find_flag
(
&
msg
,
0xff00
)
!=
ENOENT
)
if
(
stun_message_find_flag
(
&
msg
,
0xff00
)
!=
STUN_MESSAGE_RETURN_NOT_FOUND
)
fatal
(
"Absent flag test failed"
);
fatal
(
"Absent flag test failed"
);
if
(
stun_message_find_flag
(
&
msg
,
0xff01
)
!=
0
)
if
(
stun_message_find_flag
(
&
msg
,
0xff01
)
!=
STUN_MESSAGE_RETURN_SUCCESS
)
fatal
(
"Flag test failed"
);
fatal
(
"Flag test failed"
);
if
(
stun_message_find_flag
(
&
msg
,
0xff02
)
!=
EINVAL
)
if
(
stun_message_find_flag
(
&
msg
,
0xff02
)
!=
STUN_MESSAGE_RETURN_INVALID
)
fatal
(
"Too big flag test failed"
);
fatal
(
"Too big flag test failed"
);
if
(
stun_message_find32
(
&
msg
,
0xff00
,
&
dword
)
!=
ENOENT
)
if
(
stun_message_find32
(
&
msg
,
0xff00
,
&
dword
)
!=
STUN_MESSAGE_RETURN_NOT_FOUND
)
fatal
(
"Absent dword test failed"
);
fatal
(
"Absent dword test failed"
);
if
(
stun_message_find32
(
&
msg
,
0xff01
,
&
dword
)
!=
EINVAL
)
if
(
stun_message_find32
(
&
msg
,
0xff01
,
&
dword
)
!=
STUN_MESSAGE_RETURN_INVALID
)
fatal
(
"Bad dword test failed"
);
fatal
(
"Bad dword test failed"
);
if
(
stun_message_find32
(
&
msg
,
0xff02
,
&
dword
)
!=
0
)
if
(
stun_message_find32
(
&
msg
,
0xff02
,
&
dword
)
!=
STUN_MESSAGE_RETURN_SUCCESS
)
fatal
(
"Double-word test failed"
);
fatal
(
"Double-word test failed"
);
if
(
stun_message_find64
(
&
msg
,
0xff00
,
&
qword
)
!=
ENOENT
)
if
(
stun_message_find64
(
&
msg
,
0xff00
,
&
qword
)
!=
STUN_MESSAGE_RETURN_NOT_FOUND
)
fatal
(
"Absent qword test failed"
);
fatal
(
"Absent qword test failed"
);
if
(
stun_message_find64
(
&
msg
,
0xff01
,
&
qword
)
!=
EINVAL
)
if
(
stun_message_find64
(
&
msg
,
0xff01
,
&
qword
)
!=
STUN_MESSAGE_RETURN_INVALID
)
fatal
(
"Bad qword test failed"
);
fatal
(
"Bad qword test failed"
);
if
(
stun_message_find64
(
&
msg
,
0xff04
,
&
qword
)
!=
0
)
if
(
stun_message_find64
(
&
msg
,
0xff04
,
&
qword
)
!=
STUN_MESSAGE_RETURN_SUCCESS
)
fatal
(
"Quad-word test failed"
);
fatal
(
"Quad-word test failed"
);
if
(
stun_message_find_string
(
&
msg
,
0xff00
,
str
,
STUN_MAX_CP
)
!=
ENOENT
)
if
(
stun_message_find_string
(
&
msg
,
0xff00
,
str
,
STUN_MAX_CP
)
!=
STUN_MESSAGE_RETURN_NOT_FOUND
)
fatal
(
"Absent string test failed"
);
fatal
(
"Absent string test failed"
);
if
((
stun_message_find_string
(
&
msg
,
0xff02
,
str
,
STUN_MAX_CP
)
!=
0
)
if
((
stun_message_find_string
(
&
msg
,
0xff02
,
str
,
STUN_MAX_CP
)
!=
STUN_MESSAGE_RETURN_SUCCESS
)
||
strcmp
(
str
,
"ABCD"
))
||
strcmp
(
str
,
"ABCD"
))
fatal
(
"String test failed"
);
fatal
(
"String test failed"
);
addrlen
=
sizeof
(
addr
);
addrlen
=
sizeof
(
addr
);
if
(
stun_message_find_addr
(
&
msg
,
0xff01
,
&
addr
.
sa
,
&
addrlen
)
!=
EINVAL
)
if
(
stun_message_find_addr
(
&
msg
,
0xff01
,
&
addr
.
sa
,
&
addrlen
)
!=
STUN_MESSAGE_RETURN_INVALID
)
fatal
(
"Too short addres test failed"
);
fatal
(
"Too short addres test failed"
);
addrlen
=
sizeof
(
addr
);
addrlen
=
sizeof
(
addr
);
if
(
stun_message_find_addr
(
&
msg
,
0xff02
,
&
addr
.
sa
,
&
addrlen
)
!=
EAFNOSUPPORT
)
if
(
stun_message_find_addr
(
&
msg
,
0xff02
,
&
addr
.
sa
,
&
addrlen
)
!=
STUN_MESSAGE_RETURN_UNSUPPORTED_ADDRESS
)
fatal
(
"Unknown address family test failed"
);
fatal
(
"Unknown address family test failed"
);
addrlen
=
sizeof
(
addr
);
addrlen
=
sizeof
(
addr
);
if
(
stun_message_find_addr
(
&
msg
,
0xff03
,
&
addr
.
sa
,
&
addrlen
)
!=
EINVAL
)
if
(
stun_message_find_addr
(
&
msg
,
0xff03
,
&
addr
.
sa
,
&
addrlen
)
!=
STUN_MESSAGE_RETURN_INVALID
)
fatal
(
"Too short IPv6 address test failed"
);
fatal
(
"Too short IPv6 address test failed"
);
addrlen
=
sizeof
(
addr
);
addrlen
=
sizeof
(
addr
);
if
(
stun_message_find_addr
(
&
msg
,
0xff04
,
&
addr
.
sa
,
&
addrlen
)
!=
0
)
if
(
stun_message_find_addr
(
&
msg
,
0xff04
,
&
addr
.
sa
,
&
addrlen
)
!=
STUN_MESSAGE_RETURN_SUCCESS
)
fatal
(
"IPv4 address test failed"
);
fatal
(
"IPv4 address test failed"
);
addrlen
=
sizeof
(
addr
);
addrlen
=
sizeof
(
addr
);
if
(
stun_message_find_addr
(
&
msg
,
0xff05
,
&
addr
.
sa
,
&
addrlen
)
!=
EINVAL
)
if
(
stun_message_find_addr
(
&
msg
,
0xff05
,
&
addr
.
sa
,
&
addrlen
)
!=
STUN_MESSAGE_RETURN_INVALID
)
fatal
(
"Too big IPv4 address test failed"
);
fatal
(
"Too big IPv4 address test failed"
);
addrlen
=
sizeof
(
addr
);
addrlen
=
sizeof
(
addr
);
if
(
stun_message_find_xor_addr
(
&
msg
,
0xff06
,
&
addr
.
sa
,
&
addrlen
)
if
(
stun_message_find_xor_addr
(
&
msg
,
0xff06
,
&
addr
.
sa
,
&
addrlen
)
!=
||
memcmp
(
&
addr
.
s6
.
sin6_addr
,
"
\x20\x01\x0d\xb8
""
\xde\xad\xbe\xef
"
STUN_MESSAGE_RETURN_SUCCESS
||
memcmp
(
&
addr
.
s6
.
sin6_addr
,
"
\x20\x01\x0d\xb8
""
\xde\xad\xbe\xef
"
"
\xde\xfa\xce\xd0
""
\xfa\xce\xde\xed
"
,
16
))
"
\xde\xfa\xce\xd0
""
\xfa\xce\xde\xed
"
,
16
))
fatal
(
"IPv6 address test failed"
);
fatal
(
"IPv6 address test failed"
);
...
@@ -647,7 +648,7 @@ static void test_vectors (void)
...
@@ -647,7 +648,7 @@ static void test_vectors (void)
addrlen
=
sizeof
(
ip4
);
addrlen
=
sizeof
(
ip4
);
if
(
stun_message_find_xor_addr
(
&
msg
,
STUN_ATTRIBUTE_XOR_MAPPED_ADDRESS
,
if
(
stun_message_find_xor_addr
(
&
msg
,
STUN_ATTRIBUTE_XOR_MAPPED_ADDRESS
,
(
struct
sockaddr
*
)
&
ip4
,
&
addrlen
)
!=
0
)
(
struct
sockaddr
*
)
&
ip4
,
&
addrlen
)
!=
STUN_MESSAGE_RETURN_SUCCESS
)
fatal
(
"Response test vector IPv4 extraction failed"
);
fatal
(
"Response test vector IPv4 extraction failed"
);
if
(
ip4
.
sin_family
!=
AF_INET
)
if
(
ip4
.
sin_family
!=
AF_INET
)
fatal
(
"Response test vector IPv4 family failed"
);
fatal
(
"Response test vector IPv4 family failed"
);
...
@@ -680,7 +681,7 @@ static void test_vectors (void)
...
@@ -680,7 +681,7 @@ static void test_vectors (void)
addrlen
=
sizeof
(
ip6
);
addrlen
=
sizeof
(
ip6
);
if
(
stun_message_find_xor_addr
(
&
msg
,
STUN_ATTRIBUTE_XOR_MAPPED_ADDRESS
,
if
(
stun_message_find_xor_addr
(
&
msg
,
STUN_ATTRIBUTE_XOR_MAPPED_ADDRESS
,
(
struct
sockaddr
*
)
&
ip6
,
&
addrlen
)
!=
0
)
(
struct
sockaddr
*
)
&
ip6
,
&
addrlen
)
!=
STUN_MESSAGE_RETURN_SUCCESS
)
fatal
(
"Response test vector IPv6 extraction failed"
);
fatal
(
"Response test vector IPv6 extraction failed"
);
if
(
ip6
.
sin6_family
!=
AF_INET6
)
if
(
ip6
.
sin6_family
!=
AF_INET6
)
fatal
(
"Response test vector IPv6 family failed"
);
fatal
(
"Response test vector IPv6 family failed"
);
...
...
stun/tests/test-turn.c
View file @
03dce9b3
...
@@ -49,15 +49,6 @@
...
@@ -49,15 +49,6 @@
#ifdef _WIN32
#ifdef _WIN32
#include <winsock2.h>
#include <winsock2.h>
#include <ws2tcpip.h>
#include <ws2tcpip.h>
#define ENOENT -1
#define EINVAL -2
#define ENOBUFS -3
#define EAFNOSUPPORT -4
#define EPROTO -5
#define EACCES -6
#define EINPROGRESS -7
#define EAGAIN -8
#define ENOSYS -9
#define MSG_DONTWAIT 0
#define MSG_DONTWAIT 0
#define MSG_NOSIGNAL 0
#define MSG_NOSIGNAL 0
...
...
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