projects
/
tinc
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Fix very stupid bug in node_del(), which might have caused corruption of
[tinc]
/
src
/
protocol.c
diff --git
a/src/protocol.c
b/src/protocol.c
index
9125cf6
..
9b2ec91
100644
(file)
--- a/
src/protocol.c
+++ b/
src/protocol.c
@@
-17,7
+17,7
@@
along with this program; if not, write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
along with this program; if not, write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- $Id: protocol.c,v 1.28.4.12
5 2002/03/22 11:43:48
guus Exp $
+ $Id: protocol.c,v 1.28.4.12
8 2002/03/27 15:26:43
guus Exp $
*/
#include "config.h"
*/
#include "config.h"
@@
-74,7
+74,7
@@
cp
if(len < 0 || len > MAXBUFSIZE-1)
{
if(len < 0 || len > MAXBUFSIZE-1)
{
- syslog(LOG_ERR, _("Output buffer overflow while sending request to %s (%s)"),
request_name[request],
c->name, c->hostname);
+ syslog(LOG_ERR, _("Output buffer overflow while sending request to %s (%s)"), c->name, c->hostname);
return -1;
}
return -1;
}
@@
-146,16
+146,25
@@
cp
return 0;
}
return 0;
}
-int request_compare(past_request_t *a, past_request_t *b)
+int
past_
request_compare(past_request_t *a, past_request_t *b)
{
cp
return strcmp(a->request, b->request);
}
{
cp
return strcmp(a->request, b->request);
}
+void free_past_request(past_request_t *r)
+{
+cp
+ if(r->request)
+ free(r->request);
+ free(r);
+cp
+}
+
void init_requests(void)
{
cp
void init_requests(void)
{
cp
- past_request_tree = avl_alloc_tree((avl_compare_t)
request_compare, (avl_action_t)free
);
+ past_request_tree = avl_alloc_tree((avl_compare_t)
past_request_compare, (avl_action_t)free_past_request
);
cp
}
cp
}
@@
-216,7
+225,6
@@
int (*request_handlers[])(connection_t*) = {
id_h, metakey_h, challenge_h, chal_reply_h, ack_h,
status_h, error_h, termreq_h,
ping_h, pong_h,
id_h, metakey_h, challenge_h, chal_reply_h, ack_h,
status_h, error_h, termreq_h,
ping_h, pong_h,
-// add_node_h, del_node_h,
add_subnet_h, del_subnet_h,
add_edge_h, del_edge_h,
key_changed_h, req_key_h, ans_key_h,
add_subnet_h, del_subnet_h,
add_edge_h, del_edge_h,
key_changed_h, req_key_h, ans_key_h,
@@
-229,7
+237,6
@@
char (*request_name[]) = {
"ID", "METAKEY", "CHALLENGE", "CHAL_REPLY", "ACK",
"STATUS", "ERROR", "TERMREQ",
"PING", "PONG",
"ID", "METAKEY", "CHALLENGE", "CHAL_REPLY", "ACK",
"STATUS", "ERROR", "TERMREQ",
"PING", "PONG",
-// "ADD_NODE", "DEL_NODE",
"ADD_SUBNET", "DEL_SUBNET",
"ADD_EDGE", "DEL_EDGE",
"KEY_CHANGED", "REQ_KEY", "ANS_KEY",
"ADD_SUBNET", "DEL_SUBNET",
"ADD_EDGE", "DEL_EDGE",
"KEY_CHANGED", "REQ_KEY", "ANS_KEY",