Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
ruanhaishen
hiredis
Commits
cc3ee453
Commit
cc3ee453
authored
Jul 11, 2013
by
Pieter Noordhuis
Browse files
Merge branch 'ipv6'
parents
fbf1bb64
06919b3f
Changes
2
Hide whitespace changes
Inline
Side-by-side
examples/example.c
View file @
cc3ee453
...
...
@@ -4,13 +4,15 @@
#include <hiredis.h>
int
main
(
void
)
{
int
main
(
int
argc
,
char
**
argv
)
{
unsigned
int
j
;
redisContext
*
c
;
redisReply
*
reply
;
const
char
*
hostname
=
(
argc
>
1
)
?
argv
[
1
]
:
"127.0.0.1"
;
int
port
=
(
argc
>
2
)
?
atoi
(
argv
[
2
])
:
6379
;
struct
timeval
timeout
=
{
1
,
500000
};
// 1.5 seconds
c
=
redisConnectWithTimeout
(
(
char
*
)
"127.0.0.1"
,
6379
,
timeout
);
c
=
redisConnectWithTimeout
(
hostname
,
port
,
timeout
);
if
(
c
==
NULL
||
c
->
err
)
{
if
(
c
)
{
printf
(
"Connection error: %s
\n
"
,
c
->
errstr
);
...
...
net.c
View file @
cc3ee453
...
...
@@ -255,9 +255,17 @@ int redisContextConnectTcp(redisContext *c, const char *addr, int port, const st
hints
.
ai_family
=
AF_INET
;
hints
.
ai_socktype
=
SOCK_STREAM
;
/* Try with IPv6 if no IPv4 address was found. We do it in this order since
* in a Redis client you can't afford to test if you have IPv6 connectivity
* as this would add latency to every connect. Otherwise a more sensible
* route could be: Use IPv6 if both addresses are available and there is IPv6
* connectivity. */
if
((
rv
=
getaddrinfo
(
addr
,
_port
,
&
hints
,
&
servinfo
))
!=
0
)
{
__redisSetError
(
c
,
REDIS_ERR_OTHER
,
gai_strerror
(
rv
));
return
REDIS_ERR
;
hints
.
ai_family
=
AF_INET6
;
if
((
rv
=
getaddrinfo
(
addr
,
_port
,
&
hints
,
&
servinfo
))
!=
0
)
{
__redisSetError
(
c
,
REDIS_ERR_OTHER
,
gai_strerror
(
rv
));
return
REDIS_ERR
;
}
}
for
(
p
=
servinfo
;
p
!=
NULL
;
p
=
p
->
ai_next
)
{
if
((
s
=
socket
(
p
->
ai_family
,
p
->
ai_socktype
,
p
->
ai_protocol
))
==
-
1
)
...
...
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