aboutsummaryrefslogtreecommitdiff
path: root/adb_listeners.cpp
diff options
context:
space:
mode:
authorJosh Gao <jmgao@google.com>2019-01-23 15:36:42 -0800
committerJosh Gao <jmgao@google.com>2019-01-23 17:11:13 -0800
commitc2705969e945b115ca42bc6365e90383f5c078b6 (patch)
tree56eda95c2736e1494bbc1362d8ad964607b4899c /adb_listeners.cpp
parent0560feb3bc387398394aa86b5066624f183cd97e (diff)
downloadadb-c2705969e945b115ca42bc6365e90383f5c078b6.tar.gz
adb: convert more stuff to unique_fd.
Test: adb_test Test: adbd_test Test: test_device.py Change-Id: Ie75f0b811d2c75d508e6ecffb40579308f5789d0
Diffstat (limited to 'adb_listeners.cpp')
-rw-r--r--adb_listeners.cpp15
1 files changed, 5 insertions, 10 deletions
diff --git a/adb_listeners.cpp b/adb_listeners.cpp
index be457a68..29909a55 100644
--- a/adb_listeners.cpp
+++ b/adb_listeners.cpp
@@ -75,41 +75,36 @@ static ListenerList& listener_list GUARDED_BY(listener_list_mutex) = *new Listen
static void ss_listener_event_func(int _fd, unsigned ev, void *_l) {
if (ev & FDE_READ) {
- int fd = adb_socket_accept(_fd, nullptr, nullptr);
+ unique_fd fd(adb_socket_accept(_fd, nullptr, nullptr));
if (fd < 0) return;
int rcv_buf_size = CHUNK_SIZE;
- adb_setsockopt(fd, SOL_SOCKET, SO_RCVBUF, &rcv_buf_size, sizeof(rcv_buf_size));
+ adb_setsockopt(fd.get(), SOL_SOCKET, SO_RCVBUF, &rcv_buf_size, sizeof(rcv_buf_size));
- asocket* s = create_local_socket(fd);
+ asocket* s = create_local_socket(std::move(fd));
if (s) {
connect_to_smartsocket(s);
return;
}
-
- adb_close(fd);
}
}
static void listener_event_func(int _fd, unsigned ev, void* _l)
{
alistener* listener = reinterpret_cast<alistener*>(_l);
- asocket *s;
if (ev & FDE_READ) {
- int fd = adb_socket_accept(_fd, nullptr, nullptr);
+ unique_fd fd(adb_socket_accept(_fd, nullptr, nullptr));
if (fd < 0) {
return;
}
- s = create_local_socket(fd);
+ asocket* s = create_local_socket(std::move(fd));
if (s) {
s->transport = listener->transport;
connect_to_remote(s, listener->connect_to);
return;
}
-
- adb_close(fd);
}
}