fserve.h 1.17 KB
Newer Older
1 2 3 4 5 6 7 8 9 10
/* Icecast
 *
 * This program is distributed under the GNU General Public License, version 2.
 * A copy of this license is included with this source.
 *
 * Copyright 2000-2004, Jack Moffitt <jack@xiph.org, 
 *                      Michael Smith <msmith@xiph.org>,
 *                      oddsock <oddsock@xiph.org>,
 *                      Karl Heyes <karl@xiph.org>
 *                      and others (see AUTHORS for details).
11
 * Copyright 2018,      Philipp "ph3-der-loewe" Schafft <lion@lion.leolix.org>,
12 13
 */

14 15 16 17
#ifndef __FSERVE_H__
#define __FSERVE_H__

#include <stdio.h>
18 19

#include "icecasttypes.h"
20

21 22
typedef void (*fserve_callback_t)(client_t *, void *);

23
typedef struct _fserve_t
24 25 26 27
{
    client_t *client;

    FILE *file;
28
    int ready;
29 30
    void (*callback)(client_t *, void *);
    void *arg;
31
    struct _fserve_t *next;
32 33 34 35
} fserve_t;

void fserve_initialize(void);
void fserve_shutdown(void);
36
int fserve_client_create(client_t *httpclient);
37
int fserve_add_client (client_t *client, FILE *file);
38
void fserve_add_client_callback (client_t *client, fserve_callback_t callback, void *arg);
39
char *fserve_content_type (const char *path);
40
void fserve_recheck_mime_types (ice_config_t *config);
41 42 43 44 45


#endif