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&amp;DEV_0000&amp;REV_01 VEN_0033&amp;DEV_0001&amp;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