client = (SilcClientEntry)id_cache->context;
/* If client is not registered, is not originated from `router'
- or is not owned by `entry', skip it. */
+ and is not owned by `entry', skip it. */
if (!(client->data.status & SILC_IDLIST_STATUS_REGISTERED) ||
client->router != router ||
(router != entry && !SILC_ID_COMPARE(client->id, entry->id,
client = (SilcClientEntry)id_cache->context;
/* If client is not registered, is not originated from `router'
- or is not owned by `entry', skip it. */
+ and is not owned by `entry', skip it. */
if (!(client->data.status & SILC_IDLIST_STATUS_REGISTERED) ||
client->router != router ||
(router != entry && !SILC_ID_COMPARE(client->id, entry->id,
SILC_PACKET_NOTIFY, 0, FALSE,
not->data, not->len, FALSE);
+ /* Send notify also to local backup routers */
+ silc_server_backup_send(server, NULL, SILC_PACKET_NOTIFY, 0,
+ not->data, not->len, FALSE, TRUE);
+
silc_buffer_free(args);
silc_buffer_free(not);
for (i = 0; i < argc; i++)
if (local) {
SILC_LOG_DEBUG(("Moving client to global list"));
silc_idcache_add(server->global_list->clients, client_cache->name,
- client_cache->id, client_cache->context,
- client_cache->expire, NULL);
+ client_cache->id, client_cache->context, 0, NULL);
silc_idcache_del_by_context(server->local_list->clients, client);
}
server_entry = server_entry->router;
if (server_entry->server_type != SILC_BACKUP_ROUTER && local) {
SILC_LOG_DEBUG(("Moving client to global list"));
silc_idcache_add(server->global_list->clients, client_cache->name,
- client_cache->id, client_cache->context,
- client_cache->expire, NULL);
+ client_cache->id, client_cache->context, 0, NULL);
silc_idcache_del_by_context(server->local_list->clients, client);
}
}