Added additional connect errors.
This commit is contained in:
parent
363109c581
commit
70baa6fe26
@ -241,6 +241,8 @@ FREERDP_API const char* freerdp_get_error_base_name(UINT32 code);
|
||||
#define ERRCONNECT_PASSWORD_EXPIRED 0x0000000E
|
||||
/* For non-domain workstation where we can't contact a kerberos server */
|
||||
#define ERRCONNECT_PASSWORD_CERTAINLY_EXPIRED 0x0000000F
|
||||
#define ERRCONNECT_CLIENT_REVOKED 0x00000010
|
||||
#define ERRCONNECT_KDC_UNREACHABLE 0x00000011
|
||||
|
||||
#define ERRCONNECT_SUCCESS ERRINFO_SUCCESS
|
||||
#define ERRCONNECT_NONE ERRINFO_NONE
|
||||
@ -251,49 +253,55 @@ FREERDP_API const char* freerdp_get_error_connect_name(UINT32 code);
|
||||
#define FREERDP_ERROR_CONNECT_CLASS (FREERDP_ERROR_BASE + 2)
|
||||
|
||||
#define FREERDP_ERROR_PRE_CONNECT_FAILED \
|
||||
MAKE_FREERDP_ERROR(CONNECT, ERRCONNECT_PRE_CONNECT_FAILED)
|
||||
MAKE_FREERDP_ERROR(CONNECT, ERRCONNECT_PRE_CONNECT_FAILED)
|
||||
|
||||
#define FREERDP_ERROR_CONNECT_UNDEFINED \
|
||||
MAKE_FREERDP_ERROR(CONNECT, ERRCONNECT_CONNECT_UNDEFINED)
|
||||
MAKE_FREERDP_ERROR(CONNECT, ERRCONNECT_CONNECT_UNDEFINED)
|
||||
|
||||
#define FREERDP_ERROR_POST_CONNECT_FAILED \
|
||||
MAKE_FREERDP_ERROR(CONNECT, ERRCONNECT_POST_CONNECT_FAILED)
|
||||
MAKE_FREERDP_ERROR(CONNECT, ERRCONNECT_POST_CONNECT_FAILED)
|
||||
|
||||
#define FREERDP_ERROR_DNS_ERROR \
|
||||
MAKE_FREERDP_ERROR(CONNECT, ERRCONNECT_DNS_ERROR)
|
||||
MAKE_FREERDP_ERROR(CONNECT, ERRCONNECT_DNS_ERROR)
|
||||
|
||||
#define FREERDP_ERROR_DNS_NAME_NOT_FOUND \
|
||||
MAKE_FREERDP_ERROR(CONNECT, ERRCONNECT_DNS_NAME_NOT_FOUND)
|
||||
MAKE_FREERDP_ERROR(CONNECT, ERRCONNECT_DNS_NAME_NOT_FOUND)
|
||||
|
||||
#define FREERDP_ERROR_CONNECT_FAILED \
|
||||
MAKE_FREERDP_ERROR(CONNECT, ERRCONNECT_CONNECT_FAILED)
|
||||
MAKE_FREERDP_ERROR(CONNECT, ERRCONNECT_CONNECT_FAILED)
|
||||
|
||||
#define FREERDP_ERROR_MCS_CONNECT_INITIAL_ERROR \
|
||||
MAKE_FREERDP_ERROR(CONNECT, ERRCONNECT_MCS_CONNECT_INITIAL_ERROR)
|
||||
MAKE_FREERDP_ERROR(CONNECT, ERRCONNECT_MCS_CONNECT_INITIAL_ERROR)
|
||||
|
||||
#define FREERDP_ERROR_TLS_CONNECT_FAILED \
|
||||
MAKE_FREERDP_ERROR(CONNECT, ERRCONNECT_TLS_CONNECT_FAILED)
|
||||
MAKE_FREERDP_ERROR(CONNECT, ERRCONNECT_TLS_CONNECT_FAILED)
|
||||
|
||||
#define FREERDP_ERROR_AUTHENTICATION_FAILED \
|
||||
MAKE_FREERDP_ERROR(CONNECT, ERRCONNECT_AUTHENTICATION_FAILED)
|
||||
MAKE_FREERDP_ERROR(CONNECT, ERRCONNECT_AUTHENTICATION_FAILED)
|
||||
|
||||
#define FREERDP_ERROR_INSUFFICIENT_PRIVILEGES \
|
||||
MAKE_FREERDP_ERROR(CONNECT, ERRCONNECT_INSUFFICIENT_PRIVILEGES)
|
||||
MAKE_FREERDP_ERROR(CONNECT, ERRCONNECT_INSUFFICIENT_PRIVILEGES)
|
||||
|
||||
#define FREERDP_ERROR_CONNECT_CANCELLED \
|
||||
MAKE_FREERDP_ERROR(CONNECT, ERRCONNECT_CONNECT_CANCELLED)
|
||||
MAKE_FREERDP_ERROR(CONNECT, ERRCONNECT_CONNECT_CANCELLED)
|
||||
|
||||
#define FREERDP_ERROR_SECURITY_NEGO_CONNECT_FAILED \
|
||||
MAKE_FREERDP_ERROR(CONNECT, ERRCONNECT_SECURITY_NEGO_CONNECT_FAILED)
|
||||
MAKE_FREERDP_ERROR(CONNECT, ERRCONNECT_SECURITY_NEGO_CONNECT_FAILED)
|
||||
|
||||
#define FREERDP_ERROR_CONNECT_TRANSPORT_FAILED \
|
||||
MAKE_FREERDP_ERROR(CONNECT, ERRCONNECT_CONNECT_TRANSPORT_FAILED)
|
||||
MAKE_FREERDP_ERROR(CONNECT, ERRCONNECT_CONNECT_TRANSPORT_FAILED)
|
||||
|
||||
#define FREERDP_ERROR_CONNECT_PASSWORD_EXPIRED \
|
||||
MAKE_FREERDP_ERROR(CONNECT, ERRCONNECT_PASSWORD_EXPIRED)
|
||||
MAKE_FREERDP_ERROR(CONNECT, ERRCONNECT_PASSWORD_EXPIRED)
|
||||
|
||||
#define FREERDP_ERROR_CONNECT_PASSWORD_CERTAINLY_EXPIRED \
|
||||
MAKE_FREERDP_ERROR(CONNECT, ERRCONNECT_PASSWORD_CERTAINLY_EXPIRED)
|
||||
MAKE_FREERDP_ERROR(CONNECT, ERRCONNECT_PASSWORD_CERTAINLY_EXPIRED)
|
||||
|
||||
#define FREERDP_ERROR_CONNECT_CLIENT_REVOKED \
|
||||
MAKE_FREERDP_ERROR(CONNECT, ERRCONNECT_CLIENT_REVOKED)
|
||||
|
||||
#define FREERDP_ERROR_CONNECT_KDC_UNREACHABLE \
|
||||
MAKE_FREERDP_ERROR(CONNECT, ERRCONNECT_KDC_UNREACHABLE)
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
|
@ -35,49 +35,55 @@
|
||||
/* Protocol-independent codes */
|
||||
|
||||
#define ERRCONNECT_PRE_CONNECT_FAILED_STRING \
|
||||
"A configuration error prevented a connection to be established."
|
||||
"A configuration error prevented a connection to be established."
|
||||
|
||||
#define ERRCONNECT_CONNECT_UNDEFINED_STRING \
|
||||
"A undefined connection error occurred."
|
||||
"A undefined connection error occurred."
|
||||
|
||||
#define ERRCONNECT_POST_CONNECT_FAILED_STRING \
|
||||
"The connection attempt was aborted due to post connect configuration errors."
|
||||
"The connection attempt was aborted due to post connect configuration errors."
|
||||
|
||||
#define ERRCONNECT_DNS_ERROR_STRING \
|
||||
"The DNS entry could not be resolved."
|
||||
"The DNS entry could not be resolved."
|
||||
|
||||
#define ERRCONNECT_DNS_NAME_NOT_FOUND_STRING \
|
||||
"The DNS host name was not found."
|
||||
"The DNS host name was not found."
|
||||
|
||||
#define ERRCONNECT_CONNECT_FAILED_STRING \
|
||||
"The connection failed."
|
||||
"The connection failed."
|
||||
|
||||
#define ERRCONNECT_MCS_CONNECT_INITIAL_ERROR_STRING \
|
||||
"The connection failed at initial MCS connect"
|
||||
"The connection failed at initial MCS connect"
|
||||
|
||||
#define ERRCONNECT_TLS_CONNECT_FAILED_STRING \
|
||||
"The connection failed at TLS connect."
|
||||
"The connection failed at TLS connect."
|
||||
|
||||
#define ERRCONNECT_AUTHENTICATION_FAILED_STRING \
|
||||
"An authentication failure aborted the connection."
|
||||
"An authentication failure aborted the connection."
|
||||
|
||||
#define ERRCONNECT_INSUFFICIENT_PRIVILEGES_STRING \
|
||||
"Insufficient privileges to establish a connection."
|
||||
"Insufficient privileges to establish a connection."
|
||||
|
||||
#define ERRCONNECT_CONNECT_CANCELLED_STRING \
|
||||
"The connection was cancelled."
|
||||
"The connection was cancelled."
|
||||
|
||||
#define ERRCONNECT_SECURITY_NEGO_CONNECT_FAILED_STRING \
|
||||
"The connection failed at negotiating security settings."
|
||||
"The connection failed at negotiating security settings."
|
||||
|
||||
#define ERRCONNECT_CONNECT_TRANSPORT_FAILED_STRING \
|
||||
"The connection transport layer failed."
|
||||
"The connection transport layer failed."
|
||||
|
||||
#define ERRCONNECT_PASSWORD_EXPIRED_STRING \
|
||||
"The password has expired and must be changed."
|
||||
"The password has expired and must be changed."
|
||||
|
||||
#define ERRCONNECT_PASSWORD_CERTAINLY_EXPIRED_STRING \
|
||||
"The password has certainly expired and must be changed."
|
||||
"The password has certainly expired and must be changed."
|
||||
|
||||
#define ERRCONNECT_CLIENT_REVOKED_STRING \
|
||||
"The client has been revoked."
|
||||
|
||||
#define ERRCONNECT_KDC_UNREACHABLE_STRING \
|
||||
"The KDC is unreachable."
|
||||
|
||||
/* Special codes */
|
||||
#define ERRCONNECT_SUCCESS_STRING "Success."
|
||||
@ -85,31 +91,32 @@
|
||||
|
||||
static const ERRINFO ERRCONNECT_CODES[] =
|
||||
{
|
||||
ERRCONNECT_DEFINE(SUCCESS),
|
||||
ERRCONNECT_DEFINE(SUCCESS),
|
||||
|
||||
ERRCONNECT_DEFINE(PRE_CONNECT_FAILED),
|
||||
ERRCONNECT_DEFINE(CONNECT_UNDEFINED),
|
||||
ERRCONNECT_DEFINE(POST_CONNECT_FAILED),
|
||||
ERRCONNECT_DEFINE(DNS_ERROR),
|
||||
ERRCONNECT_DEFINE(DNS_NAME_NOT_FOUND),
|
||||
ERRCONNECT_DEFINE(CONNECT_FAILED),
|
||||
ERRCONNECT_DEFINE(MCS_CONNECT_INITIAL_ERROR),
|
||||
ERRCONNECT_DEFINE(TLS_CONNECT_FAILED),
|
||||
ERRCONNECT_DEFINE(AUTHENTICATION_FAILED),
|
||||
ERRCONNECT_DEFINE(INSUFFICIENT_PRIVILEGES),
|
||||
ERRCONNECT_DEFINE(CONNECT_CANCELLED),
|
||||
ERRCONNECT_DEFINE(SECURITY_NEGO_CONNECT_FAILED),
|
||||
ERRCONNECT_DEFINE(CONNECT_TRANSPORT_FAILED),
|
||||
ERRCONNECT_DEFINE(PASSWORD_EXPIRED),
|
||||
ERRCONNECT_DEFINE(PASSWORD_CERTAINLY_EXPIRED),
|
||||
ERRCONNECT_DEFINE(PRE_CONNECT_FAILED),
|
||||
ERRCONNECT_DEFINE(CONNECT_UNDEFINED),
|
||||
ERRCONNECT_DEFINE(POST_CONNECT_FAILED),
|
||||
ERRCONNECT_DEFINE(DNS_ERROR),
|
||||
ERRCONNECT_DEFINE(DNS_NAME_NOT_FOUND),
|
||||
ERRCONNECT_DEFINE(CONNECT_FAILED),
|
||||
ERRCONNECT_DEFINE(MCS_CONNECT_INITIAL_ERROR),
|
||||
ERRCONNECT_DEFINE(TLS_CONNECT_FAILED),
|
||||
ERRCONNECT_DEFINE(AUTHENTICATION_FAILED),
|
||||
ERRCONNECT_DEFINE(INSUFFICIENT_PRIVILEGES),
|
||||
ERRCONNECT_DEFINE(CONNECT_CANCELLED),
|
||||
ERRCONNECT_DEFINE(SECURITY_NEGO_CONNECT_FAILED),
|
||||
ERRCONNECT_DEFINE(CONNECT_TRANSPORT_FAILED),
|
||||
ERRCONNECT_DEFINE(PASSWORD_EXPIRED),
|
||||
ERRCONNECT_DEFINE(PASSWORD_CERTAINLY_EXPIRED),
|
||||
ERRCONNECT_DEFINE(CLIENT_REVOKED),
|
||||
ERRCONNECT_DEFINE(KDC_UNREACHABLE),
|
||||
|
||||
ERRCONNECT_DEFINE(NONE)
|
||||
ERRCONNECT_DEFINE(NONE)
|
||||
};
|
||||
|
||||
const char* freerdp_get_error_connect_string(UINT32 code)
|
||||
{
|
||||
const ERRINFO* errInfo;
|
||||
|
||||
errInfo = &ERRCONNECT_CODES[0];
|
||||
|
||||
while (errInfo->code != ERRCONNECT_NONE)
|
||||
@ -128,7 +135,6 @@ const char* freerdp_get_error_connect_string(UINT32 code)
|
||||
const char* freerdp_get_error_connect_name(UINT32 code)
|
||||
{
|
||||
const ERRINFO* errInfo;
|
||||
|
||||
errInfo = &ERRCONNECT_CODES[0];
|
||||
|
||||
while (errInfo->code != ERRCONNECT_NONE)
|
||||
|
@ -112,6 +112,10 @@ out:
|
||||
break;
|
||||
|
||||
case KRB5_KDC_UNREACH:
|
||||
WLog_Print(transport->log, WLOG_WARN, "krb5_init_creds_get: KDC unreachable");
|
||||
ret = FREERDP_ERROR_CONNECT_KDC_UNREACHABLE;
|
||||
break;
|
||||
|
||||
case KRB5KRB_AP_ERR_BAD_INTEGRITY:
|
||||
case KRB5KRB_AP_ERR_MODIFIED:
|
||||
case KRB5KDC_ERR_PREAUTH_FAILED:
|
||||
@ -126,7 +130,8 @@ out:
|
||||
break;
|
||||
|
||||
case KRB5KDC_ERR_CLIENT_REVOKED:
|
||||
ret = FREERDP_ERROR_CONNECT_PASSWORD_CERTAINLY_EXPIRED;
|
||||
WLog_Print(transport->log, WLOG_WARN, "krb5_init_creds_get: Password revoked");
|
||||
ret = FREERDP_ERROR_CONNECT_CLIENT_REVOKED;
|
||||
break;
|
||||
|
||||
case KRB5KDC_ERR_POLICY:
|
||||
|
Loading…
x
Reference in New Issue
Block a user