libssh  0.10.6
The SSH library
messages.h
1 /*
2  * This file is part of the SSH Library
3  *
4  * Copyright (c) 2009 by Aris Adamantiadis
5  *
6  * This library is free software; you can redistribute it and/or
7  * modify it under the terms of the GNU Lesser General Public
8  * License as published by the Free Software Foundation; either
9  * version 2.1 of the License, or (at your option) any later version.
10  *
11  * This library is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14  * Lesser General Public License for more details.
15  *
16  * You should have received a copy of the GNU Lesser General Public
17  * License along with this library; if not, write to the Free Software
18  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
19  */
20 
21 #ifndef MESSAGES_H_
22 #define MESSAGES_H_
23 
24 #include "config.h"
25 
27  char *username;
28  int method;
29  char *password;
30  struct ssh_key_struct *pubkey;
31  char *sigtype;
32  enum ssh_publickey_state_e signature_state;
33  char kbdint_response;
34 };
35 
37  int type;
38  uint32_t sender;
39  uint32_t window;
40  uint32_t packet_size;
41  char *originator;
42  uint16_t originator_port;
43  char *destination;
44  uint16_t destination_port;
45 };
46 
48  char *service;
49 };
50 
52  int type;
53  uint8_t want_reply;
54  char *bind_address;
55  uint16_t bind_port;
56 };
57 
59  int type;
60  ssh_channel channel;
61  uint8_t want_reply;
62  /* pty-req type specifics */
63  char *TERM;
64  uint32_t width;
65  uint32_t height;
66  uint32_t pxwidth;
67  uint32_t pxheight;
68  ssh_string modes;
69 
70  /* env type request */
71  char *var_name;
72  char *var_value;
73  /* exec type request */
74  char *command;
75  /* subsystem */
76  char *subsystem;
77 
78  /* X11 */
79  uint8_t x11_single_connection;
80  char *x11_auth_protocol;
81  char *x11_auth_cookie;
82  uint32_t x11_screen_number;
83 };
84 
86  ssh_session session;
87  int type;
88  struct ssh_auth_request auth_request;
89  struct ssh_channel_request_open channel_request_open;
90  struct ssh_channel_request channel_request;
91  struct ssh_service_request service_request;
92  struct ssh_global_request global_request;
93 };
94 
95 #ifdef __cplusplus
96 extern "C" {
97 #endif
98 
99 SSH_PACKET_CALLBACK(ssh_packet_channel_open);
100 SSH_PACKET_CALLBACK(ssh_packet_global_request);
101 
102 #ifdef WITH_SERVER
103 SSH_PACKET_CALLBACK(ssh_packet_service_request);
104 SSH_PACKET_CALLBACK(ssh_packet_userauth_request);
105 #endif /* WITH_SERVER */
106 
107 int ssh_message_handle_channel_request(ssh_session session, ssh_channel channel, ssh_buffer packet,
108  const char *request, uint8_t want_reply);
109 ssh_message ssh_message_pop_head(ssh_session session);
110 
111 #ifdef __cplusplus
112 }
113 #endif
114 
115 #endif /* MESSAGES_H_ */
ssh_channel_struct
Definition: channels.h:66
ssh_key_struct
Definition: pki.h:54
SSH_PACKET_CALLBACK
#define SSH_PACKET_CALLBACK(name)
This macro declares a packet callback handler.
Definition: callbacks.h:532
ssh_service_request
Definition: messages.h:47
ssh_message_struct
Definition: messages.h:85
ssh_buffer_struct
Definition: buffer.c:48
ssh_session_struct
Definition: session.h:127
ssh_channel_request_open
Definition: messages.h:36
ssh_auth_request
Definition: messages.h:26
ssh_string_struct
Definition: string.h:33
ssh_global_request
Definition: messages.h:51
ssh_channel_request
Definition: messages.h:58