1
0
mirror of https://gitlab.xiph.org/xiph/icecast-server.git synced 2024-06-09 06:10:41 +00:00
icecast-server/src/global.h
2024-01-20 00:14:51 +00:00

75 lines
1.7 KiB
C

/* 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).
* Copyright 2014-2022, Philipp "ph3-der-loewe" Schafft <lion@lion.leolix.org>,
*/
#ifndef __GLOBAL_H__
#define __GLOBAL_H__
#define ICECAST_LISTEN_QUEUE 5
#define ICECAST_RUNNING 1
#define ICECAST_HALTING 2
#define ICECAST_VERSION_STRING "Icecast " PACKAGE_VERSION
#include <signal.h>
#include <igloo/igloo.h>
#include "common/thread/thread.h"
#include "common/avl/avl.h"
#include "icecasttypes.h"
typedef struct ice_global_tag
{
listensocket_container_t *listensockets;
int running;
int sources;
time_t sources_update;
int sources_legacy;
int clients;
#ifdef HAVE_SIG_ATOMIC_T
volatile sig_atomic_t schedule_config_reread;
#else
volatile int schedule_config_reread;
#endif
avl_tree *source_tree;
/* for locally defined relays */
relay_t *relays;
/* relays retrieved from master */
relay_t *master_relays;
module_container_t *modulecontainer;
geoip_db_t *geoip_db;
/* state */
bool chroot_succeeded;
bool chuid_succeeded;
} ice_global_t;
extern ice_global_t global;
extern igloo_ro_t igloo_instance;
void global_initialize(void);
void global_shutdown(void);
void global_lock(void);
void global_unlock(void);
const char * global_instance_uuid(void);
#endif /* __GLOBAL_H__ */