Merge "Switch from using sockaddr to sockaddr_storage."

This commit is contained in:
Erik Kline 2015-12-08 01:41:38 +00:00 committed by Gerrit Code Review
commit 46b0b1c694
7 changed files with 39 additions and 32 deletions

View file

@ -228,13 +228,13 @@ void adb_auth_confirm_key(unsigned char *key, size_t len, atransport *t)
static void adb_auth_listener(int fd, unsigned events, void *data) static void adb_auth_listener(int fd, unsigned events, void *data)
{ {
struct sockaddr addr; sockaddr_storage addr;
socklen_t alen; socklen_t alen;
int s; int s;
alen = sizeof(addr); alen = sizeof(addr);
s = adb_socket_accept(fd, &addr, &alen); s = adb_socket_accept(fd, reinterpret_cast<sockaddr*>(&addr), &alen);
if (s < 0) { if (s < 0) {
D("Failed to accept: errno=%d", errno); D("Failed to accept: errno=%d", errno);
return; return;

View file

@ -34,9 +34,10 @@ static alistener listener_list = {
static void ss_listener_event_func(int _fd, unsigned ev, void *_l) { static void ss_listener_event_func(int _fd, unsigned ev, void *_l) {
if (ev & FDE_READ) { if (ev & FDE_READ) {
struct sockaddr addr; sockaddr_storage ss;
socklen_t alen = sizeof(addr); sockaddr* addrp = reinterpret_cast<sockaddr*>(&ss);
int fd = adb_socket_accept(_fd, &addr, &alen); socklen_t alen = sizeof(ss);
int fd = adb_socket_accept(_fd, addrp, &alen);
if (fd < 0) return; if (fd < 0) return;
int rcv_buf_size = CHUNK_SIZE; int rcv_buf_size = CHUNK_SIZE;
@ -58,12 +59,13 @@ static void listener_event_func(int _fd, unsigned ev, void* _l)
asocket *s; asocket *s;
if (ev & FDE_READ) { if (ev & FDE_READ) {
struct sockaddr addr; sockaddr_storage ss;
sockaddr* addrp = reinterpret_cast<sockaddr*>(&ss);
socklen_t alen; socklen_t alen;
int fd; int fd;
alen = sizeof(addr); alen = sizeof(ss);
fd = adb_socket_accept(_fd, &addr, &alen); fd = adb_socket_accept(_fd, addrp, &alen);
if (fd < 0) { if (fd < 0) {
return; return;
} }
@ -79,7 +81,7 @@ static void listener_event_func(int _fd, unsigned ev, void* _l)
} }
} }
static void free_listener(alistener* l) static void free_listener(alistener* l)
{ {
if (l->next) { if (l->next) {
l->next->prev = l->prev; l->next->prev = l->prev;

View file

@ -460,11 +460,11 @@ jdwp_control_init( JdwpControl* control,
const char* sockname, const char* sockname,
int socknamelen ) int socknamelen )
{ {
struct sockaddr_un addr; sockaddr_un addr;
socklen_t addrlen; socklen_t addrlen;
int s; int s;
int maxpath = sizeof(addr.sun_path); int maxpath = sizeof(addr.sun_path);
int pathlen = socknamelen; int pathlen = socknamelen;
if (pathlen >= maxpath) { if (pathlen >= maxpath) {
D( "vm debug control socket name too long (%d extra chars)", D( "vm debug control socket name too long (%d extra chars)",
@ -485,7 +485,7 @@ jdwp_control_init( JdwpControl* control,
addrlen = (pathlen + sizeof(addr.sun_family)); addrlen = (pathlen + sizeof(addr.sun_family));
if (bind(s, (struct sockaddr*)&addr, addrlen) < 0) { if (bind(s, reinterpret_cast<sockaddr*>(&addr), addrlen) < 0) {
D( "could not bind vm debug control socket: %d: %s", D( "could not bind vm debug control socket: %d: %s",
errno, strerror(errno) ); errno, strerror(errno) );
adb_close(s); adb_close(s);
@ -523,13 +523,14 @@ jdwp_control_event( int s, unsigned events, void* _control )
JdwpControl* control = (JdwpControl*) _control; JdwpControl* control = (JdwpControl*) _control;
if (events & FDE_READ) { if (events & FDE_READ) {
struct sockaddr addr; sockaddr_storage ss;
socklen_t addrlen = sizeof(addr); sockaddr* addrp = reinterpret_cast<sockaddr*>(&ss);
int s = -1; socklen_t addrlen = sizeof(ss);
JdwpProcess* proc; int s = -1;
JdwpProcess* proc;
do { do {
s = adb_socket_accept( control->listen_socket, &addr, &addrlen ); s = adb_socket_accept(control->listen_socket, addrp, &addrlen);
if (s < 0) { if (s < 0) {
if (errno == EINTR) if (errno == EINTR)
continue; continue;

View file

@ -143,7 +143,8 @@ static void *client_socket_thread(void *x)
static void *server_socket_thread(void * arg) static void *server_socket_thread(void * arg)
{ {
int serverfd, fd; int serverfd, fd;
struct sockaddr addr; sockaddr_storage ss;
sockaddr *addrp = reinterpret_cast<sockaddr*>(&ss);
socklen_t alen; socklen_t alen;
int port = (int) (uintptr_t) arg; int port = (int) (uintptr_t) arg;
@ -162,9 +163,9 @@ static void *server_socket_thread(void * arg)
close_on_exec(serverfd); close_on_exec(serverfd);
} }
alen = sizeof(addr); alen = sizeof(ss);
D("server: trying to get new connection from %d", port); D("server: trying to get new connection from %d", port);
fd = adb_socket_accept(serverfd, &addr, &alen); fd = adb_socket_accept(serverfd, addrp, &alen);
if(fd >= 0) { if(fd >= 0) {
D("server: new connection on fd %d", fd); D("server: new connection on fd %d", fd);
close_on_exec(fd); close_on_exec(fd);

View file

@ -518,11 +518,12 @@ static int do_server() {
ALOGI("debuggerd: starting\n"); ALOGI("debuggerd: starting\n");
for (;;) { for (;;) {
sockaddr addr; sockaddr_storage ss;
socklen_t alen = sizeof(addr); sockaddr* addrp = reinterpret_cast<sockaddr*>(&ss);
socklen_t alen = sizeof(ss);
ALOGV("waiting for connection\n"); ALOGV("waiting for connection\n");
int fd = accept(s, &addr, &alen); int fd = accept(s, addrp, &alen);
if (fd < 0) { if (fd < 0) {
ALOGV("accept failed: %s\n", strerror(errno)); ALOGV("accept failed: %s\n", strerror(errno));
continue; continue;

View file

@ -199,13 +199,14 @@ void SocketListener::runListener() {
continue; continue;
} }
if (mListen && FD_ISSET(mSock, &read_fds)) { if (mListen && FD_ISSET(mSock, &read_fds)) {
struct sockaddr addr; sockaddr_storage ss;
sockaddr* addrp = reinterpret_cast<sockaddr*>(&ss);
socklen_t alen; socklen_t alen;
int c; int c;
do { do {
alen = sizeof(addr); alen = sizeof(ss);
c = accept(mSock, &addr, &alen); c = accept(mSock, addrp, &alen);
SLOGV("%s got %d from accept", mSocketName, c); SLOGV("%s got %d from accept", mSocketName, c);
} while (c < 0 && errno == EINTR); } while (c < 0 && errno == EINTR);
if (c < 0) { if (c < 0) {

View file

@ -410,7 +410,8 @@ static void ctrl_data_handler(uint32_t events) {
} }
static void ctrl_connect_handler(uint32_t events __unused) { static void ctrl_connect_handler(uint32_t events __unused) {
struct sockaddr addr; struct sockaddr_storage ss;
struct sockaddr *addrp = (struct sockaddr *)&ss;
socklen_t alen; socklen_t alen;
struct epoll_event epev; struct epoll_event epev;
@ -419,8 +420,8 @@ static void ctrl_connect_handler(uint32_t events __unused) {
ctrl_dfd_reopened = 1; ctrl_dfd_reopened = 1;
} }
alen = sizeof(addr); alen = sizeof(ss);
ctrl_dfd = accept(ctrl_lfd, &addr, &alen); ctrl_dfd = accept(ctrl_lfd, addrp, &alen);
if (ctrl_dfd < 0) { if (ctrl_dfd < 0) {
ALOGE("lmkd control socket accept failed; errno=%d", errno); ALOGE("lmkd control socket accept failed; errno=%d", errno);