/* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (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.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ #ifndef _SSH_GUAC_SFTP_H #define _SSH_GUAC_SFTP_H #include "config.h" #include #include #include /** * Handles an incoming stream from a Guacamole "file" instruction, saving the * contents of that stream to the file having the given name within the * upload directory set by guac_sftp_set_upload_path(). */ guac_user_file_handler guac_sftp_file_handler; /** * Initiates an SFTP file download to the user via the Guacamole "file" * instruction. The download will be automatically monitored and continued * after this function terminates in response to "ack" instructions received by * the client. * * @param client * The client associated with the terminal emulator receiving the file. * * @param filename * The filename of the file to download, relative to the given filesystem. * * @return * The file stream created for the file download, already configured to * properly handle "ack" responses, etc. from the client. */ guac_stream* guac_sftp_download_file(guac_client* client, char* filename); /** * Sets the destination directory for future uploads submitted via Guacamole * "file" instruction. This function has no bearing on the destination * directories of files uploaded with "put" instructions. * * @param client * The client setting the upload path. * * @param path * The path to use for future uploads submitted via "file" instruction. */ void guac_sftp_set_upload_path(guac_client* client, char* path); #endif