SILC_LOG_DEBUG(("Creating TCP listener"));
- if (port < 0 || !schedule || !callback) {
+ if (!schedule) {
+ schedule = silc_schedule_get_global();
+ if (!schedule) {
+ silc_set_errno(SILC_ERR_INVALID_ARGUMENT);
+ goto err;
+ }
+ }
+
+ if (port < 0 || !callback) {
silc_set_errno(SILC_ERR_INVALID_ARGUMENT);
goto err;
}
SILC_LOG_DEBUG(("Creating TCP listener"));
- if (!schedule || !callback) {
+ if (!schedule) {
+ schedule = silc_schedule_get_global();
+ if (!schedule) {
+ silc_set_errno(SILC_ERR_INVALID_ARGUMENT);
+ goto err;
+ }
+ }
+
+ if (!callback) {
silc_set_errno(SILC_ERR_INVALID_ARGUMENT);
goto err;
}
SILC_LOG_DEBUG(("Creating UDP stream"));
if (!schedule) {
- silc_set_errno(SILC_ERR_INVALID_ARGUMENT);
- goto err;
+ schedule = silc_schedule_get_global();
+ if (!schedule) {
+ silc_set_errno(SILC_ERR_INVALID_ARGUMENT);
+ goto err;
+ }
}
/* Bind to local addresses */
{
SilcNetConnect conn;
- if (!remote_ip_addr || remote_port < 1 || !schedule || !callback)
+ if (!schedule) {
+ schedule = silc_schedule_get_global();
+ if (!schedule) {
+ silc_set_errno(SILC_ERR_INVALID_ARGUMENT);
+ return NULL;
+ }
+ }
+
+ if (!remote_ip_addr || remote_port < 1 || !callback) {
+ silc_set_errno(SILC_ERR_INVALID_ARGUMENT);
return NULL;
+ }
SILC_LOG_DEBUG(("Creating connection to host %s port %d",
remote_ip_addr, remote_port));