va_start(ap, argc);
packet = silc_notify_payload_encode(type, argc, ap);
+ if (!packet) {
+ va_end(ap);
+ return;
+ }
silc_server_packet_send(server, sock, SILC_PACKET_NOTIFY,
broadcast ? SILC_PACKET_FLAG_BROADCAST : 0,
packet->data, silc_buffer_len(packet));
SilcBuffer packet;
packet = silc_notify_payload_encode_args(type, argc, args);
- silc_server_packet_send(server, sock, SILC_PACKET_NOTIFY,
- broadcast ? SILC_PACKET_FLAG_BROADCAST : 0,
- packet->data, silc_buffer_len(packet));
+ if (packet)
+ silc_server_packet_send(server, sock, SILC_PACKET_NOTIFY,
+ broadcast ? SILC_PACKET_FLAG_BROADCAST : 0,
+ packet->data, silc_buffer_len(packet));
silc_buffer_free(packet);
}
idp1 = silc_id_payload_encode((void *)old_id, SILC_ID_CHANNEL);
idp2 = silc_id_payload_encode((void *)new_id, SILC_ID_CHANNEL);
- silc_server_send_notify(server, sock, broadcast,
- SILC_NOTIFY_TYPE_CHANNEL_CHANGE,
- 2, idp1->data, silc_buffer_len(idp1),
- idp2->data, silc_buffer_len(idp2));
+ if (idp1 && idp2)
+ silc_server_send_notify(server, sock, broadcast,
+ SILC_NOTIFY_TYPE_CHANNEL_CHANGE,
+ 2, idp1->data, silc_buffer_len(idp1),
+ idp2->data, silc_buffer_len(idp2));
silc_buffer_free(idp1);
silc_buffer_free(idp2);
}
idp1 = silc_id_payload_encode((void *)old_id, SILC_ID_CLIENT);
idp2 = silc_id_payload_encode((void *)new_id, SILC_ID_CLIENT);
- silc_server_send_notify(server, sock, broadcast,
- SILC_NOTIFY_TYPE_NICK_CHANGE,
- 3, idp1->data, silc_buffer_len(idp1),
- idp2->data, silc_buffer_len(idp2),
- nickname, nickname ? strlen(nickname) : 0);
+ if (idp1 && idp2)
+ silc_server_send_notify(server, sock, broadcast,
+ SILC_NOTIFY_TYPE_NICK_CHANGE,
+ 3, idp1->data, silc_buffer_len(idp1),
+ idp2->data, silc_buffer_len(idp2),
+ nickname, nickname ? strlen(nickname) : 0);
silc_buffer_free(idp1);
silc_buffer_free(idp2);
}
idp1 = silc_id_payload_encode((void *)client_id, SILC_ID_CLIENT);
idp2 = silc_id_payload_encode((void *)channel->id, SILC_ID_CHANNEL);
- silc_server_send_notify(server, sock, broadcast, SILC_NOTIFY_TYPE_JOIN,
- 2, idp1->data, silc_buffer_len(idp1),
- idp2->data, silc_buffer_len(idp2));
+
+ if (idp1 && idp2)
+ silc_server_send_notify(server, sock, broadcast, SILC_NOTIFY_TYPE_JOIN,
+ 2, idp1->data, silc_buffer_len(idp1),
+ idp2->data, silc_buffer_len(idp2));
silc_buffer_free(idp1);
silc_buffer_free(idp2);
}
SilcBuffer idp;
idp = silc_id_payload_encode((void *)client_id, SILC_ID_CLIENT);
- silc_server_send_notify_dest(server, sock, broadcast, (void *)channel->id,
- SILC_ID_CHANNEL, SILC_NOTIFY_TYPE_LEAVE,
- 1, idp->data, silc_buffer_len(idp));
+ if (idp)
+ silc_server_send_notify_dest(server, sock, broadcast, (void *)channel->id,
+ SILC_ID_CHANNEL, SILC_NOTIFY_TYPE_LEAVE,
+ 1, idp->data, silc_buffer_len(idp));
silc_buffer_free(idp);
}
unsigned char mode[4], ulimit[4];
idp = silc_id_payload_encode((void *)id, id_type);
+ if (!idp)
+ return;
SILC_PUT32_MSB(mode_mask, mode);
if (founder_key)
fkey = silc_public_key_payload_encode(founder_key);
idp1 = silc_id_payload_encode((void *)id, id_type);
idp2 = silc_id_payload_encode((void *)target, SILC_ID_CLIENT);
+ if (!idp1 || !idp2)
+ return;
SILC_PUT32_MSB(mode_mask, mode);
if (founder_key)
fkey = silc_public_key_payload_encode(founder_key);
SilcBuffer idp;
idp = silc_id_payload_encode((void *)client_id, SILC_ID_CLIENT);
- silc_server_send_notify(server, sock, broadcast,
- SILC_NOTIFY_TYPE_SIGNOFF,
- message ? 2 : 1, idp->data, silc_buffer_len(idp),
- message, message ? strlen(message): 0);
+ if (idp)
+ silc_server_send_notify(server, sock, broadcast,
+ SILC_NOTIFY_TYPE_SIGNOFF,
+ message ? 2 : 1, idp->data, silc_buffer_len(idp),
+ message, message ? strlen(message): 0);
silc_buffer_free(idp);
}
SilcBuffer idp;
idp = silc_id_payload_encode(id, id_type);
- silc_server_send_notify_dest(server, sock, broadcast,
- (void *)channel->id, SILC_ID_CHANNEL,
- SILC_NOTIFY_TYPE_TOPIC_SET,
- topic ? 2 : 1,
- idp->data, silc_buffer_len(idp),
- topic, topic ? strlen(topic) : 0);
+ if (idp)
+ silc_server_send_notify_dest(server, sock, broadcast,
+ (void *)channel->id, SILC_ID_CHANNEL,
+ SILC_NOTIFY_TYPE_TOPIC_SET,
+ topic ? 2 : 1,
+ idp->data, silc_buffer_len(idp),
+ topic, topic ? strlen(topic) : 0);
silc_buffer_free(idp);
}
idp1 = silc_id_payload_encode((void *)client_id, SILC_ID_CLIENT);
idp2 = silc_id_payload_encode((void *)kicker, SILC_ID_CLIENT);
- silc_server_send_notify_dest(server, sock, broadcast, (void *)channel->id,
- SILC_ID_CHANNEL, SILC_NOTIFY_TYPE_KICKED, 3,
- idp1->data, silc_buffer_len(idp1),
- comment, comment ? strlen(comment) : 0,
- idp2->data, silc_buffer_len(idp2));
+
+ if (idp1 && idp2)
+ silc_server_send_notify_dest(server, sock, broadcast, (void *)channel->id,
+ SILC_ID_CHANNEL, SILC_NOTIFY_TYPE_KICKED, 3,
+ idp1->data, silc_buffer_len(idp1),
+ comment, comment ? strlen(comment) : 0,
+ idp2->data, silc_buffer_len(idp2));
silc_buffer_free(idp1);
silc_buffer_free(idp2);
}
idp1 = silc_id_payload_encode(client_id, SILC_ID_CLIENT);
idp2 = silc_id_payload_encode(killer, killer_type);
- silc_server_send_notify_dest(server, sock, broadcast, (void *)client_id,
- SILC_ID_CLIENT, SILC_NOTIFY_TYPE_KILLED,
- 3, idp1->data, silc_buffer_len(idp1),
- comment, comment ? strlen(comment) : 0,
- idp2->data, silc_buffer_len(idp2));
+
+ if (idp1 && idp2)
+ silc_server_send_notify_dest(server, sock, broadcast, (void *)client_id,
+ SILC_ID_CLIENT, SILC_NOTIFY_TYPE_KILLED,
+ 3, idp1->data, silc_buffer_len(idp1),
+ comment, comment ? strlen(comment) : 0,
+ idp2->data, silc_buffer_len(idp2));
silc_buffer_free(idp1);
silc_buffer_free(idp2);
}
idp = silc_id_payload_encode((void *)client_id, SILC_ID_CLIENT);
SILC_PUT32_MSB(mode_mask, mode);
- silc_server_send_notify(server, sock, broadcast,
- SILC_NOTIFY_TYPE_UMODE_CHANGE, 2,
- idp->data, silc_buffer_len(idp),
- mode, 4);
+ if (idp)
+ silc_server_send_notify(server, sock, broadcast,
+ SILC_NOTIFY_TYPE_UMODE_CHANGE, 2,
+ idp->data, silc_buffer_len(idp),
+ mode, 4);
silc_buffer_free(idp);
}
SilcBuffer idp;
idp = silc_id_payload_encode((void *)channel->id, SILC_ID_CHANNEL);
- silc_server_send_notify(server, sock, broadcast,
- SILC_NOTIFY_TYPE_BAN, 3,
- idp->data, silc_buffer_len(idp),
- action ? action : NULL, action ? 1 : 0,
- list ? list->data : NULL,
- list ? silc_buffer_len(list) : 0);
+
+ if (idp)
+ silc_server_send_notify(server, sock, broadcast,
+ SILC_NOTIFY_TYPE_BAN, 3,
+ idp->data, silc_buffer_len(idp),
+ action ? action : NULL, action ? 1 : 0,
+ list ? list->data : NULL,
+ list ? silc_buffer_len(list) : 0);
silc_buffer_free(idp);
}
idp = silc_id_payload_encode((void *)channel->id, SILC_ID_CHANNEL);
idp2 = silc_id_payload_encode((void *)client_id, SILC_ID_CLIENT);
- silc_server_send_notify(server, sock, broadcast,
- SILC_NOTIFY_TYPE_INVITE, 5,
- idp->data, silc_buffer_len(idp),
- channel->channel_name, strlen(channel->channel_name),
- idp2->data, silc_buffer_len(idp2),
- action ? action : NULL, action ? 1 : 0,
- list ? list->data : NULL,
- list ? silc_buffer_len(list) : 0);
+
+ if (idp && idp2)
+ silc_server_send_notify(server, sock, broadcast,
+ SILC_NOTIFY_TYPE_INVITE, 5,
+ idp->data, silc_buffer_len(idp),
+ channel->channel_name,
+ strlen(channel->channel_name),
+ idp2->data, silc_buffer_len(idp2),
+ action ? action : NULL, action ? 1 : 0,
+ list ? list->data : NULL,
+ list ? silc_buffer_len(list) : 0);
silc_buffer_free(idp);
silc_buffer_free(idp2);
}
unsigned char mode[4], n[2];
idp = silc_id_payload_encode(client->id, SILC_ID_CLIENT);
+ if (!idp)
+ return;
SILC_PUT16_MSB(type, n);
SILC_PUT32_MSB(client->mode, mode);
if (public_key)
va_start(ap, argc);
packet = silc_notify_payload_encode(type, argc, ap);
+ if (!packet) {
+ va_end(ap);
+ return;
+ }
silc_server_packet_send_dest(server, sock, SILC_PACKET_NOTIFY,
broadcast ? SILC_PACKET_FLAG_BROADCAST : 0,
dest_id, dest_id_type,
va_start(ap, argc);
packet = silc_notify_payload_encode(type, argc, ap);
- silc_server_packet_send_to_channel(server, sender, channel,
- SILC_PACKET_NOTIFY, route_notify,
- send_to_clients,
- packet->data, silc_buffer_len(packet));
+ if (packet)
+ silc_server_packet_send_to_channel(server, sender, channel,
+ SILC_PACKET_NOTIFY, route_notify,
+ send_to_clients,
+ packet->data, silc_buffer_len(packet));
silc_buffer_free(packet);
va_end(ap);
}
va_start(ap, argc);
packet = silc_notify_payload_encode(type, argc, ap);
+ if (!packet) {
+ va_end(ap);
+ return;
+ }
data = packet->data;
data_len = silc_buffer_len(packet);
SILC_LOG_DEBUG(("Sending new ID"));
idp = silc_id_payload_encode(id, id_type);
- silc_server_packet_send(server, sock, SILC_PACKET_NEW_ID,
- broadcast ? SILC_PACKET_FLAG_BROADCAST : 0,
- idp->data, silc_buffer_len(idp));
+ if (idp)
+ silc_server_packet_send(server, sock, SILC_PACKET_NEW_ID,
+ broadcast ? SILC_PACKET_FLAG_BROADCAST : 0,
+ idp->data, silc_buffer_len(idp));
silc_buffer_free(idp);
}
/* Encode the channel payload */
packet = silc_channel_payload_encode(channel_name, name_len,
cid, channel_id_len, mode);
-
- silc_server_packet_send(server, sock, SILC_PACKET_NEW_CHANNEL,
- broadcast ? SILC_PACKET_FLAG_BROADCAST : 0,
- packet->data, silc_buffer_len(packet));
+ if (packet)
+ silc_server_packet_send(server, sock, SILC_PACKET_NEW_CHANNEL,
+ broadcast ? SILC_PACKET_FLAG_BROADCAST : 0,
+ packet->data, silc_buffer_len(packet));
silc_buffer_free(packet);
}
va_start(ap, argc);
packet = silc_command_payload_encode_vap(command, ident, argc, ap);
- silc_server_packet_send(server, sock, SILC_PACKET_COMMAND, 0,
- packet->data, silc_buffer_len(packet));
+ if (packet)
+ silc_server_packet_send(server, sock, SILC_PACKET_COMMAND, 0,
+ packet->data, silc_buffer_len(packet));
silc_buffer_free(packet);
va_end(ap);
}
packet = silc_command_reply_payload_encode_vap(command, status, error,
ident, argc, ap);
- silc_server_packet_send(server, sock, SILC_PACKET_COMMAND_REPLY, 0,
- packet->data, silc_buffer_len(packet));
+ if (packet)
+ silc_server_packet_send(server, sock, SILC_PACKET_COMMAND_REPLY, 0,
+ packet->data, silc_buffer_len(packet));
silc_buffer_free(packet);
va_end(ap);
}
packet = silc_command_reply_payload_encode_vap(command, status, error,
ident, argc, ap);
- silc_server_packet_send_dest(server, sock, SILC_PACKET_COMMAND_REPLY, 0,
- dst_id, dst_id_type, packet->data,
- silc_buffer_len(packet));
+ if (packet)
+ silc_server_packet_send_dest(server, sock, SILC_PACKET_COMMAND_REPLY, 0,
+ dst_id, dst_id_type, packet->data,
+ silc_buffer_len(packet));
silc_buffer_free(packet);
va_end(ap);
}
SilcBuffer packet;
packet = silc_buffer_alloc(4);
+ if (!packet)
+ return;
+
silc_buffer_pull_tail(packet, silc_buffer_truelen(packet));
silc_buffer_format(packet,
SILC_STR_UI_SHORT(conn_type),
va_start(ap, argc);
packet = silc_notify_payload_encode(type, argc, ap);
- silc_server_send_opers(server, SILC_PACKET_NOTIFY, 0,
- route, local, packet->data, silc_buffer_len(packet));
+ if (packet)
+ silc_server_send_opers(server, SILC_PACKET_NOTIFY, 0,
+ route, local, packet->data, silc_buffer_len(packet));
silc_buffer_free(packet);
va_end(ap);
}