GUACAMOLE-513: Move sleep to protocol implementations; update comments and headers.
This commit is contained in:
parent
3dc2591517
commit
45e46bd245
@ -17,8 +17,8 @@
|
|||||||
* under the License.
|
* under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef __GUAC_WOL_CONSTANTS_H
|
#ifndef GUAC_WOL_CONSTANTS_H
|
||||||
#define __GUAC_WOL_CONSTANTS_H
|
#define GUAC_WOL_CONSTANTS_H
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Header file that provides constants and defaults related to libguac
|
* Header file that provides constants and defaults related to libguac
|
||||||
@ -29,7 +29,8 @@
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* The default broadcast address to which Wake-on-LAN packets will be sent
|
* The default broadcast address to which Wake-on-LAN packets will be sent
|
||||||
* if one is not specified.
|
* if one is not specified, which is the special value for the IPv4 local
|
||||||
|
* network broadcast.
|
||||||
*/
|
*/
|
||||||
#define GUAC_WOL_DEFAULT_BROADCAST "255.255.255.255"
|
#define GUAC_WOL_DEFAULT_BROADCAST "255.255.255.255"
|
||||||
|
|
||||||
@ -39,5 +40,5 @@
|
|||||||
*/
|
*/
|
||||||
#define GUAC_WOL_DEFAULT_WAIT_TIME 60
|
#define GUAC_WOL_DEFAULT_WAIT_TIME 60
|
||||||
|
|
||||||
#endif /* __GUAC_WOL_CONSTANTS_H */
|
#endif /* GUAC_WOL_CONSTANTS_H */
|
||||||
|
|
||||||
|
@ -17,8 +17,8 @@
|
|||||||
* under the License.
|
* under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef __GUAC_WOL_H
|
#ifndef GUAC_WOL_H
|
||||||
#define __GUAC_WOL_H
|
#define GUAC_WOL_H
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Header that provides functions and structures related to Wake-on-LAN
|
* Header that provides functions and structures related to Wake-on-LAN
|
||||||
@ -42,15 +42,11 @@
|
|||||||
* @param broadcast_addr
|
* @param broadcast_addr
|
||||||
* The broadcast address to which to send the magic Wake-on-LAN packet.
|
* The broadcast address to which to send the magic Wake-on-LAN packet.
|
||||||
*
|
*
|
||||||
* @param wait_time
|
|
||||||
* The number of seconds to pause after sending the packet.
|
|
||||||
*
|
|
||||||
* @return
|
* @return
|
||||||
* Zero if the packet is successfully sent to the destination; non-zero
|
* Zero if the packet is successfully sent to the destination; non-zero
|
||||||
* if the packet cannot be sent.
|
* if the packet cannot be sent.
|
||||||
*/
|
*/
|
||||||
int guac_wol_wake(const char* mac_addr, const char* broadcast_addr,
|
int guac_wol_wake(const char* mac_addr, const char* broadcast_addr);
|
||||||
const int wait_time);
|
|
||||||
|
|
||||||
#endif /* __GUAC_WOL_H */
|
#endif /* GUAC_WOL_H */
|
||||||
|
|
||||||
|
@ -97,8 +97,7 @@ static ssize_t __guac_wol_send_packet(const char* broadcast_addr,
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
int guac_wol_wake(const char* mac_addr, const char* broadcast_addr,
|
int guac_wol_wake(const char* mac_addr, const char* broadcast_addr) {
|
||||||
const int wait_time) {
|
|
||||||
|
|
||||||
unsigned char wol_packet[102];
|
unsigned char wol_packet[102];
|
||||||
unsigned int dest_mac[6];
|
unsigned int dest_mac[6];
|
||||||
@ -116,10 +115,6 @@ int guac_wol_wake(const char* mac_addr, const char* broadcast_addr,
|
|||||||
/* Send the packet and record bytes sent. */
|
/* Send the packet and record bytes sent. */
|
||||||
int bytes_sent = __guac_wol_send_packet(broadcast_addr, wol_packet);
|
int bytes_sent = __guac_wol_send_packet(broadcast_addr, wol_packet);
|
||||||
|
|
||||||
/* Sleep for the specified amount of time to wait for the remote
|
|
||||||
host to boot. */
|
|
||||||
sleep(wait_time);
|
|
||||||
|
|
||||||
/* Return 0 if bytes were sent, otherwise return an error. */
|
/* Return 0 if bytes were sent, otherwise return an error. */
|
||||||
if (bytes_sent)
|
if (bytes_sent)
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -534,9 +534,14 @@ void* guac_rdp_client_thread(void* data) {
|
|||||||
if (settings->wol_send_packet) {
|
if (settings->wol_send_packet) {
|
||||||
guac_client_log(client, GUAC_LOG_DEBUG, "Sending Wake-on-LAN packet, "
|
guac_client_log(client, GUAC_LOG_DEBUG, "Sending Wake-on-LAN packet, "
|
||||||
"and pausing for %d seconds.", settings->wol_wait_time);
|
"and pausing for %d seconds.", settings->wol_wait_time);
|
||||||
if(guac_wol_wake(settings->wol_mac_addr, settings->wol_broadcast_addr,
|
|
||||||
settings->wol_wait_time))
|
/* Send the Wake-on-LAN request. */
|
||||||
|
if (guac_wol_wake(settings->wol_mac_addr, settings->wol_broadcast_addr))
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
|
/* If wait time is specified, sleep for that amount of time. */
|
||||||
|
if (settings->wol_wait_time > 0)
|
||||||
|
guac_timestamp_msleep(settings->wol_wait_time * 1000);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* If audio enabled, choose an encoder */
|
/* If audio enabled, choose an encoder */
|
||||||
|
@ -206,9 +206,14 @@ void* ssh_client_thread(void* data) {
|
|||||||
if (settings->wol_send_packet) {
|
if (settings->wol_send_packet) {
|
||||||
guac_client_log(client, GUAC_LOG_DEBUG, "Sending Wake-on-LAN packet, "
|
guac_client_log(client, GUAC_LOG_DEBUG, "Sending Wake-on-LAN packet, "
|
||||||
"and pausing for %d seconds.", settings->wol_wait_time);
|
"and pausing for %d seconds.", settings->wol_wait_time);
|
||||||
if (guac_wol_wake(settings->wol_mac_addr, settings->wol_broadcast_addr,
|
|
||||||
settings->wol_wait_time))
|
/* Send the Wake-on-LAN request. */
|
||||||
|
if (guac_wol_wake(settings->wol_mac_addr, settings->wol_broadcast_addr))
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
|
/* If wait time is specified, sleep for that amount of time. */
|
||||||
|
if (settings->wol_wait_time > 0)
|
||||||
|
guac_timestamp_msleep(settings->wol_wait_time * 1000);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Init SSH base libraries */
|
/* Init SSH base libraries */
|
||||||
|
@ -562,9 +562,14 @@ void* guac_telnet_client_thread(void* data) {
|
|||||||
if (settings->wol_send_packet) {
|
if (settings->wol_send_packet) {
|
||||||
guac_client_log(client, GUAC_LOG_DEBUG, "Sending Wake-on-LAN packet, "
|
guac_client_log(client, GUAC_LOG_DEBUG, "Sending Wake-on-LAN packet, "
|
||||||
"and pausing for %d seconds.", settings->wol_wait_time);
|
"and pausing for %d seconds.", settings->wol_wait_time);
|
||||||
if (guac_wol_wake(settings->wol_mac_addr, settings->wol_broadcast_addr,
|
|
||||||
settings->wol_wait_time))
|
/* Send the Wake-on-LAN request. */
|
||||||
|
if (guac_wol_wake(settings->wol_mac_addr, settings->wol_broadcast_addr))
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
|
/* If wait time is specified, sleep for that amount of time. */
|
||||||
|
if (settings->wol_wait_time > 0)
|
||||||
|
guac_timestamp_msleep(settings->wol_wait_time * 1000);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Set up screen recording, if requested */
|
/* Set up screen recording, if requested */
|
||||||
|
@ -243,9 +243,14 @@ void* guac_vnc_client_thread(void* data) {
|
|||||||
if (settings->wol_send_packet) {
|
if (settings->wol_send_packet) {
|
||||||
guac_client_log(client, GUAC_LOG_DEBUG, "Sending Wake-on-LAN packet, "
|
guac_client_log(client, GUAC_LOG_DEBUG, "Sending Wake-on-LAN packet, "
|
||||||
"and pausing for %d seconds.", settings->wol_wait_time);
|
"and pausing for %d seconds.", settings->wol_wait_time);
|
||||||
if (guac_wol_wake(settings->wol_mac_addr, settings->wol_broadcast_addr,
|
|
||||||
settings->wol_wait_time))
|
/* Send the Wake-on-LAN request. */
|
||||||
|
if (guac_wol_wake(settings->wol_mac_addr, settings->wol_broadcast_addr))
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
|
/* If wait time is specified, sleep for that amount of time. */
|
||||||
|
if (settings->wol_wait_time > 0)
|
||||||
|
guac_timestamp_msleep(settings->wol_wait_time * 1000);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Configure clipboard encoding */
|
/* Configure clipboard encoding */
|
||||||
|
Loading…
Reference in New Issue
Block a user