{
SilcClientConnection conn = (SilcClientConnection)sock->user_data;
SilcPrivateMessagePayload payload = NULL;
- SilcIDCacheEntry id_cache = NULL;
SilcClientID *remote_id = NULL;
SilcClientEntry remote_client;
SilcMessageFlags flags;
/* Check whether we know this client already */
remote_client = silc_client_get_client_by_id(client, conn, remote_id);
- if (!remote_client ||
- ((SilcClientEntry)id_cache->context)->nickname == NULL) {
-
+ if (!remote_client || !remote_client->nickname) {
if (remote_client) {
- remote_client = (SilcClientEntry)id_cache->context;
if (remote_client->status & SILC_CLIENT_STATUS_RESOLVING) {
remote_client->status &= ~SILC_CLIENT_STATUS_RESOLVING;
goto out;
}
/* Save the key */
- client_entry->key = silc_calloc(key_len, sizeof(*client_entry->key));
- memcpy(client_entry->key, key, key_len);
+ client_entry->key = silc_memdup(key, key_len);
client_entry->key_len = key_len;
/* Produce the key material as the protocol defines */