projects
/
runtime.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
773cff2
)
Free sock user data before disconnecting remote peer
author
Pekka Riikonen
<priikone@silcnet.org>
Fri, 6 Jun 2008 05:26:04 +0000
(08:26 +0300)
committer
Pekka Riikonen
<priikone@silcnet.org>
Fri, 6 Jun 2008 05:26:04 +0000
(08:26 +0300)
apps/silcd/server.c
patch
|
blob
|
history
diff --git
a/apps/silcd/server.c
b/apps/silcd/server.c
index 5b88aa2819317a602529758c28d1df301daa3bc3..e161efe035bb53790513182a1e8347eb48c73e76 100644
(file)
--- a/
apps/silcd/server.c
+++ b/
apps/silcd/server.c
@@
-1358,11
+1358,11
@@
silc_server_ke_auth_compl(SilcConnAuth connauth, SilcBool success,
/* Authentication failed */
/* XXX retry connecting */
/* Authentication failed */
/* XXX retry connecting */
- silc_server_disconnect_remote(server, sconn->sock,
- SILC_STATUS_ERR_AUTH_FAILED, NULL);
if (sconn->callback)
(*sconn->callback)(server, NULL, sconn->callback_context);
silc_server_free_sock_user_data(server, sconn->sock, NULL);
if (sconn->callback)
(*sconn->callback)(server, NULL, sconn->callback_context);
silc_server_free_sock_user_data(server, sconn->sock, NULL);
+ silc_server_disconnect_remote(server, sconn->sock,
+ SILC_STATUS_ERR_AUTH_FAILED, NULL);
return;
}
return;
}
@@
-1384,11
+1384,11
@@
silc_server_ke_auth_compl(SilcConnAuth connauth, SilcBool success,
strdup(sconn->remote_host),
SILC_SERVER, NULL, NULL, sconn->sock);
if (!id_entry) {
strdup(sconn->remote_host),
SILC_SERVER, NULL, NULL, sconn->sock);
if (!id_entry) {
- silc_server_disconnect_remote(server, sconn->sock,
- SILC_STATUS_ERR_RESOURCE_LIMIT, NULL);
if (sconn->callback)
(*sconn->callback)(server, NULL, sconn->callback_context);
silc_server_free_sock_user_data(server, sconn->sock, NULL);
if (sconn->callback)
(*sconn->callback)(server, NULL, sconn->callback_context);
silc_server_free_sock_user_data(server, sconn->sock, NULL);
+ silc_server_disconnect_remote(server, sconn->sock,
+ SILC_STATUS_ERR_RESOURCE_LIMIT, NULL);
return;
}
return;
}
@@
-1413,11
+1413,11
@@
silc_server_ke_auth_compl(SilcConnAuth connauth, SilcBool success,
SILC_STR_DATA(server->server_name,
strlen(server->server_name)),
SILC_STR_END)) {
SILC_STR_DATA(server->server_name,
strlen(server->server_name)),
SILC_STR_END)) {
- silc_server_disconnect_remote(server, sconn->sock,
- SILC_STATUS_ERR_RESOURCE_LIMIT, NULL);
if (sconn->callback)
(*sconn->callback)(server, NULL, sconn->callback_context);
silc_server_free_sock_user_data(server, sconn->sock, NULL);
if (sconn->callback)
(*sconn->callback)(server, NULL, sconn->callback_context);
silc_server_free_sock_user_data(server, sconn->sock, NULL);
+ silc_server_disconnect_remote(server, sconn->sock,
+ SILC_STATUS_ERR_RESOURCE_LIMIT, NULL);
return;
}
return;
}
@@
-1451,11
+1451,11
@@
silc_server_ke_auth_compl(SilcConnAuth connauth, SilcBool success,
SILC_ID_SERVER),
NULL, sconn->sock);
if (!id_entry) {
SILC_ID_SERVER),
NULL, sconn->sock);
if (!id_entry) {
- silc_server_disconnect_remote(server, sconn->sock,
- SILC_STATUS_ERR_RESOURCE_LIMIT, NULL);
if (sconn->callback)
(*sconn->callback)(server, NULL, sconn->callback_context);
silc_server_free_sock_user_data(server, sconn->sock, NULL);
if (sconn->callback)
(*sconn->callback)(server, NULL, sconn->callback_context);
silc_server_free_sock_user_data(server, sconn->sock, NULL);
+ silc_server_disconnect_remote(server, sconn->sock,
+ SILC_STATUS_ERR_RESOURCE_LIMIT, NULL);
return;
}
return;
}
@@
-1514,11
+1514,11
@@
silc_server_ke_auth_compl(SilcConnAuth connauth, SilcBool success,
/* We already have primary router. Disconnect this connection */
SILC_LOG_DEBUG(("We already have primary router, disconnect"));
silc_idlist_del_server(server->global_list, id_entry);
/* We already have primary router. Disconnect this connection */
SILC_LOG_DEBUG(("We already have primary router, disconnect"));
silc_idlist_del_server(server->global_list, id_entry);
- silc_server_disconnect_remote(server, sconn->sock,
- SILC_STATUS_ERR_RESOURCE_LIMIT, NULL);
if (sconn->callback)
(*sconn->callback)(server, NULL, sconn->callback_context);
silc_server_free_sock_user_data(server, sconn->sock, NULL);
if (sconn->callback)
(*sconn->callback)(server, NULL, sconn->callback_context);
silc_server_free_sock_user_data(server, sconn->sock, NULL);
+ silc_server_disconnect_remote(server, sconn->sock,
+ SILC_STATUS_ERR_RESOURCE_LIMIT, NULL);
return;
#endif /* 0 */
}
return;
#endif /* 0 */
}
@@
-1532,11
+1532,11
@@
silc_server_ke_auth_compl(SilcConnAuth connauth, SilcBool success,
break;
default:
break;
default:
- silc_server_disconnect_remote(server, sconn->sock,
- SILC_STATUS_ERR_AUTH_FAILED, NULL);
if (sconn->callback)
(*sconn->callback)(server, NULL, sconn->callback_context);
silc_server_free_sock_user_data(server, sconn->sock, NULL);
if (sconn->callback)
(*sconn->callback)(server, NULL, sconn->callback_context);
silc_server_free_sock_user_data(server, sconn->sock, NULL);
+ silc_server_disconnect_remote(server, sconn->sock,
+ SILC_STATUS_ERR_AUTH_FAILED, NULL);
return;
}
return;
}
@@
-1598,11
+1598,11
@@
static void silc_server_ke_completed(SilcSKE ske, SilcSKEStatus status,
/* XXX retry connecting */
silc_ske_free(ske);
/* XXX retry connecting */
silc_ske_free(ske);
- silc_server_disconnect_remote(server, sconn->sock,
- SILC_STATUS_ERR_KEY_EXCHANGE_FAILED, NULL);
if (sconn->callback)
(*sconn->callback)(server, NULL, sconn->callback_context);
silc_server_free_sock_user_data(server, sconn->sock, NULL);
if (sconn->callback)
(*sconn->callback)(server, NULL, sconn->callback_context);
silc_server_free_sock_user_data(server, sconn->sock, NULL);
+ silc_server_disconnect_remote(server, sconn->sock,
+ SILC_STATUS_ERR_KEY_EXCHANGE_FAILED, NULL);
return;
}
return;
}
@@
-1616,11
+1616,11
@@
static void silc_server_ke_completed(SilcSKE ske, SilcSKEStatus status,
/* Error setting keys */
silc_ske_free(ske);
/* Error setting keys */
silc_ske_free(ske);
- silc_server_disconnect_remote(server, sconn->sock,
- SILC_STATUS_ERR_KEY_EXCHANGE_FAILED, NULL);
if (sconn->callback)
(*sconn->callback)(server, NULL, sconn->callback_context);
silc_server_free_sock_user_data(server, sconn->sock, NULL);
if (sconn->callback)
(*sconn->callback)(server, NULL, sconn->callback_context);
silc_server_free_sock_user_data(server, sconn->sock, NULL);
+ silc_server_disconnect_remote(server, sconn->sock,
+ SILC_STATUS_ERR_KEY_EXCHANGE_FAILED, NULL);
return;
}
silc_packet_set_keys(sconn->sock, send_key, receive_key, hmac_send,
return;
}
silc_packet_set_keys(sconn->sock, send_key, receive_key, hmac_send,
@@
-1635,11
+1635,11
@@
static void silc_server_ke_completed(SilcSKE ske, SilcSKEStatus status,
/** Error allocating auth protocol */
silc_ske_free(ske);
/** Error allocating auth protocol */
silc_ske_free(ske);
- silc_server_disconnect_remote(server, sconn->sock,
- SILC_STATUS_ERR_RESOURCE_LIMIT, NULL);
if (sconn->callback)
(*sconn->callback)(server, NULL, sconn->callback_context);
silc_server_free_sock_user_data(server, sconn->sock, NULL);
if (sconn->callback)
(*sconn->callback)(server, NULL, sconn->callback_context);
silc_server_free_sock_user_data(server, sconn->sock, NULL);
+ silc_server_disconnect_remote(server, sconn->sock,
+ SILC_STATUS_ERR_RESOURCE_LIMIT, NULL);
return;
}
return;
}
@@
-1701,9
+1701,9
@@
void silc_server_start_key_exchange(SilcServerConnection sconn)
/* Set source ID to packet stream */
if (!silc_packet_set_ids(sconn->sock, SILC_ID_SERVER, server->id,
0, NULL)) {
/* Set source ID to packet stream */
if (!silc_packet_set_ids(sconn->sock, SILC_ID_SERVER, server->id,
0, NULL)) {
- silc_packet_stream_destroy(sconn->sock);
if (sconn->callback)
(*sconn->callback)(server, NULL, sconn->callback_context);
if (sconn->callback)
(*sconn->callback)(server, NULL, sconn->callback_context);
+ silc_packet_stream_destroy(sconn->sock);
silc_server_connection_free(sconn);
return;
}
silc_server_connection_free(sconn);
return;
}
@@
-1734,9
+1734,9
@@
void silc_server_start_key_exchange(SilcServerConnection sconn)
server->public_key, server->private_key, sconn);
if (!ske) {
silc_free(entry);
server->public_key, server->private_key, sconn);
if (!ske) {
silc_free(entry);
- silc_packet_stream_destroy(sconn->sock);
if (sconn->callback)
(*sconn->callback)(server, NULL, sconn->callback_context);
if (sconn->callback)
(*sconn->callback)(server, NULL, sconn->callback_context);
+ silc_packet_stream_destroy(sconn->sock);
silc_server_connection_free(sconn);
return;
}
silc_server_connection_free(sconn);
return;
}