diff --git a/protocols/ssh/Makefile.am b/protocols/ssh/Makefile.am index de2a9e16..850b3a25 100644 --- a/protocols/ssh/Makefile.am +++ b/protocols/ssh/Makefile.am @@ -64,6 +64,7 @@ noinst_HEADERS = \ include/display.h \ include/guac_handlers.h \ include/ibar.h \ + include/libssh_compat.h \ include/ssh_client.h \ include/terminal.h \ include/terminal_handlers.h \ diff --git a/protocols/ssh/configure.in b/protocols/ssh/configure.in index e64be7f5..65a164af 100644 --- a/protocols/ssh/configure.in +++ b/protocols/ssh/configure.in @@ -51,6 +51,11 @@ AC_CHECK_LIB([pthread], [pthread_create]) PKG_CHECK_MODULES([PANGO], pango); PKG_CHECK_MODULES([PANGOCAIRO], pangocairo); +# Check for SSH functions +AC_CHECK_FUNC(ssh_channel_close, AC_DEFINE(HAVE_SSH_CHANNEL_CLOSE)) +AC_CHECK_FUNC(ssh_channel_send_eof, AC_DEFINE(HAVE_SSH_CHANNEL_SEND_EOF)) +AC_CHECK_FUNC(ssh_channel_free, AC_DEFINE(HAVE_SSH_CHANNEL_FREE)) + # Checks for header files. AC_CHECK_HEADERS([guacamole/client.h guacamole/guacio.h guacamole/protocol.h]) diff --git a/protocols/ssh/include/libssh_compat.h b/protocols/ssh/include/libssh_compat.h new file mode 100644 index 00000000..82205d7a --- /dev/null +++ b/protocols/ssh/include/libssh_compat.h @@ -0,0 +1,57 @@ + +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1/GPL 2.0/LGPL 2.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is libguac-client-ssh. + * + * The Initial Developer of the Original Code is + * Michael Jumper. + * Portions created by the Initial Developer are Copyright (C) 2011 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * + * Alternatively, the contents of this file may be used under the terms of + * either the GNU General Public License Version 2 or later (the "GPL"), or + * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), + * in which case the provisions of the GPL or the LGPL are applicable instead + * of those above. If you wish to allow use of your version of this file only + * under the terms of either the GPL or the LGPL, and not to allow others to + * use your version of this file under the terms of the MPL, indicate your + * decision by deleting the provisions above and replace them with the notice + * and other provisions required by the GPL or the LGPL. If you do not delete + * the provisions above, a recipient may use your version of this file under + * the terms of any one of the MPL, the GPL or the LGPL. + * + * ***** END LICENSE BLOCK ***** */ + +#ifndef _SSH_GUAC_LIBSSH_COMPAT_H +#define _SSH_GUAC_LIBSSH_COMPAT_H + +/* Define ssh_channel_close() if undefined */ +#ifndef HAVE_SSH_CHANNEL_CLOSE +#define ssh_channel_close channel_close +#endif + +/* Define ssh_channel_send_eof() if undefined */ +#ifndef HAVE_SSH_CHANNEL_SEND_EOF +#define ssh_channel_send_eof channel_send_eof +#endif + +/* Define ssh_channel_free() if undefined */ +#ifndef HAVE_SSH_CHANNEL_FREE +#define ssh_channel_free channel_free +#endif + +#endif + diff --git a/protocols/ssh/src/guac_handlers.c b/protocols/ssh/src/guac_handlers.c index 639dffb0..50778afc 100644 --- a/protocols/ssh/src/guac_handlers.c +++ b/protocols/ssh/src/guac_handlers.c @@ -50,6 +50,7 @@ #include #include +#include "libssh_compat.h" #include "guac_handlers.h" #include "client.h"