void guac_rdp_process_seamrdp_event(guac_client* client, RDP_EVENT* event) { char *input; int length_raw, length_base64; input = (char*)(event->user_data); length_raw = strlen(input); length_base64 = (length_raw+2) / 3 * 4; guac_socket_write_string(client->socket, "7.seamrdp,"); guac_socket_write_int (client->socket, length_base64); guac_socket_write_string(client->socket, "."); guac_socket_write_base64(client->socket, input, length_raw); guac_socket_flush_base64(client->socket); guac_socket_write_string(client->socket, ";"); }
int guac_protocol_send_blob(guac_socket* socket, const guac_stream* stream, const void* data, int count) { int base64_length = (count + 2) / 3 * 4; int ret_val; guac_socket_instruction_begin(socket); ret_val = guac_socket_write_string(socket, "4.blob,") || __guac_socket_write_length_int(socket, stream->index) || guac_socket_write_string(socket, ",") || guac_socket_write_int(socket, base64_length) || guac_socket_write_string(socket, ".") || guac_socket_write_base64(socket, data, count) || guac_socket_flush_base64(socket) || guac_socket_write_string(socket, ";"); guac_socket_instruction_end(socket); return ret_val; }