Commit Graph

273 Commits

Author SHA1 Message Date
Michael Jumper
dc5245025e GUACAMOLE-489: Lock both wrapped sockets when performing operations through a tee socket. 2018-01-26 16:17:45 -08:00
Michael Jumper
1b81549c97 GUACAMOLE-423: Update libtool version info for libguac (interfaces added, none changed/removed). 2017-12-07 19:10:45 -08:00
David Fort
bb527f30f8 GUACAMOLE-402: fix out-of-tree build
Use $(srcdir) in places were it's needed, so that an out-of-tree build works.
2017-10-12 15:11:27 +02:00
Michael Jumper
d3c5a8a050 GUACAMOLE-325: Add Winsock-specific guac_socket implementation. 2017-07-05 20:55:03 -07:00
Michael Jumper
eb73563445 GUACAMOLE-325: Explicitly check for Winsock. 2017-07-05 20:55:02 -07:00
Michael Jumper
1c404d1881 GUACAMOLE-325: Use recv() on Windows platforms. 2017-07-05 20:55:02 -07:00
Michael Jumper
944857d130 GUACAMOLE-325: Include -no-undefined in libguac libtool flags. 2017-07-05 20:55:02 -07:00
Michael Jumper
7b8d250bd5 GUACAMOLE-325: Explicitly check for libdl, using it if provided and warning if both libdl and dlopen() are absent. 2017-07-05 20:55:02 -07:00
Michael Jumper
9dcddd1947 GUACAMOLE-325: Use select() if poll() is unavailable. 2017-07-05 20:55:02 -07:00
Michael Jumper
b608d2266b GUACAMOLE-337: Clarify behavior of guac_user_handle_connection(). 2017-07-05 19:54:06 -07:00
Michael Jumper
60141175dd GUACAMOLE-337: Document that socket-ssl.h is not guaranteed to be present. 2017-07-01 18:55:20 -07:00
Michael Jumper
f504b1a5e8 GUACAMOLE-337: Move libguacd functionality into libguac. 2017-07-01 18:50:03 -07:00
Michael Jumper
06a5043442 GUACAMOLE-337: Include only *-types.h headers when only types are needed. 2017-07-01 18:50:03 -07:00
Michael Jumper
f311c23ffa GUACAMOLE-337: Move SSL socket into libguac. 2017-07-01 18:50:03 -07:00
Michael Jumper
584c108d1a GUACAMOLE-314: Bump libtool version info (interface added, none changed/removed). 2017-06-01 22:52:12 -07:00
Michael Jumper
1081131aa5 GUACAMOLE-259: Log server and user frame timing information at TRACE level. 2017-03-31 10:48:58 -07:00
Michael Jumper
e910dcbfcc GUACAMOLE-259: Add TRACE log level. 2017-03-30 01:15:51 -07:00
Michael Jumper
039a1c52e4 GUACAMOLE-239: Merge support for CLOCK_MONOTONIC. 2017-03-23 21:05:49 -07:00
Roman Stoffel
ddc1aa0b5f GUACAMOLE-239: When available, use CLOCK_MONOTONIC to prevent backwards running time 2017-03-23 23:06:24 +01:00
James Muehlner
2c2824fc5b Merge 0.9.12-incubating changes back to master. 2017-03-13 22:13:10 -07:00
Michael Jumper
1a96c5b415 GUACAMOLE-231: Add "mouse" instruction for server reporting of mouse position. 2017-03-11 14:57:09 -08:00
James Muehlner
c4903a8e36 Merge 0.9.12-incubating changes back to master. 2017-02-28 10:32:49 -08:00
Michael Jumper
f85978e43a GUACAMOLE-225: Bump libtool version info (interface added, none changed/removed). 2017-02-28 09:47:53 -08:00
Michael Jumper
0210b7dc6b GUACAMOLE-208: Add protocol status codes representing upstream network errors and session behavior. 2017-02-15 21:23:07 -08:00
James Muehlner
5d5fbb4d45 GUACAMOLE-172: Merge lag calculation improvements. 2017-01-24 23:26:29 -08:00
Michael Jumper
440668a78a GUACAMOLE-179: Use non-owner users of connection to determine audio encoding if necessary. 2017-01-24 17:19:10 -08:00
James Muehlner
a1886f51bd GUACAMOLE-171: Merge move of broadcast socket to public API. 2017-01-24 11:49:29 -08:00
Michael Jumper
6131ad0341 GUACAMOLE-172: Ignore insane timestamps when calculating lag. 2017-01-24 00:18:10 -08:00
Michael Jumper
9e6e4e520c GUACAMOLE-172: Clarify processing lag calculations. 2017-01-24 00:18:00 -08:00
Michael Jumper
7a65a63aa9 GUACAMOLE-171: Do not require knowledge of broadcast socket internals (do not acquire write lock around join/leave handlers). 2017-01-23 23:43:36 -08:00
Michael Jumper
98b92f0900 GUACAMOLE-171: Separate broadcast socket from client. Ensure socket remains threadsafe even if no users are connected. 2017-01-23 23:43:32 -08:00
Michael Jumper
9d2bb31a9d GUACAMOLE-170: Init guac_client args by default. 2017-01-23 23:35:16 -08:00
Michael Jumper
8b08a0e444 GUACAMOLE-154: Bump libtool version-info. 2017-01-09 11:38:47 -08:00
Michael Jumper
9d6d2aeba7 GUACAMOLE-118: Migrate to poll() instead of select() for file descriptor guac_socket implementation. 2016-11-11 13:03:43 -08:00
James Muehlner
96f853d8ff GUACAMOLE-87: Bump libtool version-info. 2016-08-25 22:29:02 -07:00
Michael Jumper
5030c0603a GUACAMOLE-25: Add status code reporting the normal closure of a resource. 2016-05-25 13:50:28 -07:00
Michael Jumper
bdbe1df43c GUAC-1511: Add user audio handler and definition. Handle received "audio" instructions. 2016-03-30 15:32:09 -07:00
Michael Jumper
f4b8c70f79 GUACAMOLE-1: Relicense build/shell scripts. 2016-03-28 20:39:38 -07:00
Michael Jumper
4da3bef4ec GUACAMOLE-1: Relicense C files. 2016-03-28 20:39:19 -07:00
Michael Jumper
8c37db8a07 GUAC-1164: Add missing free() for client connection ID. 2016-03-17 16:03:58 -07:00
Michael Jumper
dc2feba72c GUAC-236: Add guac_socket_tee() function which allocates a socket that delegates all operations to a primary socket while duplicating write operations to a secondary socket. 2016-03-14 20:22:02 -07:00
Michael Jumper
bd5bd29ec0 GUAC-236: Ensure client socket is always freed. 2016-03-14 20:22:02 -07:00
Michael Jumper
70ce9fa96a GUAC-1389: Fix typo in punctuation of documentation for guac_client_for_owner(). 2016-03-04 19:46:21 -08:00
Michael Jumper
e7ada26f55 GUAC-1389: Provide guac_client_for_user() function which validates user pointers, allowing code to safely store and use guac_user pointers. 2016-03-04 16:44:30 -08:00
Michael Jumper
e625a7a887 GUAC-1389: Palette must be freed. 2016-03-03 11:06:55 -08:00
Michael Jumper
e42566816c GUAC-1389: PNG encoder should always release palette storage if an error occurs. 2016-03-02 10:55:37 -08:00
Michael Jumper
15f7fedfea GUAC-1389: Ensure dlopen()'d handle to plugin is released on error. 2016-03-02 10:54:58 -08:00
Michael Jumper
14522dab22 GUAC-1389: Add missing documentation for socket handlers. 2016-03-01 13:02:48 -08:00
Michael Jumper
7653fa106e GUAC-1389: Document internal stream management functions. Fix semantics of stream closure. 2016-03-01 12:50:51 -08:00
Michael Jumper
cd006a4066 GUAC-1389: Fix spelling of "markers". 2016-03-01 12:25:04 -08:00
Michael Jumper
1726af0c97 GUAC-1389: Add missing parameter documentation for user-level instruction handlers. 2016-03-01 12:25:04 -08:00
Michael Jumper
dd0cecc7ea GUAC-1389: Add missing parameter comments to user-specific handlers. Clarify purpose of handlers. 2016-03-01 12:25:04 -08:00
Michael Jumper
c3a487f9ec GUAC-1389: Fix spelling of "previously". 2016-03-01 12:25:04 -08:00
Michael Jumper
3734a68a42 GUAC-1389: Fix strange and unnecessary wrapping of line. 2016-03-01 12:25:04 -08:00
Michael Jumper
5ae0da65e1 GUAC-1389: Remove unnecessary blank line. 2016-03-01 12:25:04 -08:00
Michael Jumper
62ccd78122 GUAC-1389: Add missing parameter comments to static handlers of guac_client and the broadcast socket. 2016-03-01 12:25:04 -08:00
Michael Jumper
6d2ddd72a5 GUAC-1389: Add missing parameter comments for client handlers. 2016-03-01 12:25:04 -08:00
Michael Jumper
ea1a34083c GUAC-1389: Explain significance of the type-punning union. 2016-03-01 12:25:04 -08:00
Michael Jumper
76e3b2ebb8 GUAC-1389: Restore libguac's high-level convenience functions for audio streaming. 2016-03-01 12:25:04 -08:00
Michael Jumper
fbe4d53fb1 GUAC-1389: Refactor libguac to allow screen sharing. 2016-03-01 12:24:57 -08:00
Michael Jumper
c5fd72bb98 GUAC-1477: Ensure any fd_set used by guac_socket is always properly initialized. 2016-02-01 15:14:20 -08:00
Michael Jumper
858c4450eb GUAC-1434: Document undocumented function parameters. 2015-12-15 16:14:15 -08:00
Michael Jumper
3e69bc51e7 GUAC-1392: Update libtool version (libguac API has changed and is not 100% compatible with 0.9.8 or older). 2015-12-15 13:11:16 -08:00
Michael Jumper
c7c4010306 GUAC-1425: Use proper enum constant for WebPConfigPreset(). 2015-12-09 13:44:54 -08:00
Michael Jumper
364987b159 GUAC-1374: The keep alive ping is disabled by default. 2015-10-19 11:55:18 -07:00
Michael Jumper
a1c1fa104b GUAC-1354: Remove duration from video instruction. 2015-10-18 22:08:45 -07:00
James Muehlner
6a7b397110 Merge pull request #88 from glyptodon/copy-mimetypes
GUAC-1305: Copy mimetypes - do not just point instruction storage
2015-10-02 23:47:34 -07:00
Michael Jumper
e7ab5b50ab GUAC-1354: Remove old Ogg encoder. 2015-10-02 17:16:47 -07:00
Michael Jumper
7cf2005f5b GUAC-1354: Replace WAVE encoder with raw PCM encoder. Partially migrate to new audio streaming (Ogg not yet migrated). 2015-10-02 17:16:47 -07:00
Michael Jumper
9a3a1bdcde GUAC-1305: Mimetype pointers need not be const. 2015-09-24 12:45:07 -07:00
Michael Jumper
1211c366bf GUAC-1305: Support lossless WebP within encoder. 2015-09-22 12:17:26 -07:00
Michael Jumper
3597a20890 GUAC-1305: Clean up WebP encoder. 2015-09-20 21:06:46 -07:00
Michael Jumper
be64fd23c7 GUAC-1305: Add functions for checking WebP support and streaming WebP images. 2015-09-20 18:53:19 -07:00
Frode Langelo
42dba743eb GUAC-1305: Add support for WebP encoded images. Added optional dependency on libwebp. 2015-09-20 18:12:41 -07:00
Michael Jumper
c57abf3411 GUAC-1305: Add image mimetypes to Guacamole protocol handshake. 2015-09-20 16:15:13 -07:00
Michael Jumper
037f5bc514 GUAC-1280: Bump version numbers to 0.9.8. Update libtool versioning. 2015-09-04 13:30:51 -07:00
Michael Jumper
3d888c2eb5 GUAC-240: Byte order of pixels is BGR, not BRG. 2015-09-04 13:01:06 -07:00
Michael Jumper
08cadba16d GUAC-240: Remove guac_protocol_send_png() and guac_protocol_send_jpeg(). 2015-09-04 12:59:00 -07:00
Michael Jumper
59f440209c GUAC-240: Add function for streaming JPEG images via img instruction. 2015-09-04 12:58:47 -07:00
Michael Jumper
7aff3a257a GUAC-240: Move JPEG encoder to own file, writing directly to an img stream. 2015-09-04 12:58:39 -07:00
Michael Jumper
f79c661192 GUAC-240: Add function for streaming PNG images via img instruction. Use for surface. 2015-09-04 12:58:29 -07:00
Michael Jumper
8f2d6f2975 GUAC-240: Force flush at end of PNG write. 2015-09-04 12:58:22 -07:00
Michael Jumper
364d2842ab GUAC-240: Move PNG encoder to own file, writing directly to an img stream. 2015-09-04 12:58:05 -07:00
Michael Jumper
7bb798e40b GUAC-1285: Implement jpeg_mem_dest() for platforms that lack it. 2015-08-07 17:39:10 +00:00
Michael Jumper
a52b285f45 GUAC-240: Fix typo - should be JPEG, not JOEG. 2015-08-05 22:02:54 -07:00
Frode Langelo
240867a432 GUAC-240: Make JPEG quality a parameter to methods. Reorder JPEG_LIBS in LDFLAGS 2015-08-05 15:16:27 -07:00
Frode Langelo
c27e2997dd GUAC-240: Implement support for JPEG server protocol and image compression. 2015-08-05 15:16:26 -07:00
Michael Jumper
c199cfc8d7 GUAC-1171: Adopt cleaner style for Makefile.am. 2015-07-08 15:39:25 -07:00
Michael Jumper
60b3386733 GUAC-1172: Add constants for the root object name and the mimetype of a stream index. 2015-06-20 16:07:55 -07:00
Michael Jumper
9321312fce GUAC-1172: Add missing guac_client_alloc_object() and guac_client_free_object() definitions to client.h. 2015-06-20 12:57:23 -07:00
Michael Jumper
95ede7a91d GUAC-1172: Add object alloc/free. Add object index pool. 2015-06-19 14:41:25 -07:00
Michael Jumper
6e3a12b604 GUAC-1172: Implement filesystem, body, and undefine instructions. 2015-06-19 14:35:30 -07:00
Michael Jumper
f7e6deeaf4 GUAC-1172: Add instruction handlers and storage for Guacamole protocol objects. 2015-06-19 14:12:27 -07:00
Michael Jumper
ce6050b72a GUAC-1172: Fix indentation within libguac Makefile.am. 2015-06-19 13:51:52 -07:00
Michael Jumper
065e0fe462 GUAC-938: Bump version numbers for 0.9.4. 2015-01-06 15:23:01 -08:00
Michael Jumper
eff4644a00 GUAC-888: Init socket last_write_timestamp during alloc, otherwise keep-alive math fails until data has been written, which may result in the keep-alive never being sent. 2014-11-22 17:23:01 -08:00
Michael Jumper
6081ce6fa4 GUAC-911: Greatly increase available values for guac_error. Remove use of guac_error by non-library code. 2014-11-09 22:59:53 -08:00
Michael Jumper
614ba62980 GUAC-911: Removing use of logging from libguac. 2014-11-09 20:32:00 -08:00
Michael Jumper
f71067b024 GUAC-911: Reduce available log levels to ERROR, WARNING, INFO, and DEBUG. 2014-11-08 20:19:12 -08:00
Michael Jumper
431fd2de6f GUAC-911: Add log levels. Refactor guac_client_log_*() into guac_client_log(). 2014-11-07 16:32:19 -08:00
Michael Jumper
6dc35bcbad GUAC-855: Bump version to 0.9.3. 2014-09-19 11:28:34 -07:00
Felipe Weckx
405140cc8f GUAC-775 initialize stream handlers 2014-08-04 12:58:10 -07:00
Michael Jumper
c37e274977 GUAC-772: Bump version numbers to 0.9.2. 2014-07-21 13:32:09 -07:00
Michael Jumper
dfafd021cf GUAC-762: Check for ossp/uuid.h vs uuid.h. 2014-07-02 13:33:47 -07:00
Michael Jumper
86a59c43b3 GUAC-744: Send ready instruction after guac_client_init. 2014-06-26 15:23:00 -07:00
Michael Jumper
a44539b108 GUAC-744: Generate and store connection ID within guac_client. 2014-06-26 15:09:44 -07:00
Michael Jumper
9c475c3a68 GUAC-730: Fix headers for libguac. 2014-06-10 16:54:08 -07:00
Michael Jumper
e98d1ad79c GUAC-681: Bump version numbers to 0.9.1. 2014-05-22 12:27:48 -07:00
Michael Jumper
4d48dc384b GUAC-622: Do not log a pointless error every time the client disconnects properly. Just stop the client - we have a function for that now. 2014-04-14 12:20:08 -07:00
Michael Jumper
15dc035db1 GUAC-597: Remove unnecessary dlopen() test, add automatically generated dlopen() test result to Makefile.am. 2014-04-11 13:48:06 -07:00
Michael Jumper
26147afff0 GUAC-613: Fix header annotation in Doxygen comment in pool-types.h (wrong filename). 2014-04-10 15:54:02 -07:00
Michael Jumper
1dd2982f06 GUAC-611: Fix initialization of stream. 2014-04-09 22:13:49 -07:00
Michael Jumper
78b4ad56a1 GUAC-611: Add missing headers. 2014-04-09 19:09:41 -07:00
Michael Jumper
205f85dafd GUAC-611: Add per-stream handlers for ack/blob/end. Simplify ack/blob/end contents. Reorganize headers to eliminate circular dependencies. 2014-04-09 18:42:29 -07:00
Michael Jumper
85cde821a4 GUAC-608: Change semantics of clipboard instruction within libguac. 2014-04-07 17:08:16 -07:00
Michael Jumper
60d4e90c4b GUAC-569: Bump version numbers of guacamole-server components to 0.9.0. Update libtool version info for libguac. 2014-03-25 11:08:36 -07:00
Michael Jumper
d0dadf6a9c GUAC-556: Add guac_client_abort() function for convenience. 2014-03-21 19:47:19 -07:00
Michael Jumper
fdf2036cfe GUAC-548: Migrate to new error codes throughout protocol support. 2014-03-18 12:26:01 -07:00
Michael Jumper
3105cfbb48 GUAC-548: Rename and expand error codes. 2014-03-18 12:25:19 -07:00
Michael Jumper
d0d34a63b9 Implement pipe instruction and handlers. 2014-02-28 18:46:09 -08:00
Michael Jumper
8bf6f47b7e Add log instruction, for inserting debug information into the protocol stream. 2014-01-19 16:59:52 -08:00
Michael Jumper
442ed427a0 Clean up includes, clean up build. 2014-01-01 14:52:01 -08:00
Michael Jumper
0303c4e24b Relicense everything (except French keymap) as MIT. Status of French keymap is TBD. 2014-01-01 14:46:18 -08:00
Michael Jumper
ee1731cf9b Add resolution member to client info struct. Interpret new third parameter for screen size. 2013-12-27 00:07:17 -08:00
Michael Jumper
8ee92c0e1c Track number of active pool integers. Track output streams. 2013-10-28 09:11:45 -07:00
Michael Jumper
271f7fbb2f Add ack instruction handler. 2013-10-27 19:53:34 -07:00
Michael Jumper
3cf001116b Migrate to ack, remove abort. 2013-10-15 11:23:07 -07:00
Michael Jumper
b88749aedd Store data alongside streams. Validate stream indices and close state. 2013-10-10 14:47:12 -07:00
Michael Jumper
6ce71aa160 Send error responses via abort. 2013-10-10 14:47:12 -07:00
Michael Jumper
cec58edef3 Add abort instruction. Add status codes to abort and error. 2013-10-10 14:47:12 -07:00
Michael Jumper
eac99e0ce1 Add support for keep-alive thread. 2013-10-09 15:57:16 -07:00
Michael Jumper
4ebafa0482 Add support for NOP. 2013-10-09 11:54:33 -07:00
Michael Jumper
8a8ad23312 Do not restart parse - just shift everything as necessary. 2013-10-03 17:45:31 -07:00
Michael Jumper
ef8a9a29e8 Allow continuous parsing of length, rather than restarting if unfinished. 2013-10-03 17:35:00 -07:00
Michael Jumper
9910bedb4b If length parse fails, return need for more data. 2013-10-03 17:34:54 -07:00
Michael Jumper
e7c81cd9b3 Shift buffer to gain space if necessary. 2013-10-03 16:48:01 -07:00
Michael Jumper
e66a64be26 Handle Unicode characters in input. 2013-10-03 15:38:22 -07:00
Michael Jumper
1915b107ea Fully init allocated instructions. 2013-10-02 11:42:08 -07:00
Michael Jumper
0a09ed21fa Use simpler pointer arithmetic to determine buffer regions for reading and parsing. 2013-10-02 11:10:21 -07:00
Michael Jumper
1a598db7a1 Partial re-implementation of parse. 2013-10-01 23:21:49 -07:00
Michael Jumper
1128038d0f Implement rest of parser. 2013-10-01 20:57:54 -07:00
Michael Jumper
4485771df9 Implement length parse. 2013-10-01 20:23:20 -07:00
Michael Jumper
81768daba9 Stub out independent instruction parser. 2013-10-01 18:06:19 -07:00
Michael Jumper
fb105b2047 Handle blob properly (decode base64). 2013-09-27 15:56:22 -07:00
Michael Jumper
30ec019512 Implement base64 decoder. 2013-09-27 15:39:44 -07:00
Michael Jumper
321e24c417 Add actual handlers for file/blob/end. 2013-09-26 22:49:45 -07:00
Michael Jumper
a6bd9200e1 Add stubs for file/blob/end handling. 2013-09-26 22:27:18 -07:00
Michael Jumper
e1798ee3db Restore channel parameter. Abuse stream index as channel index. 2013-09-24 12:13:38 -07:00
Michael Jumper
fbdb6876d9 Migrate to libguac audio. Migrate to improved stream protocol. 2013-09-24 12:01:02 -07:00
Michael Jumper
6e3bbe38d5 Make audio buffers const. 2013-08-09 16:52:25 -07:00