client_id_list = va_arg(vp, SilcBuffer);
chanrec = silc_channel_find(server, channel);
- if (chanrec != NULL && !success)
- channel_destroy(CHANNEL(chanrec));
- else if (chanrec == NULL && success)
+ if (!chanrec)
chanrec = silc_channel_create(server, channel, TRUE);
-
+
if (topic) {
g_free_not_null(chanrec->topic);
chanrec->topic = *topic == '\0' ? NULL : g_strdup(topic);
pk = silc_pkcs_public_key_encode(public_key, &pk_len);
- if (id_type == SILC_ID_CLIENT)
- silc_verify_public_key_internal(client, conn, SILC_SOCKET_TYPE_CLIENT,
- pk, pk_len, SILC_SKE_PK_TYPE_SILC,
- NULL, NULL);
+ silc_verify_public_key_internal(client, conn,
+ (id_type == SILC_ID_CLIENT ?
+ SILC_SOCKET_TYPE_CLIENT :
+ SILC_SOCKET_TYPE_SERVER),
+ pk, pk_len, SILC_SKE_PK_TYPE_SILC,
+ NULL, NULL);
silc_free(pk);
}
break;
if (status == SILC_SKE_STATUS_INCORRECT_SIGNATURE)
printformat_module("fe-common/silc", NULL, NULL, MSGLEVEL_CRAP,
SILCTXT_KE_INCORRECT_SIGNATURE);
+ if (status == SILC_SKE_STATUS_INVALID_COOKIE)
+ printformat_module("fe-common/silc", NULL, NULL, MSGLEVEL_CRAP,
+ SILCTXT_KE_INVALID_COOKIE);
}
if (protocol->protocol->type == SILC_PROTOCOL_CLIENT_CONNECTION_AUTH) {