1/* MiniDLNA project 2 * 3 * http://sourceforge.net/projects/minidlna/ 4 * 5 * MiniDLNA media server 6 * Copyright (C) 2008-2009 Justin Maggard 7 * 8 * This file is part of MiniDLNA. 9 * 10 * MiniDLNA is free software; you can redistribute it and/or modify 11 * it under the terms of the GNU General Public License version 2 as 12 * published by the Free Software Foundation. 13 * 14 * MiniDLNA is distributed in the hope that it will be useful, 15 * but WITHOUT ANY WARRANTY; without even the implied warranty of 16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17 * GNU General Public License for more details. 18 * 19 * You should have received a copy of the GNU General Public License 20 * along with MiniDLNA. If not, see <http://www.gnu.org/licenses/>. 21 * 22 * Portions of the code from the MiniUPnP project: 23 * 24 * Copyright (c) 2006-2007, Thomas Bernard 25 * All rights reserved. 26 * 27 * Redistribution and use in source and binary forms, with or without 28 * modification, are permitted provided that the following conditions are met: 29 * * Redistributions of source code must retain the above copyright 30 * notice, this list of conditions and the following disclaimer. 31 * * Redistributions in binary form must reproduce the above copyright 32 * notice, this list of conditions and the following disclaimer in the 33 * documentation and/or other materials provided with the distribution. 34 * * The name of the author may not be used to endorse or promote products 35 * derived from this software without specific prior written permission. 36 * 37 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 38 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 39 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 40 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE 41 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 42 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 43 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 44 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 45 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 46 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 47 * POSSIBILITY OF SUCH DAMAGE. 48 */ 49#include <sys/types.h> 50#include <netinet/in.h> 51#include <sys/param.h> 52#include <limits.h> 53 54#include "config.h" 55#include "upnpglobalvars.h" 56 57#include "upnpdescstrings.h" 58 59/* startup time */ 60time_t startup_time = 0; 61 62struct runtime_vars_s runtime_vars; 63uint32_t runtime_flags = INOTIFY_MASK; 64 65const char *pidfilename = "/var/run/minidlna/minidlna.pid"; 66 67char uuidvalue[] = "uuid:00000000-0000-0000-0000-000000000000"; 68char modelname[MODELNAME_MAX_LEN] = ROOTDEV_MODELNAME; 69char modelnumber[MODELNUMBER_MAX_LEN] = MINIDLNA_VERSION; 70char serialnumber[SERIALNUMBER_MAX_LEN] = "00000000"; 71#if PNPX 72char pnpx_hwid[] = "VEN_0000&DEV_0000&REV_01 VEN_0033&DEV_0001&REV_01"; 73#endif 74 75/* presentation url : 76 * http://nnn.nnn.nnn.nnn:ppppp/ => max 30 bytes including terminating 0 */ 77char presentationurl[PRESENTATIONURL_MAX_LEN]; 78 79int n_lan_addr = 0; 80struct lan_addr_s lan_addr[MAX_LAN_ADDR]; 81int sssdp = -1; 82 83/* Path of the Unix socket used to communicate with MiniSSDPd */ 84const char * minissdpdsocketpath = "/var/run/minissdpd.sock"; 85 86/* UPnP-A/V [DLNA] */ 87sqlite3 *db; 88char friendly_name[FRIENDLYNAME_MAX_LEN]; 89char db_path[PATH_MAX] = {'\0'}; 90char db_path_spec[PATH_MAX] = {'\0'}; 91char log_path[PATH_MAX] = {'\0'}; 92struct media_dir_s * media_dirs = NULL; 93struct album_art_name_s * album_art_names = NULL; 94short int scanning = 0; 95volatile short int quitting = 0; 96volatile uint32_t updateID = 0; 97const char *force_sort_criteria = NULL; 98short int rescan_db = 0; 99