bool force_send)
{
int block_len;
+
+ if (!sock)
+ return;
+
packet->truelen = data_len + SILC_PACKET_HEADER_LEN +
packet->src_id_len + packet->dst_id_len;
force_send);
}
+ silc_hash_table_list_reset(&htl);
silc_free(routed);
silc_free(packetdata.src_id);
silc_free(packetdata.dst_id);
force_send);
}
+ silc_hash_table_list_reset(&htl);
silc_free(routed);
silc_free(packetdata.src_id);
silc_free(packetdata.dst_id);
force_send);
}
}
+ silc_hash_table_list_reset(&htl);
}
/* Routine used to send (relay, route) private messages to some destination.
void silc_server_send_motd(SilcServer server,
SilcSocketConnection sock)
{
- char *motd;
+ char *motd, *motd_file = NULL;
uint32 motd_len;
- if (server->config && server->config->motd &&
- server->config->motd->motd_file) {
+ if (server->config)
+ motd_file = server->config->server_info->motd_file;
- motd = silc_file_readfile(server->config->motd->motd_file, &motd_len);
+ if (motd_file) {
+ motd = silc_file_readfile(motd_file, &motd_len);
if (!motd)
return;
sent_clients[sent_clients_count++] = c;
}
}
+ silc_hash_table_list_reset(&htl2);
}
+ silc_hash_table_list_reset(&htl);
silc_free(routed);
silc_free(sent_clients);
silc_free(packetdata.src_id);
}
/* Send New Channel Payload to notify about newly created channel in the
- SILC network. Normal server nevers sends this packet. Router uses this
- to notify other routers in the network about new channel. This packet
- is broadcasted. */
+ SILC network. Router uses this to notify other routers in the network
+ about new channel. This packet is broadcasted by router. */
void silc_server_send_new_channel(SilcServer server,
SilcSocketConnection sock,
/* Send to backup routers if this is being broadcasted to primary
router. */
- if (server->router && server->router->connection &&
+ if (server->server_type == SILC_ROUTER &&
+ server->router && server->router->connection &&
sock == server->router->connection && broadcast)
silc_server_backup_send(server, NULL, SILC_PACKET_NEW_CHANNEL, 0,
packet->data, packet->len, FALSE, TRUE);