/** \file send_common.c Functions used by more than one paraslash sender. */
+#include <regex.h>
#include <dirent.h>
+#include <osl.h>
+
#include "para.h"
#include "error.h"
#include "string.h"
if (ret < 0)
goto out;
}
- sc->header_sent = 1;
}
+ sc->header_sent = 1;
ret = send_queued_chunks(sc->fd, sc->cq, max_bytes_per_write);
if (ret < 0) {
shutdown_client(sc, ss);
*
* \return The string printed in the "si" command.
*/
-char *get_sender_info(struct sender_status *ss, char *name)
+char *get_sender_info(struct sender_status *ss, const char *name)
{
char *clnts = NULL, *ret;
struct sender_client *sc, *tmp_sc;
{
return make_message(
"usage: {on|off}\n"
- "usage: {allow|deny} IP mask\n"
- "example: allow 127.0.0.1 32\n"
+ "usage: {allow|deny} IP[/netmask]\n"
+ " where mask defaults to 32\n"
+ "example: allow 192.168.0.1/24\n"
);
}
return ret;
}
+/**
+ * Parse a FEC URL string.
+ *
+ * \param arg the URL string to parse.
+ * \param scd The structure containing host, port and the FEC parameters.
+ *
+ * \return Standard.
+ *
+ * A FEC URL consists of an ordinary URL string according to RFC 3986,
+ * optionally followed by a slash and the three FEC parameters slice_size,
+ * data_slices_per_group and slices_per_group. The three FEC parameters are
+ * separated by colons.
+ *
+ * \sa \ref parse_url().
+ */
int parse_fec_url(const char *arg, struct sender_command_data *scd)
{
int ret;