capabilities: Move global capabilities_t instance to libstrongswan

This commit is contained in:
Tobias Brunner
2013-06-25 17:16:32 +02:00
parent 2e21bac19a
commit a2eb581781
21 changed files with 48 additions and 49 deletions
+1 -3
View File
@@ -471,7 +471,6 @@ static void destroy(private_daemon_t *this)
DESTROY_IF(this->public.xauth);
DESTROY_IF(this->public.backends);
DESTROY_IF(this->public.socket);
DESTROY_IF(this->public.caps);
/* rehook library logging, shutdown logging */
dbg = dbg_old;
@@ -581,7 +580,6 @@ private_daemon_t *daemon_create(const char *name)
.ref = 1,
);
charon = &this->public;
this->public.caps = capabilities_create();
this->public.controller = controller_create();
this->public.eap = eap_manager_create();
this->public.xauth = xauth_manager_create();
@@ -626,7 +624,7 @@ bool libcharon_init(const char *name)
this = daemon_create(name);
if (!this->public.caps->keep(this->public.caps, CAP_NET_ADMIN))
if (!lib->caps->keep(lib->caps, CAP_NET_ADMIN))
{
dbg(DBG_DMN, 1, "libcharon requires CAP_NET_ADMIN capability");
return FALSE;
-6
View File
@@ -163,7 +163,6 @@ typedef struct daemon_t daemon_t;
#include <config/backend_manager.h>
#include <sa/eap/eap_manager.h>
#include <sa/xauth/xauth_manager.h>
#include <utils/capabilities.h>
#ifdef ME
#include <sa/ikev2/connect_manager.h>
@@ -272,11 +271,6 @@ struct daemon_t {
mediation_manager_t *mediation_manager;
#endif /* ME */
/**
* POSIX capability dropping
*/
capabilities_t *caps;
/**
* Name of the binary that uses the library (used for settings etc.)
*/
@@ -84,8 +84,8 @@ static bool open_socket(private_duplicheck_notify_t *this)
return FALSE;
}
umask(old);
if (chown(addr.sun_path, charon->caps->get_uid(charon->caps),
charon->caps->get_gid(charon->caps)) != 0)
if (chown(addr.sun_path, lib->caps->get_uid(lib->caps),
lib->caps->get_gid(lib->caps)) != 0)
{
DBG1(DBG_CFG, "changing duplicheck socket permissions failed: %s",
strerror(errno));
@@ -84,8 +84,8 @@ static bool open_socket(private_error_notify_socket_t *this)
return FALSE;
}
umask(old);
if (chown(addr.sun_path, charon->caps->get_uid(charon->caps),
charon->caps->get_gid(charon->caps)) != 0)
if (chown(addr.sun_path, lib->caps->get_uid(lib->caps),
lib->caps->get_gid(lib->caps)) != 0)
{
DBG1(DBG_CFG, "changing notify socket permissions failed: %s",
strerror(errno));
+2 -2
View File
@@ -129,8 +129,8 @@ ha_ctl_t *ha_ctl_create(ha_segments_t *segments, ha_cache_t *cache)
}
umask(old);
}
if (chown(HA_FIFO, charon->caps->get_uid(charon->caps),
charon->caps->get_gid(charon->caps)) != 0)
if (chown(HA_FIFO, lib->caps->get_uid(lib->caps),
lib->caps->get_gid(lib->caps)) != 0)
{
DBG1(DBG_CFG, "changing HA FIFO permissions failed: %s",
strerror(errno));
+2 -2
View File
@@ -316,8 +316,8 @@ static void disable_all(private_ha_kernel_t *this)
{
while (enumerator->enumerate(enumerator, NULL, &file, NULL))
{
if (chown(file, charon->caps->get_uid(charon->caps),
charon->caps->get_gid(charon->caps)) != 0)
if (chown(file, lib->caps->get_uid(lib->caps),
lib->caps->get_gid(lib->caps)) != 0)
{
DBG1(DBG_CFG, "changing ClusterIP permissions failed: %s",
strerror(errno));
@@ -110,8 +110,8 @@ static bool open_socket(private_load_tester_control_t *this)
return FALSE;
}
umask(old);
if (chown(addr.sun_path, charon->caps->get_uid(charon->caps),
charon->caps->get_gid(charon->caps)) != 0)
if (chown(addr.sun_path, lib->caps->get_uid(lib->caps),
lib->caps->get_gid(lib->caps)) != 0)
{
DBG1(DBG_CFG, "changing load-tester socket permissions failed: %s",
strerror(errno));
+2 -2
View File
@@ -94,8 +94,8 @@ static bool open_socket(private_lookip_socket_t *this)
return FALSE;
}
umask(old);
if (chown(addr.sun_path, charon->caps->get_uid(charon->caps),
charon->caps->get_gid(charon->caps)) != 0)
if (chown(addr.sun_path, lib->caps->get_uid(lib->caps),
lib->caps->get_gid(lib->caps)) != 0)
{
DBG1(DBG_CFG, "changing lookip socket permissions failed: %s",
strerror(errno));
+2 -2
View File
@@ -768,8 +768,8 @@ plugin_t *smp_plugin_create()
return NULL;
}
umask(old);
if (chown(unix_addr.sun_path, charon->caps->get_uid(charon->caps),
charon->caps->get_gid(charon->caps)) != 0)
if (chown(unix_addr.sun_path, lib->caps->get_uid(lib->caps),
lib->caps->get_gid(lib->caps)) != 0)
{
DBG1(DBG_CFG, "changing XML socket permissions failed: %s", strerror(errno));
}
+2 -2
View File
@@ -847,8 +847,8 @@ static bool open_socket(private_stroke_socket_t *this)
return FALSE;
}
umask(old);
if (chown(socket_addr.sun_path, charon->caps->get_uid(charon->caps),
charon->caps->get_gid(charon->caps)) != 0)
if (chown(socket_addr.sun_path, lib->caps->get_uid(lib->caps),
lib->caps->get_gid(lib->caps)) != 0)
{
DBG1(DBG_CFG, "changing stroke socket permissions failed: %s",
strerror(errno));
@@ -77,8 +77,8 @@ static bool open_socket(private_whitelist_control_t *this)
return FALSE;
}
umask(old);
if (chown(addr.sun_path, charon->caps->get_uid(charon->caps),
charon->caps->get_gid(charon->caps)) != 0)
if (chown(addr.sun_path, lib->caps->get_uid(lib->caps),
lib->caps->get_gid(lib->caps)) != 0)
{
DBG1(DBG_CFG, "changing whitelist socket permissions failed: %s",
strerror(errno));
@@ -53,7 +53,7 @@ plugin_t *xauth_pam_plugin_create()
xauth_pam_plugin_t *this;
/* required for PAM authentication */
if (!charon->caps->keep(charon->caps, CAP_AUDIT_WRITE))
if (!lib->caps->keep(lib->caps, CAP_AUDIT_WRITE))
{
DBG1(DBG_DMN, "xauth-pam plugin requires CAP_AUDIT_WRITE capability");
return NULL;