projects
/
tinc
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
52f64cd
)
Don't try to handle incoming data if sptps_start() has not been called yet.
author
Guus Sliepen
<guus@tinc-vpn.org>
Sun, 12 May 2013 11:39:22 +0000
(13:39 +0200)
committer
Guus Sliepen
<guus@tinc-vpn.org>
Sun, 12 May 2013 11:39:22 +0000
(13:39 +0200)
src/sptps.c
patch
|
blob
|
history
src/sptps.h
patch
|
blob
|
history
diff --git
a/src/sptps.c
b/src/sptps.c
index
03a1e9a
..
7206934
100644
(file)
--- a/
src/sptps.c
+++ b/
src/sptps.c
@@
-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) {
// 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);
if(s->datagram)
return sptps_receive_data_datagram(s, data, len);
diff --git
a/src/sptps.h
b/src/sptps.h
index
ee41f46
..
3a8e65f
100644
(file)
--- a/
src/sptps.h
+++ b/
src/sptps.h
@@
-35,10
+35,10
@@
#define SPTPS_CLOSE 130 // Application closed the connection
// Key exchange states
#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);
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);