Don't try to handle incoming data if sptps_start() has not been called yet.

This commit is contained in:
Guus Sliepen 2013-05-12 13:39:22 +02:00
parent 52f64cdf95
commit fa20cfceec
2 changed files with 7 additions and 4 deletions

View file

@ -520,6 +520,9 @@ static bool sptps_receive_data_datagram(sptps_t *s, const char *data, size_t len
// Receive incoming data. Check if it contains a complete record, if so, handle it.
bool sptps_receive_data(sptps_t *s, const char *data, size_t len) {
if(!s->state)
return error(s, EIO, "Invalid session state");
if(s->datagram)
return sptps_receive_data_datagram(s, data, len);

View file

@ -35,10 +35,10 @@
#define SPTPS_CLOSE 130 // Application closed the connection
// Key exchange states
#define SPTPS_KEX 0 // Waiting for the first Key EXchange record
#define SPTPS_SECONDARY_KEX 1 // Ready to receive a secondary Key EXchange record
#define SPTPS_SIG 2 // Waiting for a SIGnature record
#define SPTPS_ACK 3 // Waiting for an ACKnowledgement record
#define SPTPS_KEX 1 // Waiting for the first Key EXchange record
#define SPTPS_SECONDARY_KEX 2 // Ready to receive a secondary Key EXchange record
#define SPTPS_SIG 3 // Waiting for a SIGnature record
#define SPTPS_ACK 4 // Waiting for an ACKnowledgement record
typedef bool (*send_data_t)(void *handle, uint8_t type, const char *data, size_t len);
typedef bool (*receive_record_t)(void *handle, uint8_t type, const char *data, uint16_t len);