Измненеие сборки версии 2.0.0
All checks were successful
Build / Build project (push) Successful in 57s
All checks were successful
Build / Build project (push) Successful in 57s
Исходный код взят с GitHub с последними актуальными коммитами. Добавлена русскоязычная документация. Пути к конфигурационным файлам заданы по умолчанию в /usr/share/defaults/etc/openslp, но могут переопределяться в /etc/openslp.
This commit is contained in:
parent
2ce0a0601c
commit
af925eca6d
18 changed files with 413 additions and 213 deletions
115
files/solus_patches/0004-stateless.patch
Normal file
115
files/solus_patches/0004-stateless.patch
Normal file
|
@ -0,0 +1,115 @@
|
|||
From: Alexander Zhirov <azhirov1991@gmail.com>
|
||||
Date: Tue, 06 May 2025 19:15:37 +0300
|
||||
Subject: The default paths to the configuration files have been changed.
|
||||
|
||||
diff --git a/common/slp_types.h b/common/slp_types.h
|
||||
index 9714a50..478155b 100644
|
||||
--- a/common/slp_types.h
|
||||
+++ b/common/slp_types.h
|
||||
@@ -231,8 +231,11 @@ typedef unsigned long uint32_t;
|
||||
# endif
|
||||
|
||||
# define SLPD_CONFFILE ETCDIR "/slp.conf"
|
||||
+# define SLPD_CONFFILE_STATELESS "/usr/share/defaults/etc/openslp/slp.conf"
|
||||
# define SLPD_REGFILE ETCDIR "/slp.reg"
|
||||
+# define SLPD_REGFILE_STATELESS "/usr/share/defaults/etc/openslp/slp.reg"
|
||||
# define SLPD_SPIFILE ETCDIR "/slp.spi"
|
||||
+# define SLPD_SPIFILE_STATELESS "/usr/share/defaults/etc/openslp/slp.spi"
|
||||
# define SLPD_LOGFILE VARDIR "/log/slpd.log"
|
||||
# define SLPD_PIDFILE VARDIR "/run/slpd.pid"
|
||||
|
||||
diff --git a/libslp/libslp_handle.c b/libslp/libslp_handle.c
|
||||
index b938345..d75314a 100644
|
||||
--- a/libslp/libslp_handle.c
|
||||
+++ b/libslp/libslp_handle.c
|
||||
@@ -65,7 +65,11 @@ static SLPError InitUserAgentLibrary(void)
|
||||
/* Initialize the system if this is the first handle opened. */
|
||||
if (SLPAtomicInc(&s_OpenSLPHandleCount) == 1)
|
||||
{
|
||||
- if (LIBSLPPropertyInit(LIBSLP_CONFFILE) != 0)
|
||||
+ const char *slp_conf_file_name = LIBSLP_CONFFILE;
|
||||
+ if (access(slp_conf_file_name, R_OK) != 0)
|
||||
+ slp_conf_file_name = SLPD_CONFFILE_STATELESS;
|
||||
+
|
||||
+ if (LIBSLPPropertyInit(slp_conf_file_name) != 0)
|
||||
{
|
||||
SLPAtomicDec(&s_OpenSLPHandleCount);
|
||||
return SLP_MEMORY_ALLOC_FAILED;
|
||||
@@ -221,7 +225,11 @@ SLPEXP SLPError SLPAPI SLPOpen(
|
||||
}
|
||||
|
||||
#ifdef ENABLE_SLPv2_SECURITY
|
||||
- handle->hspi = SLPSpiOpen(LIBSLP_SPIFILE, 0);
|
||||
+ const char *slp_spi_file_name = LIBSLP_SPIFILE;
|
||||
+ if (access(slp_spi_file_name, R_OK) != 0)
|
||||
+ slp_spi_file_name = SLPD_SPIFILE_STATELESS;
|
||||
+
|
||||
+ handle->hspi = SLPSpiOpen(slp_spi_file_name, 0);
|
||||
if (!handle->hspi)
|
||||
{
|
||||
xfree(handle->langtag);
|
||||
diff --git a/libslp/libslp_property.c b/libslp/libslp_property.c
|
||||
index f645b93..913d39b 100644
|
||||
--- a/libslp/libslp_property.c
|
||||
+++ b/libslp/libslp_property.c
|
||||
@@ -115,8 +115,12 @@ SLPEXP const char * SLPAPI SLPGetProperty(const char * pcName)
|
||||
if (!pcName || !*pcName)
|
||||
return 0;
|
||||
|
||||
+ const char *slp_conf_file_name = LIBSLP_CONFFILE;
|
||||
+ if (access(slp_conf_file_name, R_OK) != 0)
|
||||
+ slp_conf_file_name = SLPD_CONFFILE_STATELESS;
|
||||
+
|
||||
/* This wrapper ensures that we only get initialized once */
|
||||
- if (!s_PropInited && LIBSLPPropertyInit(LIBSLP_CONFFILE) != 0)
|
||||
+ if (!s_PropInited && LIBSLPPropertyInit(slp_conf_file_name) != 0)
|
||||
return 0;
|
||||
|
||||
/* At this point, the caller may no longer call SLPSetProperty because
|
||||
@@ -157,8 +161,12 @@ SLPEXP void SLPAPI SLPSetProperty(const char * pcName, const char * pcValue)
|
||||
if (!pcName || !*pcName)
|
||||
return;
|
||||
|
||||
+ const char *slp_conf_file_name = LIBSLP_CONFFILE;
|
||||
+ if (access(slp_conf_file_name, R_OK) != 0)
|
||||
+ slp_conf_file_name = SLPD_CONFFILE_STATELESS;
|
||||
+
|
||||
/* This wrapper ensures that we only get initialized once */
|
||||
- if (!s_PropInited && LIBSLPPropertyInit(LIBSLP_CONFFILE) != 0)
|
||||
+ if (!s_PropInited && LIBSLPPropertyInit(slp_conf_file_name) != 0)
|
||||
return;
|
||||
|
||||
if (s_UserAllowedToSet)
|
||||
diff --git a/slpd/slpd_cmdline.c b/slpd/slpd_cmdline.c
|
||||
index 177833e..7f47436 100644
|
||||
--- a/slpd/slpd_cmdline.c
|
||||
+++ b/slpd/slpd_cmdline.c
|
||||
@@ -85,14 +85,25 @@ int SLPDParseCommandLine(int argc, char * argv[])
|
||||
{
|
||||
int i;
|
||||
|
||||
+ const char *slp_spi_file_name = SLPD_SPIFILE;
|
||||
+ const char *slp_reg_file_name = SLPD_REGFILE;
|
||||
+ const char *slp_conf_file_name = SLPD_CONFFILE;
|
||||
+
|
||||
+ if (access(slp_spi_file_name, R_OK) != 0)
|
||||
+ slp_spi_file_name = SLPD_SPIFILE_STATELESS;
|
||||
+ if (access(slp_reg_file_name, R_OK) != 0)
|
||||
+ slp_reg_file_name = SLPD_REGFILE_STATELESS;
|
||||
+ if (access(slp_conf_file_name, R_OK) != 0)
|
||||
+ slp_conf_file_name = SLPD_CONFFILE_STATELESS;
|
||||
+
|
||||
/* Set defaults */
|
||||
memset(&G_SlpdCommandLine, 0, sizeof(SLPDCommandLine));
|
||||
- strnenv(G_SlpdCommandLine.cfgfile, SLPD_CONFFILE, sizeof(G_SlpdCommandLine.cfgfile));
|
||||
+ strnenv(G_SlpdCommandLine.cfgfile, slp_conf_file_name, sizeof(G_SlpdCommandLine.cfgfile));
|
||||
strnenv(G_SlpdCommandLine.logfile, SLPD_LOGFILE, sizeof(G_SlpdCommandLine.logfile));
|
||||
- strnenv(G_SlpdCommandLine.regfile, SLPD_REGFILE, sizeof(G_SlpdCommandLine.regfile));
|
||||
+ strnenv(G_SlpdCommandLine.regfile, slp_reg_file_name, sizeof(G_SlpdCommandLine.regfile));
|
||||
strnenv(G_SlpdCommandLine.pidfile, SLPD_PIDFILE, sizeof(G_SlpdCommandLine.pidfile));
|
||||
#ifdef ENABLE_SLPv2_SECURITY
|
||||
- strnenv(G_SlpdCommandLine.spifile, SLPD_SPIFILE, sizeof(G_SlpdCommandLine.spifile));
|
||||
+ strnenv(G_SlpdCommandLine.spifile, slp_spi_file_name, sizeof(G_SlpdCommandLine.spifile));
|
||||
#endif
|
||||
G_SlpdCommandLine.action = -1;
|
||||
|
Loading…
Add table
Add a link
Reference in a new issue