1 /* Icecast
2  *
3  * This program is distributed under the GNU General Public License, version 2.
4  * A copy of this license is included with this source.
5  *
6  * Copyright 2000-2004, Jack Moffitt <jack@xiph.org,
7  *                      Michael Smith <msmith@xiph.org>,
8  *                      oddsock <oddsock@xiph.org>,
9  *                      Karl Heyes <karl@xiph.org>
10  *                      and others (see AUTHORS for details).
11  */
12 
13 #ifndef __FSERVE_H__
14 #define __FSERVE_H__
15 
16 #include <stdio.h>
17 #include "cfgfile.h"
18 
19 typedef void (*fserve_callback_t)(client_t *, void *);
20 
21 typedef struct _fserve_t
22 {
23     client_t *client;
24 
25     FILE *file;
26     int ready;
27     void (*callback)(client_t *, void *);
28     void *arg;
29     struct _fserve_t *next;
30 } fserve_t;
31 
32 void fserve_initialize(void);
33 void fserve_shutdown(void);
34 int fserve_client_create(client_t *httpclient, const char *path);
35 int fserve_add_client (client_t *client, FILE *file);
36 void fserve_add_client_callback (client_t *client, fserve_callback_t callback, void *arg);
37 char *fserve_content_type (const char *path);
38 void fserve_recheck_mime_types (ice_config_t *config);
39 
40 
41 #endif
42 
43 
44