-
- server = silc_calloc(1, sizeof(*server));
- server->server_name = strdup(server_name);
- server->server_info = strdup(server_info);
- server->server_id = silc_id_dup(server_id, SILC_ID_SERVER);
-
- /* Add it to the cache */
- silc_idcache_add(conn->server_cache, server->server_name,
- server->server_id, (void *)server, 0, NULL);
- } else {
- server = (SilcServerEntry)id_cache->context;
+ server = silc_client_add_server(cmd->client, conn, server_name,
+ server_info,
+ silc_id_dup(server_id, SILC_ID_SERVER));
+ if (!server)
+ goto out;