0
0
mirror of https://github.com/yse/easy_profiler.git synced 2024-12-28 01:04:41 +08:00

Networking fixes for MacOS

Qualify type for std::abs
This commit is contained in:
Josh Engebretson 2017-05-23 19:44:33 +03:00
parent f988cd4809
commit a01187cf55
2 changed files with 23 additions and 2 deletions

View File

@ -268,6 +268,12 @@ int EasySocket::accept()
//int flag = 1; //int flag = 1;
//int result = setsockopt(m_replySocket,IPPROTO_TCP,TCP_NODELAY,(char *)&flag,sizeof(int)); //int result = setsockopt(m_replySocket,IPPROTO_TCP,TCP_NODELAY,(char *)&flag,sizeof(int));
// Apple doesn't have MSG_NOSIGNAL, work around it
#ifdef __APPLE__
int value = 1;
setsockopt(m_replySocket, SOL_SOCKET, SO_NOSIGPIPE, &value, sizeof(value));
#endif
//setBlocking(m_replySocket,true); //setBlocking(m_replySocket,true);
} }
return (int)m_replySocket; return (int)m_replySocket;
@ -309,6 +315,15 @@ int EasySocket::connect()
{ {
res = ::connect(m_socket,(struct sockaddr *) &serv_addr,sizeof(serv_addr)); res = ::connect(m_socket,(struct sockaddr *) &serv_addr,sizeof(serv_addr));
// on Apple, treat EISCONN error as success
#ifdef __APPLE__
if (res == -1 && errno == EISCONN)
{
res = 0;
break;
}
#endif
checkResult(res); checkResult(res);
if (res == 0) if (res == 0)
@ -339,6 +354,12 @@ int EasySocket::connect()
setsockopt(m_socket, SOL_SOCKET, SO_RCVTIMEO, (char *)&tv,sizeof(struct timeval)); setsockopt(m_socket, SOL_SOCKET, SO_RCVTIMEO, (char *)&tv,sizeof(struct timeval));
#ifdef __APPLE__
// Apple doesn't have MSG_NOSIGNAL, work around it
int value = 1;
setsockopt(m_socket, SOL_SOCKET, SO_NOSIGPIPE, &value, sizeof(value));
#endif
m_replySocket = m_socket; m_replySocket = m_socket;
} }
return res; return res;

View File

@ -1130,8 +1130,8 @@ void EasyGraphicsView::mouseMoveEvent(QMouseEvent* _event)
if (m_mouseButtons != 0) if (m_mouseButtons != 0)
{ {
m_mouseMovePath.setX(m_mouseMovePath.x() + abs(delta.x())); m_mouseMovePath.setX(m_mouseMovePath.x() + ::std::abs((double)delta.x()));
m_mouseMovePath.setY(m_mouseMovePath.y() + abs(delta.y())); m_mouseMovePath.setY(m_mouseMovePath.y() + ::std::abs((double)delta.y()));
} }
auto mouseScenePos = mapToScene(m_mousePressPos); auto mouseScenePos = mapToScene(m_mousePressPos);