+ /* If server name was specified with channel name, find the correct
+ channel entry with the server name. There can only be one channel
+ with same name on same server. */
+ silc_list_start(list);
+ if (server[0]) {
+ while ((id_cache = silc_list_get(list))) {
+ entry = id_cache->context;
+ if (!entry->server[0])
+ continue;
+ if (silc_utf8_strcasecmp(entry->server, server))
+ break;
+ }
+ } else {
+ /* Get first channel without server name specified or one with our
+ current server connection name */
+ while ((id_cache = silc_list_get(list))) {
+ entry = id_cache->context;
+ if (!entry->server[0])
+ break;
+ if (silc_utf8_strcasecmp(entry->server, conn->remote_host))
+ break;
+ }
+ }