Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
ruanhaishen
hiredis
Commits
fbdcfae4
Commit
fbdcfae4
authored
Jan 05, 2012
by
Pieter Noordhuis
Browse files
More redis_address helpers
parent
58737d9f
Changes
2
Hide whitespace changes
Inline
Side-by-side
address.c
View file @
fbdcfae4
...
...
@@ -3,15 +3,9 @@
#include <arpa/inet.h>
#include "address.h"
redis_address
redis_address_in
(
const
char
*
ip
,
int
port
)
{
struct
sockaddr_in
sa
;
redis_address
redis_address_from_in
(
struct
sockaddr_in
sa
)
{
redis_address
addr
;
memset
(
&
sa
,
0
,
sizeof
(
sa
));
sa
.
sin_family
=
AF_INET
;
sa
.
sin_port
=
htons
(
port
);
assert
(
inet_pton
(
AF_INET
,
ip
,
&
sa
.
sin_addr
)
==
1
);
memset
(
&
addr
,
0
,
sizeof
(
addr
));
addr
.
sa_family
=
sa
.
sin_family
;
addr
.
sa_addrlen
=
sizeof
(
sa
);
...
...
@@ -19,15 +13,9 @@ redis_address redis_address_in(const char *ip, int port) {
return
addr
;
}
redis_address
redis_address_in6
(
const
char
*
ip
,
int
port
)
{
struct
sockaddr_in6
sa
;
redis_address
redis_address_from_in6
(
struct
sockaddr_in6
sa
)
{
redis_address
addr
;
memset
(
&
sa
,
0
,
sizeof
(
sa
));
sa
.
sin6_family
=
AF_INET6
;
sa
.
sin6_port
=
htons
(
port
);
assert
(
inet_pton
(
AF_INET6
,
ip
,
&
sa
.
sin6_addr
)
==
1
);
memset
(
&
addr
,
0
,
sizeof
(
addr
));
addr
.
sa_family
=
sa
.
sin6_family
;
addr
.
sa_addrlen
=
sizeof
(
sa
);
...
...
@@ -35,18 +23,42 @@ redis_address redis_address_in6(const char *ip, int port) {
return
addr
;
}
redis_address
redis_address_un
(
const
char
*
path
)
{
struct
sockaddr_un
sa
;
redis_address
redis_address_from_un
(
struct
sockaddr_un
sa
)
{
redis_address
addr
;
memset
(
&
sa
,
0
,
sizeof
(
sa
));
sa
.
sun_family
=
AF_LOCAL
;
strncpy
((
char
*
)
&
sa
.
sun_path
,
path
,
sizeof
(
sa
.
sun_path
));
sa
.
sun_path
[
sizeof
(
sa
.
sun_path
)
-
1
]
=
'\0'
;
memset
(
&
addr
,
0
,
sizeof
(
addr
));
addr
.
sa_family
=
sa
.
sun_family
;
addr
.
sa_addrlen
=
sizeof
(
sa
);
addr
.
sa_addr
.
un
=
sa
;
return
addr
;
}
redis_address
redis_address_in
(
const
char
*
ip
,
int
port
)
{
struct
sockaddr_in
sa
;
memset
(
&
sa
,
0
,
sizeof
(
sa
));
sa
.
sin_family
=
AF_INET
;
sa
.
sin_port
=
htons
(
port
);
assert
(
inet_pton
(
AF_INET
,
ip
,
&
sa
.
sin_addr
)
==
1
);
return
redis_address_from_in
(
sa
);
}
redis_address
redis_address_in6
(
const
char
*
ip
,
int
port
)
{
struct
sockaddr_in6
sa
;
memset
(
&
sa
,
0
,
sizeof
(
sa
));
sa
.
sin6_family
=
AF_INET6
;
sa
.
sin6_port
=
htons
(
port
);
assert
(
inet_pton
(
AF_INET6
,
ip
,
&
sa
.
sin6_addr
)
==
1
);
return
redis_address_from_in6
(
sa
);
}
redis_address
redis_address_un
(
const
char
*
path
)
{
struct
sockaddr_un
sa
;
memset
(
&
sa
,
0
,
sizeof
(
sa
));
sa
.
sun_family
=
AF_LOCAL
;
strncpy
((
char
*
)
&
sa
.
sun_path
,
path
,
sizeof
(
sa
.
sun_path
));
sa
.
sun_path
[
sizeof
(
sa
.
sun_path
)
-
1
]
=
'\0'
;
return
redis_address_from_un
(
sa
);
}
address.h
View file @
fbdcfae4
...
...
@@ -18,6 +18,9 @@ struct redis_address_s {
}
sa_addr
;
};
redis_address
redis_address_from_in
(
struct
sockaddr_in
sa
);
redis_address
redis_address_from_in6
(
struct
sockaddr_in6
sa
);
redis_address
redis_address_from_un
(
struct
sockaddr_un
sa
);
redis_address
redis_address_in
(
const
char
*
ip
,
int
port
);
redis_address
redis_address_in6
(
const
char
*
ip
,
int
port
);
redis_address
redis_address_un
(
const
char
*
path
);
...
...
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