diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/channels.c | 6 | ||||
-rw-r--r-- | src/gssapi.c | 13 | ||||
-rw-r--r-- | src/messages.c | 15 | ||||
-rw-r--r-- | src/packet.c | 14 |
4 files changed, 39 insertions, 9 deletions
diff --git a/src/channels.c b/src/channels.c index f6f992b..687a8ee 100644 --- a/src/channels.c +++ b/src/channels.c @@ -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(); diff --git a/src/gssapi.c b/src/gssapi.c index c8c00a0..163febe 100644 --- a/src/gssapi.c +++ b/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; diff --git a/src/messages.c b/src/messages.c index d4dd438..47785ae 100644 --- a/src/messages.c +++ b/src/messages.c @@ -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; diff --git a/src/packet.c b/src/packet.c index 4dee9c3..eb31d70 100644 --- a/src/packet.c +++ b/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 |