diff options
Diffstat (limited to 'include/libssh')
-rw-r--r-- | include/libssh/priv.h | 8 | ||||
-rw-r--r-- | include/libssh/server.h | 3 |
2 files changed, 8 insertions, 3 deletions
diff --git a/include/libssh/priv.h b/include/libssh/priv.h index d0d0ea2d..dab9aa73 100644 --- a/include/libssh/priv.h +++ b/include/libssh/priv.h @@ -324,6 +324,8 @@ struct keys_struct { const char *publickey; }; +struct ssh_message; + struct ssh_session { struct error_struct error; struct socket *socket; @@ -386,7 +388,8 @@ struct ssh_session { /* auths accepted by server */ int auth_methods; int hostkeys; /* contains type of host key wanted by client, in server impl */ - struct ssh_message *ssh_message; /* ssh message */ + struct ssh_list *ssh_message_list; /* list of delayed SSH messages */ + int (*ssh_message_callback)( struct ssh_session *session,struct ssh_message *msg); int log_verbosity; /*cached copy of the option structure */ int log_indent; /* indentation level in enter_function logs */ }; @@ -737,7 +740,7 @@ const void *_ssh_list_get_head(struct ssh_list *list); * @return the first element of the list */ #define ssh_list_get_head(type, ssh_list)\ - ((type)_ssh_list_head(ssh_list)) + ((type)_ssh_list_get_head(ssh_list)) /* channels1.c */ @@ -760,6 +763,7 @@ int match_hostname(const char *host, const char *pattern, unsigned int len); /* messages.c */ void message_handle(SSH_SESSION *session, u32 type); +int ssh_execute_message_callbacks(SSH_SESSION *session); /* log.c */ diff --git a/include/libssh/server.h b/include/libssh/server.h index 495a8c8f..915edd8d 100644 --- a/include/libssh/server.h +++ b/include/libssh/server.h @@ -173,7 +173,8 @@ int ssh_message_channel_request_reply_success(SSH_MESSAGE *msg); int ssh_message_service_reply_success(SSH_MESSAGE *msg); char *ssh_message_service_service(SSH_MESSAGE *msg); - +void ssh_set_message_callback(SSH_SESSION *session, + int(*ssh_message_callback)(struct ssh_session *session, struct ssh_message *msg)); #ifdef __cplusplus } #endif /* __cplusplus */ |