diff --git a/src/sptps.c b/src/sptps.c index 712d50ea..dd08e65d 100644 --- a/src/sptps.c +++ b/src/sptps.c @@ -128,11 +128,13 @@ static bool send_record_priv(sptps_t *s, uint8_t type, const void *data, uint16_ // Send an application record. bool sptps_send_record(sptps_t *s, uint8_t type, const void *data, uint16_t len) { + + if((!s->outstate) && (type != PKT_PROBE)) + return error(s, EINVAL, "Handshake phase not finished yet (outstate:%x type: %d)", + s->outstate, type); + // Sanity checks: application cannot send data before handshake is finished, // and only record types 0..127 are allowed. - if(!s->outstate) - return error(s, EINVAL, "Handshake phase not finished yet"); - if(type >= SPTPS_HANDSHAKE) return error(s, EINVAL, "Invalid application record type");