sbuild  1.7.1
Public Types | Public Member Functions | Static Public Member Functions | Private Member Functions | Private Attributes | List of all members
sbuild::chroot::facet::unshare Class Reference

Chroot support for unsharing process execution context. More...

#include <unshare.h>

+ Inheritance diagram for sbuild::chroot::facet::unshare:
+ Collaboration diagram for sbuild::chroot::facet::unshare:

Public Types

enum  error_code { UNSHARE }
 Error codes. More...
 
typedef std::shared_ptr< unshareptr
 A shared_ptr to a chroot facet object.
 
typedef std::shared_ptr< const
unshare
const_ptr
 A shared_ptr to a const chroot facet object.
 
typedef custom_error< error_codeerror
 Exception type.
 
- Public Types inherited from sbuild::chroot::facet::facet
enum  session_flags { SESSION_NOFLAGS = 0, SESSION_CREATE = 1 << 0, SESSION_CLONE = 1 << 1, SESSION_PURGE = 1 << 2 }
 Chroot session properties. More...
 
typedef std::shared_ptr< facetptr
 A shared_ptr to a chroot facet object.
 
typedef std::shared_ptr< const
facet
const_ptr
 A shared_ptr to a const chroot facet object.
 

Public Member Functions

virtual ~unshare ()
 The destructor.
 
virtual facet::ptr clone () const
 Copy the chroot facet. More...
 
virtual std::string const & get_name () const
 Get the name of the chroot facet. More...
 
bool get_unshare_net () const
 Is networking unshared? More...
 
void set_unshare_net (bool unshare)
 Set network unsharing. More...
 
bool get_unshare_sysvipc () const
 Is System V IPC unshared? More...
 
void set_unshare_sysvipc (bool unshare)
 Set System V IPC unsharing. More...
 
bool get_unshare_sysvsem () const
 Is System V SEM unshared? More...
 
void set_unshare_sysvsem (bool unshare)
 Set System V SEM unsharing. More...
 
bool get_unshare_uts () const
 Is UTS namespace unshared? More...
 
void set_unshare_uts (bool unshare)
 Set System UTS namespace unsharing. More...
 
void do_unshare () const
 Unshare process execution context.
 
virtual void setup_env (environment &env) const
 Set environment. More...
 
virtual void get_details (format_detail &detail) const
 Get detailed information about the chroot for output. More...
 
virtual void get_used_keys (string_list &used_keys) const
 Get a list of the keys used during keyfile parsing. More...
 
virtual void get_keyfile (keyfile &keyfile) const
 Copy the chroot properties into a keyfile. More...
 
virtual void set_keyfile (const keyfile &keyfile)
 Set the chroot properties from a keyfile. More...
 
- Public Member Functions inherited from sbuild::chroot::facet::facet
virtual ~facet ()
 The destructor.
 
virtual session_flags get_session_flags () const
 Get the session flags of the chroot. More...
 

Static Public Member Functions

static ptr create ()
 Create a chroot facet. More...
 

Private Member Functions

 unshare ()
 The constructor.
 

Private Attributes

bool unshare_net
 Unshare networking.
 
bool unshare_sysvipc
 Unshare System V IPC.
 
bool unshare_sysvsem
 Unshare System V SEM.
 
bool unshare_uts
 Unshare System V SEM.
 

Additional Inherited Members

- Protected Member Functions inherited from sbuild::chroot::facet::facet
 facet ()
 The constructor.
 
virtual void set_chroot (chroot &chroot, bool copy=false)
 Set containing chroot. More...
 
- Protected Attributes inherited from sbuild::chroot::facet::facet
chrootowner
 Chroot owning this facet.
 

Detailed Description

Chroot support for unsharing process execution context.

Member Enumeration Documentation

Error codes.

Enumerator
UNSHARE 

Could not unshare process execution context.

Member Function Documentation

facet::ptr sbuild::chroot::facet::unshare::clone ( ) const
virtual

Copy the chroot facet.

This is a virtual copy constructor.

Returns
a shared_ptr to the new copy of the chroot facet.

Implements sbuild::chroot::facet::facet.

References unshare().

unshare::ptr sbuild::chroot::facet::unshare::create ( )
static

Create a chroot facet.

Returns
a shared_ptr to the new chroot facet.

References unshare().

void sbuild::chroot::facet::unshare::get_details ( format_detail detail) const
virtual

Get detailed information about the chroot for output.

Parameters
detailthe details to output to.

