- s->help = dccp_help;
- s->client_cmds[SENDER_ON] = NULL;
- s->client_cmds[SENDER_OFF] = NULL;
- s->client_cmds[SENDER_DENY] = NULL;
- s->client_cmds[SENDER_ALLOW] = NULL;
- s->client_cmds[SENDER_ADD] = NULL;
- s->client_cmds[SENDER_DELETE] = NULL;
- self = s;
- ret = dccp_open();
- if (ret < 0) {
- PARA_ERROR_LOG("%s\n", PARA_STRERROR(-ret));
- s->status = SENDER_OFF;
- } else
- s->status = SENDER_ON;
+ s->resolve_target = NULL;
+ s->help = generic_sender_help;
+ s->client_cmds[SENDER_on] = dccp_com_on;
+ s->client_cmds[SENDER_off] = dccp_com_off;
+ s->client_cmds[SENDER_deny] = dccp_com_deny;
+ s->client_cmds[SENDER_allow] = dccp_com_allow;
+ s->client_cmds[SENDER_add] = NULL;
+ s->client_cmds[SENDER_delete] = NULL;
+
+ k = conf.dccp_data_slices_per_group_arg;
+ n = conf.dccp_slices_per_group_arg;
+
+ if (k <= 0 || n <= 0 || k >= n) {
+ PARA_WARNING_LOG("invalid FEC parameters, using defaults\n");
+ conf.dccp_data_slices_per_group_arg = 3;
+ conf.dccp_slices_per_group_arg = 4;
+ }
+
+ init_sender_status(dss, conf.dccp_access_arg, conf.dccp_access_given,
+ conf.dccp_port_arg, conf.dccp_max_clients_arg,
+ conf.dccp_default_deny_given);
+ ret = generic_com_on(dss, IPPROTO_DCCP);
+ if (ret < 0)
+ PARA_ERROR_LOG("%s\n", para_strerror(-ret));