git-svn-id: svn://db.shs.com.ru/pip@750 12ceb7fc-bf1f-11e4-8940-5bc7170c53b5
This commit is contained in:
@@ -288,9 +288,9 @@ bool PIEthernet::init() {
|
||||
pr = IPPROTO_TCP;
|
||||
}
|
||||
PIFlags<Parameters> params = parameters();
|
||||
sock = socket(AF_INET, st, pr);
|
||||
sock = ::socket(AF_INET, st, pr);
|
||||
if (params[SeparateSockets])
|
||||
sock_s = socket(AF_INET, st, pr);
|
||||
sock_s = ::socket(AF_INET, st, pr);
|
||||
else
|
||||
sock_s = sock;
|
||||
if (sock == -1 || sock_s == -1) {
|
||||
@@ -741,6 +741,7 @@ int PIEthernet::readDevice(void * read_to, int max_size) {
|
||||
return -1;
|
||||
}
|
||||
if (connected_) {
|
||||
piCoutObj << "Disconnect on read," << ethErrorString();
|
||||
init();
|
||||
connected_ = false;
|
||||
disconnected(rs < 0);
|
||||
@@ -837,10 +838,10 @@ int PIEthernet::writeDevice(const void * data, int max_size) {
|
||||
if (!connected_) return -1;
|
||||
ret = ::send(sock, (const char *)data, max_size, 0);
|
||||
if (ret < 0) {
|
||||
connected_ = false; {
|
||||
init();
|
||||
disconnected(true);
|
||||
}
|
||||
connected_ = false;
|
||||
piCoutObj << "Disconnect on write," << ethErrorString();
|
||||
init();
|
||||
disconnected(true);
|
||||
}
|
||||
return ret;
|
||||
default: break;
|
||||
@@ -1097,7 +1098,7 @@ PIEthernet::InterfaceList PIEthernet::interfaces() {
|
||||
# endif*/
|
||||
# ifdef ANDROID
|
||||
struct ifconf ifc;
|
||||
int s = socket(AF_INET, SOCK_STREAM, IPPROTO_IP);
|
||||
int s = ::socket(AF_INET, SOCK_STREAM, IPPROTO_IP);
|
||||
ifc.ifc_len = 256;
|
||||
ifc.ifc_buf = new char[ifc.ifc_len];
|
||||
if (ioctl(s, SIOCGIFCONF, &ifc) < 0) {
|
||||
@@ -1125,7 +1126,7 @@ PIEthernet::InterfaceList PIEthernet::interfaces() {
|
||||
delete ifc.ifc_buf;
|
||||
# else
|
||||
struct ifaddrs * ret;
|
||||
int s = socket(AF_INET, SOCK_STREAM, IPPROTO_IP);
|
||||
int s = ::socket(AF_INET, SOCK_STREAM, IPPROTO_IP);
|
||||
if (getifaddrs(&ret) == 0) {
|
||||
while (ret != 0) {
|
||||
if (ret->ifa_addr == 0) {
|
||||
@@ -1209,7 +1210,7 @@ PIEthernet::Address PIEthernet::interfaceAddress(const PIString & interface_) {
|
||||
struct ifreq ifr;
|
||||
memset(&ifr, 0, sizeof(ifr));
|
||||
strcpy(ifr.ifr_name, interface_.dataAscii());
|
||||
int s = socket(AF_INET, SOCK_DGRAM, 0);
|
||||
int s = ::socket(AF_INET, SOCK_DGRAM, 0);
|
||||
ioctl(s, SIOCGIFADDR, &ifr);
|
||||
::close(s);
|
||||
struct sockaddr_in * sa = (struct sockaddr_in * )&ifr.ifr_addr;
|
||||
|
||||
Reference in New Issue
Block a user