blob: 76a7a80aaefe7ac9cfce076f832aa1903875b9b6 [file] [log] [blame]
Brianc9f64552014-04-02 19:44:09 -07001#include "aos/common/network/receive_socket.h"
2
brians343bc112013-02-10 01:53:46 +00003#include <string.h>
4#include <math.h>
5#include <errno.h>
6#include <stdint.h>
7#include <stddef.h>
Brianc9f64552014-04-02 19:44:09 -07008#include <sys/socket.h>
brians343bc112013-02-10 01:53:46 +00009
Brian Silverman598800f2013-05-09 17:08:42 -070010#include "aos/common/logging/logging.h"
brians343bc112013-02-10 01:53:46 +000011
12namespace aos {
Brianc9f64552014-04-02 19:44:09 -070013namespace network {
brians343bc112013-02-10 01:53:46 +000014
15static const char *localhost = "0.0.0.0";
16
17int ReceiveSocket::Connect(NetworkPort port) {
18 Reset();
19 const int ret = Socket::Connect(port, localhost);
20 if (ret != 0) {
21 return ret;
22 }
23
Brian Silvermana9cbe302013-03-12 18:41:44 -070024 if (bind(socket_, &addr_.addr,
brians343bc112013-02-10 01:53:46 +000025 sizeof(addr_)) == -1) {
26 LOG(ERROR, "failed to bind to address '%s' because of %d: %s\n", localhost,
27 errno, strerror(errno));
28 return last_ret_ = -1;
Brian Silvermana9cbe302013-03-12 18:41:44 -070029 }
brians343bc112013-02-10 01:53:46 +000030 return last_ret_ = 0;
31}
32
Brianc9f64552014-04-02 19:44:09 -070033} // namespace network
34} // namespace aos