Commit Graph

1243 Commits

Author SHA1 Message Date
Michael Jumper
8ee92c0e1c Track number of active pool integers. Track output streams. 2013-10-28 09:11:45 -07:00
Michael Jumper
50fbd5dabb Add stub ack handler. Call SFTP functions when download code received. 2013-10-28 08:40:19 -07:00
Michael Jumper
0c86f52ed5 Move SFTP functions to own file. Stub out download function. 2013-10-27 23:16:49 -07:00
Michael Jumper
273c6a8503 Stub out guac OSC handling. 2013-10-27 23:16:49 -07:00
Michael Jumper
4381485051 Validate filenames. 2013-10-27 23:16:49 -07:00
Michael Jumper
f133cb4caa Fix permissions of upload. 2013-10-27 23:16:49 -07:00
Michael Jumper
b9d9a9d324 Move SFTP to own SSH session - does not work when combined with terminal session. 2013-10-27 23:16:48 -07:00
Michael Jumper
b7e1e898c9 Initial stab at SFTP file upload. 2013-10-27 23:16:48 -07:00
Michael Jumper
02fece0a29 Add enable-sftp option, init/free SFTP as needed. 2013-10-27 23:16:48 -07:00
Michael Jumper
271f7fbb2f Add ack instruction handler. 2013-10-27 19:53:34 -07:00
Michael Jumper
3a28534232 Ticket #429: Detect listenForIncomingConnectionsNoFork() function, conditionally compile listen support. 2013-10-25 17:49:22 -07:00
Michael Jumper
ffb64e856f Ticket #432: Handle encodings parameter. 2013-10-25 17:12:17 -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
72d29f18fd Fix build - unused variable. 2013-10-10 10:26:11 -07:00
Michael Jumper
926b681e38 No need for keep-alive in output thread anymore. 2013-10-09 16:09:01 -07:00
Michael Jumper
bc3c8a31c5 Require keep-alive on VNC protocol support socket. 2013-10-09 16:01:57 -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
daa10be990 Remove old use of blob. Use new file semantics. 2013-09-24 12:58:58 -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
157828ef18 Implement listen mode (ticket #25). 2013-09-19 14:41:28 -07:00
Michael Jumper
23e4e43722 Round screen width down, rather than up. 2013-09-03 14:09:33 -07:00
Michael Jumper
cf05203992 Restore parsing of color depth 2013-08-28 16:39:23 -07:00
Michael Jumper
2216d23bee Implement connection retry. 2013-08-28 16:39:23 -07:00
James Muehlner
49b3965018 Ticket #33: Fixed contributor lines in license block. 2013-08-27 10:36:30 -07:00
James Muehlner
5516fc395b Ticket #33: Fixed handling of cursor. 2013-08-27 10:36:30 -07:00
James Muehlner
775668ad37 Ticket #33: Allow parameter for setting remote or local cursor. 2013-08-27 10:36:30 -07:00
Michael Jumper
c6a6c5b681 Add ifdef around pulse-specific code. 2013-08-27 09:47:45 -07:00
Michael Jumper
73df645ce6 Change RDP default security to RDP. 2013-08-26 21:26:38 -07:00
Michael Jumper
9d47ae0a50 Add missing winpr-wtypes.h header. 2013-08-26 17:07:46 -07:00
Michael Jumper
9903d3d0d9 Switch from enable-auth to disable-auth, enabling auth by default. Use ANY security mode by default. Warn if authentication is required but credentials were not given. 2013-08-25 11:35:31 -07:00
Michael Jumper
da016d5153 Log chosen security method. 2013-08-24 12:37:43 -07:00
Michael Jumper
ac2bf524d9 Shorten parameter names, combine enable-tls and enable-nla into a single security parameter. 2013-08-24 12:30:38 -07:00
Michael Jumper
d2cdb055f8 Add options for controlling TLS and NLA security, as well as authentication and bad certs. 2013-08-24 01:17:27 -07:00
Michael Jumper
21b704690b Handle NULL conditions of display and terminal allocation. 2013-08-23 14:10:51 -07:00
Michael Jumper
92c42ca959 Add syncs where we're expecting guac_socket_flush to flush a frame. 2013-08-22 17:42:59 -07:00
Michael Jumper
44d0e08a3c Drop frame timeout to 0ms 2013-08-22 15:27:01 -07:00
Michael Jumper
1f0ae7b4ba Do not use pExtendedData beyond connect handler. NULL out pExtendedData once done. 2013-08-22 14:52:09 -07:00
Michael Jumper
1887102505 Add frame timeout. Reduce frame max duration to 40ms. 2013-08-20 21:13:26 -07:00
Michael Jumper
280622c027 Bump max frame duration to 80 ms (12.5 FPS). 2013-08-20 11:38:12 -07:00
Michael Jumper
21420aaf5c Stay in handle_messages for 30ms max (per frame). 2013-08-20 11:32:47 -07:00
Michael Jumper
dfe454f484 Adjust buffer size to around 48K, rename and reuse old buffer size macro accordingly. 2013-08-10 12:30:46 -07:00
Michael Jumper
3bb4c8fec5 Increase buffer size to around 24K. 2013-08-10 01:50:42 -07:00
Michael Jumper
5df7f34ee8 Add constants. Tweak latency. 2013-08-09 18:21:32 -07:00
Michael Jumper
fa3dcea44b Working sound 2013-08-09 17:01:06 -07:00
Michael Jumper
6e3bbe38d5 Make audio buffers const. 2013-08-09 16:52:25 -07:00
Michael Jumper
bfbebe3c16 Set stream options, force channel format. 2013-08-09 16:46:23 -07:00
Michael Jumper
83a575d7b9 Actually receive data. 2013-08-09 16:43:30 -07:00
Michael Jumper
8bbd28d9c9 Handler server and sink info. 2013-08-09 16:04:58 -07:00
Michael Jumper
3e1744a566 Initialize PulseAudio properly. Handle state changes. 2013-08-09 15:47:59 -07:00
Michael Jumper
88f62df0f3 Switch to normal PulseAudio API. 2013-08-09 15:11:31 -07:00
Michael Jumper
6cc6808eb7 Actually connect and read. 2013-08-09 13:03:01 -07:00
Michael Jumper
832e4d3d16 Add stub PulseAudio handling code, replace old usage with new read thread. 2013-08-09 11:58:29 -07:00
Michael Jumper
daa7823aed Remove old PulseAudio handling code. 2013-08-09 11:58:03 -07:00
Michael Jumper
27d56df073 Removal of more buffer-related code. 2013-08-09 11:18:47 -07:00
Michael Jumper
ec73bc2e12 Remove buffer functions from PA code. 2013-08-09 11:18:46 -07:00
Michael Jumper
b681e0d9f1 Remove audio args. 2013-08-09 11:18:46 -07:00
Michael Jumper
7146ba5792 Remove buffer from client. 2013-08-09 11:18:46 -07:00
Michael Jumper
0870eaa32c Remove buffer and queue. 2013-08-09 11:18:46 -07:00
Michael Jumper
3d2427d441 Fix compilation of PulseAudio handlers. 2013-08-09 10:48:41 -07:00
Michael Jumper
0b743fa68b Add missing wav_encoder.c in Makefile.am 2013-08-09 10:48:41 -07:00
Michael Jumper
2a18630718 Move files to proper location. Get rid of unnecessary lock. Remove wrongly-committed file. 2013-08-09 10:48:41 -07:00
Michael Jumper
9f167cc26a Add documentation, fix namespace. 2013-08-09 10:48:40 -07:00
Michael Jumper
58148884a1 Auto-detect audio encoding if not specified. 2013-08-09 10:48:40 -07:00
Michael Jumper
8bd70053be Initial support for audio in libguac. 2013-08-09 10:48:40 -07:00
Michael Jumper
8e732ed2ab Conditionally compile audio support. 2013-08-09 10:48:00 -07:00
Sion Chaudhuri
e30c769728 Fixing newline issues on files modified to support audio 2013-08-09 10:48:00 -07:00
Sion Chaudhuri
a9957e7926 Adding lock around send cursor 2013-08-09 10:48:00 -07:00
Sion Chaudhuri
bbe552e847 Adding locks around guac send instructions to resolve client disconnect issue 2013-08-09 10:48:00 -07:00
Sion Chaudhuri
ea8feac587 Free up resources allocated for audio when client connection is closed 2013-08-09 10:48:00 -07:00
Sion Chaudhuri
b63e14c274 Trigger audio read and send threads if audio is enabled by client 2013-08-09 10:48:00 -07:00
Sion Chaudhuri
57c0f7ed04 Added support for audio files in configure and make 2013-08-09 10:48:00 -07:00
Michael Jumper
b6581e98d7 Implement read. 2013-08-05 20:15:41 -07:00
Michael Jumper
286f9c75b9 Byte reads should be unsigned. 2013-08-05 20:12:38 -07:00
Michael Jumper
3137f54178 Add unicode.h to distribution. Add actual tests for old Unicode functions. 2013-08-05 15:05:52 -07:00
Michael Jumper
070f199916 Implement additional UTF-8 read/write functions for convenience. 2013-08-05 14:00:16 -07:00
Michael Jumper
8099a57fc6 Switch to VNC-style wait. 2013-07-28 19:43:20 -07:00
Michael Jumper
acf5abe355 Stay in handle_messages as long as possible for VNC as well. 2013-07-28 19:43:20 -07:00
Michael Jumper
4b6aa01517 Unlock lock properly. 2013-07-28 19:43:20 -07:00
Michael Jumper
ce759ccbe6 Flush only automatically. Stay in handle_messages as long as data is available. 2013-07-28 19:43:20 -07:00
Michael Jumper
a52a13584b Initialize devices_registered. 2013-07-24 23:51:49 -07:00
Michael Jumper
1e521a1696 Call free handler on devices. Only add printer if enabled. 2013-07-24 22:49:24 -07:00
Michael Jumper
6b4deb703a Finish dynamic device implementation. 2013-07-24 22:20:29 -07:00
Michael Jumper
d65a23349d Add announce handlers. 2013-07-24 18:28:20 -07:00
Michael Jumper
1138df74be Initial migration to dynamic device registration. 2013-07-24 15:52:46 -07:00
Michael Jumper
7661f465e5 Remove STUB, add notes. 2013-07-22 20:26:16 -07:00
Michael Jumper
9b9481d072 Push/pull settings properly before and after connect. 2013-07-22 20:26:16 -07:00
Michael Jumper
82f1fb2bad Fix plugin names - sound and printing were not loading properly. 2013-07-22 20:26:16 -07:00
Michael Jumper
9d2b0e1f95 FALSE should be false. 2013-07-22 20:26:15 -07:00
Michael Jumper
f9bd8eb22b Fix build on 1.0 again. 2013-07-22 20:26:15 -07:00
Michael Jumper
07538d1b10 Do not commit settings until actually set. 2013-07-22 20:26:15 -07:00
Michael Jumper
59e90b7c63 Implement settings. 2013-07-22 20:26:15 -07:00
Michael Jumper
ddeab9a435 Fix install path. Fix rdpdr plugin naming. 2013-07-22 20:26:15 -07:00
Michael Jumper
14fedacfc7 Finally working compile. 2013-07-22 20:26:15 -07:00
Michael Jumper
0e4dcff4f5 More fixes for cliprdr, fix color_depth. 2013-07-22 20:26:15 -07:00
Michael Jumper
3e9f551c4e Fix cliprdr portability handling. 2013-07-22 20:26:15 -07:00
Michael Jumper
f3f0900de9 Detect event interface, fix cliprdr. 2013-07-22 20:26:15 -07:00
Michael Jumper
c0f681066e Add test for change in type of rdpBitmap.Decompress. Fix cliprdr header. 2013-07-22 20:26:15 -07:00
Michael Jumper
daa1e18355 Check for addin registration headers and function, use if available. 2013-07-22 20:26:15 -07:00
Michael Jumper
c2fe48f00c Much more robust testing. Initial migration to own settings structure. 2013-07-22 20:26:15 -07:00
Michael Jumper
2b09098346 Fix erroneously uppercased TRUE value. 2013-07-22 20:26:15 -07:00
Michael Jumper
324d13853f Switch to UINT* and BOOL types. 2013-07-22 20:26:15 -07:00
Michael Jumper
9ad3b18f77 Fix build of RDPDR. 2013-07-22 20:26:15 -07:00
Michael Jumper
df01ba66ea Detect extension format. 2013-07-22 20:26:15 -07:00
Michael Jumper
450017a6bd Register add-in provider. 2013-07-22 20:26:15 -07:00
Michael Jumper
45b8d29a4f Check for interval_ms. 2013-07-22 20:26:15 -07:00
Michael Jumper
f43591068f Change plugin name to guacsnd, remove use of DEFINE_SVC_PLUGIN. 2013-07-22 20:26:14 -07:00
Michael Jumper
1bbf2b21d9 Add BYTE type. 2013-07-22 20:26:14 -07:00
Michael Jumper
aeea99a87f Detect types availability. 2013-07-22 20:26:14 -07:00
Michael Jumper
b72c99cea5 Move compat to generic, add winpr-stream.c. 2013-07-22 20:26:14 -07:00
Michael Jumper
da2bd88791 More migration and compatibility. 2013-07-22 20:26:14 -07:00
Michael Jumper
678d21cd36 More winpr compat, fix include test. 2013-07-22 20:26:14 -07:00
Michael Jumper
bdc5d862db Partial conversion to WinPR + compat. 2013-07-22 20:26:14 -07:00
Michael Jumper
873493a2de Remove use of xnew. 2013-07-22 20:26:14 -07:00
Michael Jumper
64b0ab84b5 Remove usage of xrealloc/xmalloc. 2013-07-22 20:26:14 -07:00
Michael Jumper
bffa28a7de Remove usage of xfree(). 2013-07-22 20:26:14 -07:00
Michael Jumper
7907b2f34a Remove now-unnecessary memory.h. 2013-07-22 20:26:14 -07:00
Michael Jumper
e049d35583 Clean up error handling. 2013-07-22 16:12:39 -07:00
Michael Jumper
98dd9d2c69 Remove unimplemented -A option. 2013-07-22 15:47:13 -07:00
Michael Jumper
9b89c2a3b5 Update documentation. 2013-07-22 15:45:40 -07:00
Michael Jumper
7b7227aefb Properly handle key and cert files. Better logging. 2013-07-22 15:42:11 -07:00
Michael Jumper
def887868a Add option for private key. 2013-07-22 14:49:28 -07:00
Michael Jumper
3140dbb20b Actually use SSL for I/O. 2013-07-22 14:24:37 -07:00
Michael Jumper
cdbb345d28 Fix usage instructions. 2013-07-22 13:39:37 -07:00
Michael Jumper
6792b65d4c Add options to guacd. Update docs. 2013-07-22 13:37:30 -07:00
Michael Jumper
bb74730629 Add stub SSL socket. 2013-07-21 20:10:37 -07:00
Michael Jumper
4a3a530fde Fix guac_rdp_clip_rect() handling of completely clipped rects. 2013-07-19 12:23:28 -07:00
Michael Jumper
c3bbf97d22 libdl is actually used by libguac, not guacd. 2013-07-08 18:52:30 -07:00
Michael Jumper
2b93deaac6 Do not unnecessarily link libraries. 2013-07-08 17:40:20 -07:00
Michael Jumper
0f609cb666 Test for VNC repeater support and cairo_format_stride_for_width(). 2013-07-08 13:03:04 -07:00
Michael Jumper
e6ec853edb Ticket #366: Restore --with-init-dir option for configure. 2013-07-08 10:35:56 -07:00
Michael Jumper
2d3cf15243 Ticket #365: Add missing PTHREAD_LIBS to guacd_LDFLAGS. 2013-07-07 15:03:30 -07:00
Michael Jumper
73b70ec072 Make audio streams threadsafe. 2013-07-07 00:23:18 -07:00
Michael Jumper
030eaec09e Remove unused print format option (require GhostScript). 2013-07-01 17:54:28 -07:00
Michael Jumper
54d3b160d7 Fix threading issues regarding flush DURING write not being blocked. Set process-shared attribute on mutexes in socket. 2013-07-01 15:03:47 -07:00
Michael Jumper
59b058be3d Ensure complete writes, define buffer size. 2013-07-01 15:03:47 -07:00
Michael Jumper
a08180acfe Remove unnecessary update lock, use threadsafe socket instead. 2013-07-01 15:03:46 -07:00
Michael Jumper
90697e35ba Use int instead of bool ... libraries sometimes redefine bool in headers. 2013-07-01 15:03:46 -07:00
Michael Jumper
976e3af24b Convert protocol functions to threadsafe versions. 2013-07-01 15:03:46 -07:00
Michael Jumper
51c00755ac Add optional locks to socket. 2013-07-01 15:03:46 -07:00
Michael Jumper
400920b3bb Convert PS to PDF using gs as filter. 2013-07-01 15:03:46 -07:00
Michael Jumper
62258c9278 Revert "Add libgs dependency, only compile guac_rdpdr if libgs found."
This reverts commit b77a7e0bffdcc44cc5488663d780c1a2c31ef781.
2013-07-01 15:03:46 -07:00
Michael Jumper
5bf67ce442 Change disable-printing to enable-printing. 2013-07-01 15:03:46 -07:00
Michael Jumper
ad050208b9 Add libgs dependency, only compile guac_rdpdr if libgs found. 2013-07-01 15:03:46 -07:00
Michael Jumper
2df35e6f2e Attempt to extract a good filename from the %%Title comment in the .ps 2013-07-01 15:03:46 -07:00
Michael Jumper
6c5525a162 Swap mimetype/filename parameters. 2013-07-01 15:03:46 -07:00
Michael Jumper
a8b5c9fc5b Swap mimetype/filename parameters. 2013-07-01 15:03:46 -07:00
Michael Jumper
8920bc0c76 Send printed document via blobs. 2013-07-01 15:03:46 -07:00
Michael Jumper
9e88ae4f60 Implement file/blob/end subprotocol. 2013-07-01 15:03:46 -07:00
Michael Jumper
06ef43bd2c Actually read print job data. 2013-07-01 15:03:46 -07:00
Michael Jumper
c07eb9c063 Send driver name as UTF-16 (apparently required, and ASCII flag is ignored). 2013-07-01 15:03:46 -07:00
Michael Jumper
dc1fc6132f Fix shifting of error codes. 2013-07-01 15:03:46 -07:00
Michael Jumper
4953f02b13 Do not send devices after confirmed ID - only after logon. 2013-07-01 15:03:46 -07:00
Michael Jumper
9aef54fe87 Seed random numbers. 2013-07-01 15:03:46 -07:00
Michael Jumper
933dec8602 Send printer device, handle errors. 2013-07-01 15:03:46 -07:00
Michael Jumper
8c8779937c Cleanup, add constants. 2013-07-01 15:03:46 -07:00
Michael Jumper
c066763ec4 Implement name request and client cap. Ignore server cap for now. 2013-07-01 15:03:45 -07:00
Michael Jumper
49711709a7 Stub most handlers, fix signedness, reply to server announce. 2013-07-01 15:03:45 -07:00
Michael Jumper
48c27d74ce Move message handlers to appropriate location. 2013-07-01 15:03:45 -07:00
Michael Jumper
f295b09987 Actually parse server announce, add defines for other packets and components. 2013-07-01 15:03:45 -07:00
Michael Jumper
11deb82bcb Associated client with RDPDR, add logging to stubs. 2013-07-01 15:03:45 -07:00
Michael Jumper
6d9ff1e5ee Add RDPDR plugin stub. Add namespace to existing RDPSND filenames. 2013-07-01 15:03:45 -07:00
James Muehlner
b94b84956b Ticket #241: Added server-side support for vnc repeaters. 2013-07-01 10:46:30 -07:00
Michael Jumper
bfe28460a7 Move __guac_rdp_clip_rect() to public guac_rdp_clip_rect(). Clip glyph draws. 2013-06-14 22:16:25 -07:00
Michael Jumper
d9a310292d Merge branch 'unstable' of git://github.com/glyptodon/guacamole-server into unstable 2013-06-13 23:41:02 -07:00
James Muehlner
227afb3793 Ticket #261: Handled NULL bitmaps in guac_rdp_bitmap_setsurface and guac_rdp_gdi_memblt functions. 2013-06-13 23:38:20 -07:00
Michael Jumper
96cc46313a Implement guac_socket_write(), fix constness. 2013-06-12 11:49:00 -07:00
Michael Jumper
602e0045b6 Substitute values properly, fix linking flags. 2013-06-11 22:41:23 -07:00
Michael Jumper
760506da3d Remove SPICE - will move to branch off unstable. 2013-06-06 10:24:21 -07:00
Michael Jumper
9d27b6cce9 Build wasn't working just because of trailing slash... 2013-06-05 15:58:22 -07:00
Michael Jumper
80688b2a2f Fix doxyfile, update .gitignore's 2013-06-05 14:33:43 -07:00
Michael Jumper
e9e2d628b6 Add remaining protocols, fix client.h in RDP. 2013-06-05 12:05:39 -07:00
Michael Jumper
1d3fa12747 Build guacd and libguac. 2013-06-05 11:50:48 -07:00
Michael Jumper
4c089caeb9 Massively reorganize source tree. 2013-06-05 11:00:28 -07:00