configure.ac: para_audiod is optional.
[paraslash.git] / send.h
diff --git a/send.h b/send.h
index 69ebd37..6550c70 100644 (file)
--- a/send.h
+++ b/send.h
@@ -104,7 +104,38 @@ struct sender_client {
        void *private_data;
 };
 
-int open_sender(unsigned l4type, int port);
-void shutdown_client(struct sender_client *sc);
-void send_chunk(struct sender_client *sc, size_t max_bytes_per_write,
-               long unsigned current_chunk, const char *buf, size_t len);
+/** Describes the current status of one paraslash sender. */
+struct sender_status {
+       /* The file descriptor of the socket this sender is listening on. */
+       int listen_fd;
+       /** The TCP/DCCP port used by this sender. */
+       int port;
+       /** The current number of simultaneous connections. */
+       int num_clients;
+       /** The maximal number of simultaneous connections. */
+       int max_clients;
+       /** Whether the access control list is a whitelist. */
+       int default_deny;
+       /** The whitelist/blacklist. */
+       struct list_head acl;
+       /** The list of connected clients. */
+       struct list_head client_list;
+};
+
+void shutdown_client(struct sender_client *sc, struct sender_status *ss);
+void shutdown_clients(struct sender_status *ss);
+void send_chunk(struct sender_client *sc, struct sender_status *ss,
+               size_t max_bytes_per_write, long unsigned current_chunk,
+               const char *buf, size_t len);
+void init_sender_status(struct sender_status *ss, char **access_arg, int num_access_args,
+       int port, int max_clients, int default_deny);
+char *get_sender_info(struct sender_status *ss, char *name);
+
+void generic_com_allow(struct sender_command_data *scd,
+               struct sender_status *ss);
+void generic_com_deny(struct sender_command_data *scd,
+               struct sender_status *ss);
+int generic_com_on(struct sender_status *ss, unsigned protocol);
+void generic_com_off(struct sender_status *ss);
+char *generic_sender_help(void);
+struct sender_client *accept_sender_client(struct sender_status *ss);