chiark
/
gitweb
/
~mdw
/
disorder
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Fixed a null pointer deref.
[disorder]
/
lib
/
configuration.h
diff --git
a/lib/configuration.h
b/lib/configuration.h
index acb96b769c46a00ba9e4d412081600c929b191b8..22e107d62be9b746b379b9b551317bed28095a3a 100644
(file)
--- a/
lib/configuration.h
+++ b/
lib/configuration.h
@@
-1,6
+1,6
@@
/*
* This file is part of DisOrder.
/*
* This file is part of DisOrder.
- * Copyright (C) 2004-20
09
Richard Kettlewell
+ * Copyright (C) 2004-20
10
Richard Kettlewell
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@
-26,6
+26,7
@@
#include "speaker-protocol.h"
#include "rights.h"
#include "speaker-protocol.h"
#include "rights.h"
+#include "addr.h"
struct uaudio;
struct uaudio;
@@
-69,7
+70,8
@@
struct collectionlist {
struct namepart {
char *part; /* part */
struct namepart {
char *part; /* part */
- pcre *re; /* regexp */
+ pcre *re; /* compiled regexp */
+ char *res; /* regexp as a string */
char *replace; /* replacement string */
char *context; /* context glob */
unsigned reflags; /* regexp flags */
char *replace; /* replacement string */
char *context; /* context glob */
unsigned reflags; /* regexp flags */
@@
-154,7
+156,7
@@
struct config {
long prefsync; /* preflog sync interval */
/** @brief Secondary listen address */
long prefsync; /* preflog sync interval */
/** @brief Secondary listen address */
- struct
stringlist
listen;
+ struct
netaddress
listen;
/** @brief Alias format string */
const char *alias;
/** @brief Alias format string */
const char *alias;
@@
-171,6
+173,9
@@
struct config {
/** @brief Command execute by speaker to play audio */
const char *speaker_command;
/** @brief Command execute by speaker to play audio */
const char *speaker_command;
+ /** @brief Pause mode for command backend */
+ const char *pause_mode;
+
/** @brief Target sample format */
struct stream_header sample_format;
/** @brief Target sample format */
struct stream_header sample_format;
@@
-180,6
+185,12
@@
struct config {
/** @brief API used to play sound */
const char *api;
/** @brief API used to play sound */
const char *api;
+ /** @brief Maximum size of a playlist */
+ long playlist_max;
+
+ /** @brief Maximum lifetime of a playlist lock */
+ long playlist_lock_timeout;
+
/** @brief Home directory for state files */
const char *home;
/** @brief Home directory for state files */
const char *home;
@@
-190,7
+201,7
@@
struct config {
const char *password;
/** @brief Address to connect to */
const char *password;
/** @brief Address to connect to */
- struct
stringlist
connect;
+ struct
netaddress
connect;
/** @brief Directories to search for web templates */
struct stringlist templates;
/** @brief Directories to search for web templates */
struct stringlist templates;
@@
-204,6
+215,9
@@
struct config {
/** @brief Maximum refresh interval for web interface (seconds) */
long refresh;
/** @brief Maximum refresh interval for web interface (seconds) */
long refresh;
+ /** @brief Minimum refresh interval for web interface (seconds) */
+ long refresh_min;
+
/** @brief Facilities restricted to trusted users
*
* A bitmap of @ref RESTRICT_SCRATCH, @ref RESTRICT_REMOVE and @ref
/** @brief Facilities restricted to trusted users
*
* A bitmap of @ref RESTRICT_SCRATCH, @ref RESTRICT_REMOVE and @ref
@@
-230,10
+244,10
@@
struct config {
struct transformlist transform; /* path name transformations */
/** @brief Address to send audio data to */
struct transformlist transform; /* path name transformations */
/** @brief Address to send audio data to */
- struct
stringlist
broadcast;
+ struct
netaddress
broadcast;
/** @brief Source address for network audio transmission */
/** @brief Source address for network audio transmission */
- struct
stringlist
broadcast_from;
+ struct
netaddress
broadcast_from;
/** @brief RTP delay threshold */
long rtp_delay_threshold;
/** @brief RTP delay threshold */
long rtp_delay_threshold;
@@
-276,7
+290,10
@@
struct config {
/** @brief Maximum bias */
long new_bias;
/** @brief Maximum bias */
long new_bias;
-
+
+ /** @brief Rescan on (un)mount */
+ int mount_rescan;
+
/* derived values: */
int nparts; /* number of distinct name parts */
char **parts; /* name part list */
/* derived values: */
int nparts; /* number of distinct name parts */
char **parts; /* name part list */
@@
-288,7
+305,8
@@
struct config {
extern struct config *config;
/* the current configuration */
extern struct config *config;
/* the current configuration */
-int config_read(int server);
+int config_read(int server,
+ const struct config *oldconfig);
/* re-read config, return 0 on success or non-0 on error.
* Only updates @config@ if the new configuration is valid. */
/* re-read config, return 0 on success or non-0 on error.
* Only updates @config@ if the new configuration is valid. */
@@
-308,6
+326,8
@@
char *config_usersysconf(const struct passwd *pw );
char *config_private(void);
/* get the private config file */
char *config_private(void);
/* get the private config file */
+int config_verify(void);
+
extern char *configfile;
extern int config_per_user;
extern char *configfile;
extern int config_per_user;