Reimplemented from sbuild::chroot::facet::facet.

References sbuild::_(), sbuild::format_detail::add(), get_unshare_net(), get_unshare_sysvipc(), get_unshare_sysvsem(), and get_unshare_uts().

void sbuild::chroot::facet::unshare::get_keyfile ( keyfile keyfile) const
virtual

Copy the chroot properties into a keyfile.

The keyfile group with the name of the chroot will be set; if it already exists, it will be removed before setting it.

Parameters
keyfilethe keyfile to use.

Reimplemented from sbuild::chroot::facet::facet.

References sbuild::chroot::chroot::get_name(), get_unshare_net(), get_unshare_sysvipc(), get_unshare_sysvsem(), get_unshare_uts(), sbuild::chroot::facet::facet::owner, and sbuild::keyfile::set_object_value().

std::string const & sbuild::chroot::facet::unshare::get_name ( ) const
virtual

Get the name of the chroot facet.

Returns
the chroot facet name.

Implements sbuild::chroot::facet::facet.

bool sbuild::chroot::facet::unshare::get_unshare_net ( ) const

Is networking unshared?

Returns
true if unshared, otherwise false.

References unshare_net.

Referenced by get_details(), get_keyfile(), and setup_env().

+ Here is the caller graph for this function:

bool sbuild::chroot::facet::unshare::get_unshare_sysvipc ( ) const

Is System V IPC unshared?

Returns
true if unshared, otherwise false.

References unshare_sysvipc.

Referenced by get_details(), get_keyfile(), and setup_env().

+ Here is the caller graph for this function:

bool sbuild::chroot::facet::unshare::get_unshare_sysvsem ( ) const

Is System V SEM unshared?

Returns
true if unshared, otherwise false.

References unshare_sysvsem.

Referenced by get_details(), get_keyfile(), and setup_env().

+ Here is the caller graph for this function:

bool sbuild::chroot::facet::unshare::get_unshare_uts ( ) const

Is UTS namespace unshared?

Returns
true if unshared, otherwise false.

References unshare_uts.

Referenced by get_details(), get_keyfile(), and setup_env().

+ Here is the caller graph for this function:

void sbuild::chroot::facet::unshare::get_used_keys ( string_list used_keys) const
virtual

Get a list of the keys used during keyfile parsing.

Returns
a list of key names.

Reimplemented from sbuild::chroot::facet::facet.

void sbuild::chroot::facet::unshare::set_keyfile ( const keyfile keyfile)
virtual

Set the chroot properties from a keyfile.

The chroot name must have previously been set, so that the correct keyfile group may be determined.

Parameters
keyfilethe keyfile to get the properties from.

Reimplemented from sbuild::chroot::facet::facet.

References sbuild::chroot::chroot::get_name(), sbuild::keyfile::get_object_value(), sbuild::chroot::facet::facet::owner, sbuild::keyfile::PRIORITY_OPTIONAL, set_unshare_net(), set_unshare_sysvipc(), set_unshare_sysvsem(), and set_unshare_uts().

void sbuild::chroot::facet::unshare::set_unshare_net ( bool  unshare)

Set network unsharing.

Parameters
unshareunshare?

References unshare_net.

Referenced by set_keyfile().

+ Here is the caller graph for this function:

void sbuild::chroot::facet::unshare::set_unshare_sysvipc ( bool  unshare)

Set System V IPC unsharing.

Parameters
unshareunshare?

References unshare_sysvipc.

Referenced by set_keyfile().

+ Here is the caller graph for this function:

void sbuild::chroot::facet::unshare::set_unshare_sysvsem ( bool  unshare)

Set System V SEM unsharing.

Parameters
unshareunshare?

References unshare_sysvsem.

Referenced by set_keyfile().

+ Here is the caller graph for this function:

void sbuild::chroot::facet::unshare::set_unshare_uts ( bool  unshare)

Set System UTS namespace unsharing.

Parameters
unshareunshare?

References unshare_uts.

Referenced by set_keyfile().

+ Here is the caller graph for this function:

void sbuild::chroot::facet::unshare::setup_env ( environment env) const
virtual

Set environment.

Set the environment that the setup scripts will see during execution.

Parameters
envthe environment to set.

Reimplemented from sbuild::chroot::facet::facet.

References sbuild::environment::add(), get_unshare_net(), get_unshare_sysvipc(), get_unshare_sysvsem(), and get_unshare_uts().


The documentation for this class was generated from the following files: