devtls: ignore UnrecogniedName (112) alert message (for SNI)

This commit is contained in:
cinap_lenrek 2015-06-01 01:32:57 +02:00
parent 0ca9977075
commit 5c6357de8b

View file

@ -73,6 +73,7 @@ enum {
EInternalError = 80, EInternalError = 80,
EUserCanceled = 90, EUserCanceled = 90,
ENoRenegotiation = 100, ENoRenegotiation = 100,
EUnrecognizedName = 112,
EMAX = 256 EMAX = 256
}; };
@ -850,18 +851,25 @@ if(tr->debug) pdump(unpad_len, p, "decrypted:");
/* /*
* propagate non-fatal alerts to handshaker * propagate non-fatal alerts to handshaker
*/ */
if(p[1] == ECloseNotify) { switch(p[1]){
case ECloseNotify:
tlsclosed(tr, SRClose); tlsclosed(tr, SRClose);
if(tr->opened) if(tr->opened)
error("tls hungup"); error("tls hungup");
error("close notify"); error("close notify");
} break;
if(p[1] == ENoRenegotiation) case ENoRenegotiation:
alertHand(tr, "no renegotiation"); alertHand(tr, "no renegotiation");
else if(p[1] == EUserCanceled) break;
case EUserCanceled:
alertHand(tr, "handshake canceled by user"); alertHand(tr, "handshake canceled by user");
else break;
case EUnrecognizedName:
/* happens in response to SNI, can be ignored. */
break;
default:
rcvError(tr, EIllegalParameter, "invalid alert code"); rcvError(tr, EIllegalParameter, "invalid alert code");
}
break; break;
case RHandshake: case RHandshake:
/* /*