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