server: Fix compilation without WITH_SERVER
Этот коммит содержится в:
родитель
bf5e5eebd7
Коммит
ad92740dc3
@ -31,13 +31,14 @@ typedef struct ssh_gssapi_struct *ssh_gssapi;
|
||||
|
||||
#ifdef WITH_SERVER
|
||||
int ssh_gssapi_handle_userauth(ssh_session session, const char *user, uint32_t n_oid, ssh_string *oids);
|
||||
SSH_PACKET_CALLBACK(ssh_packet_userauth_gssapi_token);
|
||||
SSH_PACKET_CALLBACK(ssh_packet_userauth_gssapi_token_server);
|
||||
SSH_PACKET_CALLBACK(ssh_packet_userauth_gssapi_token_client);
|
||||
SSH_PACKET_CALLBACK(ssh_packet_userauth_gssapi_mic);
|
||||
#endif /* WITH_SERVER */
|
||||
|
||||
SSH_PACKET_CALLBACK(ssh_packet_userauth_gssapi_token);
|
||||
SSH_PACKET_CALLBACK(ssh_packet_userauth_gssapi_token_client);
|
||||
SSH_PACKET_CALLBACK(ssh_packet_userauth_gssapi_response);
|
||||
|
||||
#endif /* WITH_SERVER */
|
||||
|
||||
int ssh_gssapi_auth_mic(ssh_session session);
|
||||
|
||||
|
@ -92,9 +92,12 @@ struct ssh_message_struct {
|
||||
};
|
||||
|
||||
SSH_PACKET_CALLBACK(ssh_packet_channel_open);
|
||||
SSH_PACKET_CALLBACK(ssh_packet_global_request);
|
||||
|
||||
#ifdef WITH_SERVER
|
||||
SSH_PACKET_CALLBACK(ssh_packet_service_request);
|
||||
SSH_PACKET_CALLBACK(ssh_packet_userauth_request);
|
||||
SSH_PACKET_CALLBACK(ssh_packet_global_request);
|
||||
#endif /* WITH_SERVER */
|
||||
|
||||
int ssh_message_handle_channel_request(ssh_session session, ssh_channel channel, ssh_buffer packet,
|
||||
const char *request, uint8_t want_reply);
|
||||
|
@ -180,9 +180,10 @@ void _ssh_set_error_invalid(void *error, const char *function);
|
||||
|
||||
|
||||
/* server.c */
|
||||
#ifdef WITH_SERVER
|
||||
int ssh_auth_reply_default(ssh_session session,int partial);
|
||||
int ssh_auth_reply_success(ssh_session session, int partial);
|
||||
|
||||
#endif
|
||||
/* client.c */
|
||||
|
||||
int ssh_send_banner(ssh_session session, int is_server);
|
||||
|
@ -843,12 +843,16 @@ SSH_PACKET_CALLBACK(channel_rcv_request) {
|
||||
leave_function();
|
||||
return SSH_PACKET_USED;
|
||||
}
|
||||
#ifdef WITH_SERVER
|
||||
/* If we are here, that means we have a request that is not in the understood
|
||||
* client requests. That means we need to create a ssh message to be passed
|
||||
* to the user code handling ssh messages
|
||||
*/
|
||||
ssh_message_handle_channel_request(session,channel,packet,request,status);
|
||||
|
||||
#else
|
||||
SSH_LOG(session,SSH_LOG_WARNING, "Unhandled channel request %s", request);
|
||||
#endif
|
||||
|
||||
SAFE_FREE(request);
|
||||
|
||||
leave_function();
|
||||
|
13
src/gssapi.c
13
src/gssapi.c
@ -121,6 +121,8 @@ static int ssh_gssapi_send_response(ssh_session session, ssh_string oid){
|
||||
return SSH_OK;
|
||||
}
|
||||
|
||||
#endif /* WITH_SERVER */
|
||||
|
||||
static void ssh_gssapi_log_error(ssh_session session, int verb, const char *msg, int maj_stat){
|
||||
gss_buffer_desc buffer;
|
||||
OM_uint32 dummy, message_context;
|
||||
@ -128,6 +130,8 @@ static void ssh_gssapi_log_error(ssh_session session, int verb, const char *msg,
|
||||
ssh_log(session, verb, "GSSAPI(%s): %s", msg, (const char *)buffer.value);
|
||||
}
|
||||
|
||||
#ifdef WITH_SERVER
|
||||
|
||||
/** @internal
|
||||
* @brief handles an user authentication using GSSAPI
|
||||
*/
|
||||
@ -251,6 +255,8 @@ int ssh_gssapi_handle_userauth(ssh_session session, const char *user, uint32_t n
|
||||
return ssh_gssapi_send_response(session, oids[i]);
|
||||
}
|
||||
|
||||
#endif /* WITH_SERVER */
|
||||
|
||||
static char * ssh_gssapi_name_to_char(ssh_session session, gss_name_t name){
|
||||
gss_buffer_desc buffer;
|
||||
OM_uint32 maj_stat, min_stat;
|
||||
@ -265,6 +271,8 @@ static char * ssh_gssapi_name_to_char(ssh_session session, gss_name_t name){
|
||||
|
||||
}
|
||||
|
||||
#ifdef WITH_SERVER
|
||||
|
||||
SSH_PACKET_CALLBACK(ssh_packet_userauth_gssapi_token_server){
|
||||
ssh_string token;
|
||||
char *hexa;
|
||||
@ -349,6 +357,8 @@ SSH_PACKET_CALLBACK(ssh_packet_userauth_gssapi_token_server){
|
||||
return SSH_PACKET_USED;
|
||||
}
|
||||
|
||||
#endif /* WITH_SERVER */
|
||||
|
||||
static ssh_buffer ssh_gssapi_build_mic(ssh_session session){
|
||||
ssh_buffer mic_buffer = ssh_buffer_new();
|
||||
ssh_string str;
|
||||
@ -377,6 +387,8 @@ static ssh_buffer ssh_gssapi_build_mic(ssh_session session){
|
||||
return mic_buffer;
|
||||
}
|
||||
|
||||
#ifdef WITH_SERVER
|
||||
|
||||
SSH_PACKET_CALLBACK(ssh_packet_userauth_gssapi_mic){
|
||||
ssh_string mic_token;
|
||||
OM_uint32 maj_stat, min_stat;
|
||||
@ -824,7 +836,6 @@ SSH_PACKET_CALLBACK(ssh_packet_userauth_gssapi_token_client){
|
||||
}
|
||||
if (GSS_ERROR(maj_stat)){
|
||||
ssh_gssapi_log_error(session, SSH_LOG_PROTOCOL, "Gssapi error", maj_stat);
|
||||
ssh_auth_reply_default(session,0);
|
||||
ssh_gssapi_free(session);
|
||||
session->gssapi=NULL;
|
||||
return SSH_PACKET_USED;
|
||||
|
@ -93,6 +93,7 @@ static int ssh_message_reply_default(ssh_message msg) {
|
||||
|
||||
#endif
|
||||
|
||||
#ifdef WITH_SERVER
|
||||
/** @internal
|
||||
* Executes the callbacks defined in session->server_callbacks, out of an ssh_message
|
||||
* I don't like ssh_message interface but it works.
|
||||
@ -258,6 +259,8 @@ static int ssh_execute_server_callbacks(ssh_session session, ssh_message msg){
|
||||
return SSH_AGAIN;
|
||||
}
|
||||
|
||||
#endif /* WITH_SERVER */
|
||||
|
||||
static int ssh_execute_message_callback(ssh_session session, ssh_message msg) {
|
||||
int ret;
|
||||
if(session->ssh_message_callback != NULL) {
|
||||
@ -282,7 +285,6 @@ static int ssh_execute_message_callback(ssh_session session, ssh_message msg) {
|
||||
return SSH_OK;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @internal
|
||||
*
|
||||
@ -294,8 +296,9 @@ static int ssh_execute_message_callback(ssh_session session, ssh_message msg) {
|
||||
* @param[in] message The message to add to the queue.
|
||||
*/
|
||||
void ssh_message_queue(ssh_session session, ssh_message message){
|
||||
int ret;
|
||||
if (message != NULL) {
|
||||
#ifdef WITH_SERVER
|
||||
int ret;
|
||||
/* probably not the best place to execute server callbacks, but still better
|
||||
* than nothing.
|
||||
*/
|
||||
@ -304,6 +307,7 @@ void ssh_message_queue(ssh_session session, ssh_message message){
|
||||
ssh_message_free(message);
|
||||
return;
|
||||
}
|
||||
#endif /* WITH_SERVER */
|
||||
if(session->ssh_message_callback != NULL) {
|
||||
ssh_execute_message_callback(session, message);
|
||||
return;
|
||||
@ -477,6 +481,8 @@ void ssh_message_free(ssh_message msg){
|
||||
SAFE_FREE(msg);
|
||||
}
|
||||
|
||||
#ifdef WITH_SERVER
|
||||
|
||||
SSH_PACKET_CALLBACK(ssh_packet_service_request){
|
||||
ssh_string service = NULL;
|
||||
char *service_c = NULL;
|
||||
@ -888,6 +894,7 @@ end:
|
||||
return SSH_PACKET_USED;
|
||||
}
|
||||
|
||||
#endif /* WITH_SERVER */
|
||||
/**
|
||||
* @internal
|
||||
*
|
||||
@ -902,7 +909,7 @@ SSH_PACKET_CALLBACK(ssh_packet_userauth_info_response){
|
||||
(void)user;
|
||||
return SSH_PACKET_USED;
|
||||
}
|
||||
#else
|
||||
#else /* WITH_SERVER */
|
||||
SSH_PACKET_CALLBACK(ssh_packet_userauth_info_response){
|
||||
uint32_t nanswers;
|
||||
uint32_t i;
|
||||
@ -1011,7 +1018,7 @@ error:
|
||||
leave_function();
|
||||
return SSH_PACKET_USED;
|
||||
}
|
||||
#endif
|
||||
#endif /* WITH_SERVER */
|
||||
|
||||
SSH_PACKET_CALLBACK(ssh_packet_channel_open){
|
||||
ssh_message msg = NULL;
|
||||
|
14
src/packet.c
14
src/packet.c
@ -55,7 +55,11 @@ static ssh_packet_callback default_packet_handlers[]= {
|
||||
ssh_packet_ignore_callback, // SSH2_MSG_IGNORE 2
|
||||
ssh_packet_unimplemented, // SSH2_MSG_UNIMPLEMENTED 3
|
||||
ssh_packet_ignore_callback, // SSH2_MSG_DEBUG 4
|
||||
#if WITH_SERVER
|
||||
ssh_packet_service_request, // SSH2_MSG_SERVICE_REQUEST 5
|
||||
#else
|
||||
NULL,
|
||||
#endif
|
||||
ssh_packet_service_accept, // SSH2_MSG_SERVICE_ACCEPT 6
|
||||
NULL, NULL, NULL, NULL, NULL, NULL, NULL,
|
||||
NULL, NULL, NULL, NULL, NULL, NULL, // 7-19
|
||||
@ -77,7 +81,11 @@ static ssh_packet_callback default_packet_handlers[]= {
|
||||
NULL, NULL, NULL, NULL, NULL, NULL, NULL,
|
||||
NULL, NULL, NULL, NULL, NULL, NULL, NULL,
|
||||
NULL, // 35-49
|
||||
#if WITH_SERVER
|
||||
ssh_packet_userauth_request, // SSH2_MSG_USERAUTH_REQUEST 50
|
||||
#else
|
||||
NULL,
|
||||
#endif
|
||||
ssh_packet_userauth_failure, // SSH2_MSG_USERAUTH_FAILURE 51
|
||||
ssh_packet_userauth_success, // SSH2_MSG_USERAUTH_SUCCESS 52
|
||||
ssh_packet_userauth_banner, // SSH2_MSG_USERAUTH_BANNER 53
|
||||
@ -92,11 +100,11 @@ static ssh_packet_callback default_packet_handlers[]= {
|
||||
NULL, // SSH2_MSG_USERAUTH_GSSAPI_EXCHANGE_COMPLETE 63
|
||||
NULL, // SSH2_MSG_USERAUTH_GSSAPI_ERROR 64
|
||||
NULL, // SSH2_MSG_USERAUTH_GSSAPI_ERRTOK 65
|
||||
#ifdef WITH_GSSAPI
|
||||
#if WITH_GSSAPI && WITH_SERVER
|
||||
ssh_packet_userauth_gssapi_mic, // SSH2_MSG_USERAUTH_GSSAPI_MIC 66
|
||||
#else /* WITH_GSSAPI */
|
||||
#else /* WITH_GSSAPI && WITH_SERVER */
|
||||
NULL,
|
||||
#endif /* WITH_GSSAPI */
|
||||
#endif /* WITH_GSSAPI && WITH_SERVER */
|
||||
NULL, NULL,
|
||||
NULL, NULL, NULL, NULL, NULL, NULL, NULL,
|
||||
NULL, NULL, NULL, NULL, // 67-79
|
||||
|
Загрузка…
x
Ссылка в новой задаче
Block a user