static void rfbInitListenSock(rfbScreenInfoPtr rfbScreen) { char *netIface = (char*)rfbScreen->netIface; int i; if(netIface == NULL || if_nametoindex(netIface) == 0) { if(netIface != NULL) rfbLog("WARNING: This (%s) a invalid network interface, set to all\n", netIface); netIface = NULL; } if(rfbScreen->autoPort) { rfbLog("Autoprobing TCP port in (%s) network interface\n", netIface != NULL ? netIface : "all"); for (i = 5900; i < 6000; i++) { if (ListenOnTCPPort(rfbScreen, i, netIface)) { rfbScreen->rfbPort = i; break; } } if (i >= 6000) { rfbLogPerror("Failure autoprobing"); return; } rfbLog("Autoprobing selected port %d\n", rfbScreen->rfbPort); FD_ZERO(&rfbScreen->allFds); for(i=0; i < rfbScreen->rfbListenSockTotal; i++) { FD_SET(rfbScreen->rfbListenSock[i], &rfbScreen->allFds); rfbScreen->maxFd = rfbScreen->rfbListenSock[i]; } } else if(rfbScreen->rfbPort > 0) { rfbLog("Listening for VNC connections on TCP port %d in (%s) network interface\n", rfbScreen->rfbPort, netIface != NULL ? netIface : "all"); if (!ListenOnTCPPort(rfbScreen, rfbScreen->rfbPort, netIface)) { rfbLogPerror("ListenOnTCPPort"); return; } FD_ZERO(&rfbScreen->allFds); for(i=0; i < rfbScreen->rfbListenSockTotal; i++) { FD_SET(rfbScreen->rfbListenSock[i], &rfbScreen->allFds); rfbScreen->maxFd = rfbScreen->rfbListenSock[i]; } } }
void httpInitSockets() { static Bool done = FALSE; if (done) return; done = TRUE; if (!httpDir) return; if (httpPort == 0) { httpPort = 5800 + atoi(display); } rfbLog("Listening for HTTP connections on TCP port %d\n", httpPort); rfbLog(" URL http://%s:%d\n",rfbThisHost,httpPort); if ((httpListenSock = ListenOnTCPPort(httpPort)) < 0) { rfbLogPerror("ListenOnTCPPort"); exit(1); } AddEnabledDevice(httpListenSock); }
void httpInitSockets(rfbScreenInfoPtr rfbScreen) { if (rfbScreen->httpInitDone) return; rfbScreen->httpInitDone = TRUE; if (!rfbScreen->httpDir) return; if (rfbScreen->httpPort == 0) { rfbScreen->httpPort = rfbScreen->rfbPort-100; } rfbLog("Listening for HTTP connections on TCP port %d\n", rfbScreen->httpPort); rfbLog(" URL http://%s:%d\n",rfbScreen->rfbThisHost,rfbScreen->httpPort); if ((rfbScreen->httpListenSock = ListenOnTCPPort(rfbScreen->httpPort)) < 0) { rfbLogPerror("ListenOnTCPPort"); exit(1); } /*AddEnabledDevice(httpListenSock);*/ }
void rfbInitSockets() { static Bool done = FALSE; if (done) return; done = TRUE; if (inetdSock != -1) { const int one = 1; if (fcntl(inetdSock, F_SETFL, O_NONBLOCK) < 0) { rfbLogPerror("fcntl"); exit(1); } if (setsockopt(inetdSock, IPPROTO_TCP, TCP_NODELAY, (char *)&one, sizeof(one)) < 0) { rfbLogPerror("setsockopt"); exit(1); } AddEnabledDevice(inetdSock); FD_ZERO(&allFds); FD_SET(inetdSock, &allFds); maxFd = inetdSock; return; } if (rfbPort == 0) { rfbPort = 5900 + atoi(display); } rfbLog("Listening for VNC connections on TCP port %d\n", rfbPort); if ((rfbListenSock = ListenOnTCPPort(rfbPort)) < 0) { rfbLogPerror("ListenOnTCPPort"); exit(1); } AddEnabledDevice(rfbListenSock); FD_ZERO(&allFds); FD_SET(rfbListenSock, &allFds); maxFd = rfbListenSock; if (udpPort != 0) { rfbLog("rfbInitSockets: listening for input on UDP port %d\n", udpPort); if ((udpSock = ListenOnUDPPort(udpPort)) < 0) { rfbLogPerror("ListenOnUDPPort"); exit(1); } AddEnabledDevice(udpSock); FD_SET(udpSock, &allFds); maxFd = max(udpSock, maxFd); } }
void rfbInitSockets(rfbScreenInfoPtr rfbScreen) { if (rfbScreen->socketInitDone) return; rfbScreen->socketInitDone = TRUE; if (rfbScreen->inetdSock != -1) { const int one = 1; #ifndef WIN32 if (fcntl(rfbScreen->inetdSock, F_SETFL, O_NONBLOCK) < 0) { rfbLogPerror("fcntl"); exit(1); } #endif if (setsockopt(rfbScreen->inetdSock, IPPROTO_TCP, TCP_NODELAY, (char *)&one, sizeof(one)) < 0) { rfbLogPerror("setsockopt"); exit(1); } FD_ZERO(&(rfbScreen->allFds)); FD_SET(rfbScreen->inetdSock, &(rfbScreen->allFds)); rfbScreen->maxFd = rfbScreen->inetdSock; return; } if(rfbScreen->autoPort) { int i; rfbLog("Autoprobing TCP port \n"); for (i = 5900; i < 6000; i++) { if ((rfbScreen->rfbListenSock = ListenOnTCPPort(i)) >= 0) { rfbScreen->rfbPort = i; break; } } if (i >= 6000) { rfbLogPerror("Failure autoprobing"); exit(1); } rfbLog("Autoprobing selected port %d\n", rfbScreen->rfbPort); FD_ZERO(&(rfbScreen->allFds)); FD_SET(rfbScreen->rfbListenSock, &(rfbScreen->allFds)); rfbScreen->maxFd = rfbScreen->rfbListenSock; } else if(rfbScreen->rfbPort>0) { rfbLog("Listening for VNC connections on TCP port %d\n", rfbScreen->rfbPort); if ((rfbScreen->rfbListenSock = ListenOnTCPPort(rfbScreen->rfbPort)) < 0) { rfbLogPerror("ListenOnTCPPort"); exit(1); } FD_ZERO(&(rfbScreen->allFds)); FD_SET(rfbScreen->rfbListenSock, &(rfbScreen->allFds)); rfbScreen->maxFd = rfbScreen->rfbListenSock; } if (rfbScreen->udpPort != 0) { rfbLog("rfbInitSockets: listening for input on UDP port %d\n",rfbScreen->udpPort); if ((rfbScreen->udpSock = ListenOnUDPPort(rfbScreen->udpPort)) < 0) { rfbLogPerror("ListenOnUDPPort"); exit(1); } FD_SET(rfbScreen->udpSock, &(rfbScreen->allFds)); rfbScreen->maxFd = max((int)rfbScreen->udpSock,rfbScreen->maxFd); } }