|
libssh
0.7.2
|
00001 /* 00002 * This file is part of the SSH Library 00003 * 00004 * Copyright (c) 2009 by Aris Adamantiadis 00005 * 00006 * This library is free software; you can redistribute it and/or 00007 * modify it under the terms of the GNU Lesser General Public 00008 * License as published by the Free Software Foundation; either 00009 * version 2.1 of the License, or (at your option) any later version. 00010 * 00011 * This library is distributed in the hope that it will be useful, 00012 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00013 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00014 * Lesser General Public License for more details. 00015 * 00016 * You should have received a copy of the GNU Lesser General Public 00017 * License along with this library; if not, write to the Free Software 00018 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 00019 */ 00020 00021 #ifndef MESSAGES_H_ 00022 #define MESSAGES_H_ 00023 00024 #include "config.h" 00025 00026 struct ssh_auth_request { 00027 char *username; 00028 int method; 00029 char *password; 00030 struct ssh_key_struct *pubkey; 00031 char signature_state; 00032 char kbdint_response; 00033 }; 00034 00035 struct ssh_channel_request_open { 00036 int type; 00037 uint32_t sender; 00038 uint32_t window; 00039 uint32_t packet_size; 00040 char *originator; 00041 uint16_t originator_port; 00042 char *destination; 00043 uint16_t destination_port; 00044 }; 00045 00046 struct ssh_service_request { 00047 char *service; 00048 }; 00049 00050 struct ssh_global_request { 00051 int type; 00052 uint8_t want_reply; 00053 char *bind_address; 00054 uint16_t bind_port; 00055 }; 00056 00057 struct ssh_channel_request { 00058 int type; 00059 ssh_channel channel; 00060 uint8_t want_reply; 00061 /* pty-req type specifics */ 00062 char *TERM; 00063 uint32_t width; 00064 uint32_t height; 00065 uint32_t pxwidth; 00066 uint32_t pxheight; 00067 ssh_string modes; 00068 00069 /* env type request */ 00070 char *var_name; 00071 char *var_value; 00072 /* exec type request */ 00073 char *command; 00074 /* subsystem */ 00075 char *subsystem; 00076 00077 /* X11 */ 00078 uint8_t x11_single_connection; 00079 char *x11_auth_protocol; 00080 char *x11_auth_cookie; 00081 uint32_t x11_screen_number; 00082 }; 00083 00084 struct ssh_message_struct { 00085 ssh_session session; 00086 int type; 00087 struct ssh_auth_request auth_request; 00088 struct ssh_channel_request_open channel_request_open; 00089 struct ssh_channel_request channel_request; 00090 struct ssh_service_request service_request; 00091 struct ssh_global_request global_request; 00092 }; 00093 00094 SSH_PACKET_CALLBACK(ssh_packet_channel_open); 00095 SSH_PACKET_CALLBACK(ssh_packet_global_request); 00096 00097 #ifdef WITH_SERVER 00098 SSH_PACKET_CALLBACK(ssh_packet_service_request); 00099 SSH_PACKET_CALLBACK(ssh_packet_userauth_request); 00100 #endif /* WITH_SERVER */ 00101 00102 int ssh_message_handle_channel_request(ssh_session session, ssh_channel channel, ssh_buffer packet, 00103 const char *request, uint8_t want_reply); 00104 void ssh_message_queue(ssh_session session, ssh_message message); 00105 ssh_message ssh_message_pop_head(ssh_session session); 00106 int ssh_message_channel_request_open_reply_accept_channel(ssh_message msg, ssh_channel chan); 00107 00108 #endif /* MESSAGES_H_ */
1.7.5.1