Added cross-platform sleep
This commit is contained in:
parent
081df9339b
commit
320b1e7f54
@ -23,7 +23,7 @@
|
|||||||
#include <png.h>
|
#include <png.h>
|
||||||
#include <time.h>
|
#include <time.h>
|
||||||
|
|
||||||
#include <syslog.h>
|
#include <guacamole/guaclog.h>
|
||||||
|
|
||||||
#include <rfb/rfbclient.h>
|
#include <rfb/rfbclient.h>
|
||||||
|
|
||||||
@ -196,6 +196,22 @@ void guac_vnc_cut_text(rfbClient* client, const char* text, int textlen) {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void vnc_guac_client_sleep(int millis) {
|
||||||
|
|
||||||
|
#ifdef nanosleep
|
||||||
|
struct timespec sleep_period;
|
||||||
|
|
||||||
|
sleep_period.tv_sec = 0;
|
||||||
|
sleep_period.tv_nsec = millis * 1000000L;
|
||||||
|
|
||||||
|
nanosleep(&sleep_period, NULL);
|
||||||
|
#else
|
||||||
|
#ifdef Sleep
|
||||||
|
Sleep(millis)
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
int vnc_guac_client_handle_messages(guac_client* client) {
|
int vnc_guac_client_handle_messages(guac_client* client) {
|
||||||
|
|
||||||
@ -205,26 +221,21 @@ int vnc_guac_client_handle_messages(guac_client* client) {
|
|||||||
|
|
||||||
wait_result = WaitForMessage(rfb_client, 2000);
|
wait_result = WaitForMessage(rfb_client, 2000);
|
||||||
if (wait_result < 0) {
|
if (wait_result < 0) {
|
||||||
syslog(LOG_ERR, "Error waiting for VNC server message\n");
|
GUAC_LOG_ERROR("Error waiting for VNC server message\n");
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (wait_result > 0) {
|
if (wait_result > 0) {
|
||||||
|
|
||||||
struct timespec sleep_period;
|
|
||||||
|
|
||||||
if (!HandleRFBServerMessage(rfb_client)) {
|
if (!HandleRFBServerMessage(rfb_client)) {
|
||||||
syslog(LOG_ERR, "Error handling VNC server message\n");
|
GUAC_LOG_ERROR("Error handling VNC server message\n");
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Wait before returning ... don't want to handle
|
/* Wait before returning ... don't want to handle
|
||||||
* too many server messages. */
|
* too many server messages. */
|
||||||
|
|
||||||
sleep_period.tv_sec = 0;
|
vnc_guac_client_sleep(50);
|
||||||
sleep_period.tv_nsec = 50000000L /* 50 ms */;
|
|
||||||
|
|
||||||
nanosleep(&sleep_period, NULL);
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user