SbuildSession

SbuildSession — session object

Synopsis




            SbuildSession;
            SbuildSessionClass;
enum        SbuildSessionError;
enum        SbuildSessionOperation;
#define     SBUILD_SESSION_ERROR
SbuildSession* sbuild_session_new           (const char *service,
                                             SbuildConfig *config,
                                             SbuildSessionOperation operation,
                                             char **chroots);
SbuildConfig* sbuild_session_get_config     (const SbuildSession *restrict session);
void        sbuild_session_set_config       (SbuildSession *session,
                                             SbuildConfig *config);
SbuildSessionOperation sbuild_session_get_operation
                                            (const SbuildSession *restrict session);
void        sbuild_session_set_operation    (SbuildSession *session,
                                             SbuildSessionOperation operation);
gchar*      sbuild_session_get_session_id   (const SbuildSession *restrict session);
void        sbuild_session_set_session_id   (SbuildSession *session,
                                             const gchar *session_id);
gboolean    sbuild_session_get_force        (const SbuildSession *restrict session);
void        sbuild_session_set_force        (SbuildSession *session,
                                             gboolean force);
char**      sbuild_session_get_chroots      (const SbuildSession *restrict session);
void        sbuild_session_set_chroots      (SbuildSession *session,
                                             char **chroots);
int         sbuild_session_get_child_status (SbuildSession *session);

Object Hierarchy


  GObject
   +----SbuildAuth
         +----SbuildSession

Properties


  "child-status"         gint                  : Read
  "chroots"              GStrv                 : Read / Write / Construct
  "config"               SbuildConfig          : Read / Write / Construct
  "force"                gboolean              : Read / Write
  "operation"            SbuildSessionOperation  : Read / Write / Construct
  "session-id"           gchararray            : Read / Write

Description

This object provides the session handling for schroot. It derives from SbuildAuth, which performs all the necessary PAM actions, specialising it by overriding its virtual functions. This allows more sophisticated handling of user authorisation (groups and root-groups membership in the configuration file) and session management (setting up the session, entering the chroot and running the requested commands or shell).

Details

SbuildSession

typedef struct _SbuildSession SbuildSession;

SbuildSession object.


SbuildSessionClass

typedef struct {
  SbuildAuthClass parent;
} SbuildSessionClass;

SbuildSession class.

SbuildAuthClass parent; the parent class

enum SbuildSessionError

typedef enum
{
  SBUILD_SESSION_ERROR_FORK,
  SBUILD_SESSION_ERROR_CHILD,
  SBUILD_SESSION_ERROR_CHROOT,
  SBUILD_SESSION_ERROR_CHROOT_SETUP
} SbuildSessionError;

The errors which can occur while running a session.

SBUILD_SESSION_ERROR_FORK A child process could not be created
SBUILD_SESSION_ERROR_CHILD An error occured during execution of the child process
SBUILD_SESSION_ERROR_CHROOT An error occured finding the chroot
SBUILD_SESSION_ERROR_CHROOT_SETUP An error occured while running the setup scripts

enum SbuildSessionOperation

typedef enum
{
  SBUILD_SESSION_OPERATION_AUTOMATIC,
  SBUILD_SESSION_OPERATION_BEGIN,
  SBUILD_SESSION_OPERATION_END,
  SBUILD_SESSION_OPERATION_RUN
} SbuildSessionOperation;

The operation to perform when the session is run.

SBUILD_SESSION_OPERATION_AUTOMATIC Create, run and end the session automatically
SBUILD_SESSION_OPERATION_BEGIN Create a session and return the session id
SBUILD_SESSION_OPERATION_END End a session using the current session id
SBUILD_SESSION_OPERATION_RUN Run a session using the current session id

SBUILD_SESSION_ERROR

#define SBUILD_SESSION_ERROR sbuild_session_error_quark()

The error domain for sbuild session errors.


sbuild_session_new ()

SbuildSession* sbuild_session_new           (const char *service,
                                             SbuildConfig *config,
                                             SbuildSessionOperation operation,
                                             char **chroots);

Creates a new SbuildSession. The session will use the provided configuration data, and will run in the list of chroots specified. service MUST be a constant string literal, for security reasons; the application service name should be hard-coded.

service : the PAM service name
config : an SbuildConfig
operation : the SbuildSessionOperation to perform
chroots : the chroots to use
Returns : the newly created SbuildSession.

sbuild_session_get_config ()

SbuildConfig* sbuild_session_get_config     (const SbuildSession *restrict session);

Get the configuration associated with session.

session : an SbuildSession
Returns : an SbuildConfig.

sbuild_session_set_config ()

void        sbuild_session_set_config       (SbuildSession *session,
                                             SbuildConfig *config);

Set the configuration associated with session.

session : an SbuildSession
config : an SbuildConfig

sbuild_session_get_operation ()

SbuildSessionOperation sbuild_session_get_operation
                                            (const SbuildSession *restrict session);

Get the operation session will perform.

session : an SbuildSession
Returns : an SbuildConfig.

sbuild_session_set_operation ()

void        sbuild_session_set_operation    (SbuildSession *session,
                                             SbuildSessionOperation operation);

Set the operation session will perform.

session : an SbuildSession
operation : an SbuildSessionOperation

sbuild_session_get_session_id ()

gchar*      sbuild_session_get_session_id   (const SbuildSession *restrict session);

Get the session identifier. The session identifier is a unique string to identify a session.

session : an SbuildSession
Returns : a string. The string must be freed by the caller.

sbuild_session_set_session_id ()

void        sbuild_session_set_session_id   (SbuildSession *session,
                                             const gchar *session_id);

Set the session identifier for session.

session : an SbuildSession
session_id : an string containing a valid session id

sbuild_session_get_force ()

gboolean    sbuild_session_get_force        (const SbuildSession *restrict session);

Get the force status of session.

session : an SbuildSession
Returns : TRUE if operation will be forced, otherwise FALSE.

sbuild_session_set_force ()

void        sbuild_session_set_force        (SbuildSession *session,
                                             gboolean force);

Set the force status of session.

session : an SbuildSession
force : TRUE to force session operation, otherwise FALSE

sbuild_session_get_chroots ()

char**      sbuild_session_get_chroots      (const SbuildSession *restrict session);

Get the chroots to use in session.

session : an SbuildSession
Returns : a string vector. This string vector points to internally allocated storage in the chroot and must not be freed, modified or stored.

sbuild_session_set_chroots ()

void        sbuild_session_set_chroots      (SbuildSession *session,
                                             char **chroots);

Set the chroots to use in session.

session : an SbuildSession
chroots : the chroots to use

sbuild_session_get_child_status ()

int         sbuild_session_get_child_status (SbuildSession *session);

Get the exit (wait) status of the last child process to run in this session.

session : an SbuildSession
Returns : the exit status.

Properties

The "child-status" property

  "child-status"         gint                  : Read

The exit (wait) status of the child process.

Allowed values: >= 0

Default value: 0


The "chroots" property

  "chroots"              GStrv                 : Read / Write / Construct

The chroots to use.


The "config" property

  "config"               SbuildConfig          : Read / Write / Construct

The chroot configuration data.


The "force" property

  "force"                gboolean              : Read / Write

Force session operation?.

Default value: FALSE


The "operation" property

  "operation"            SbuildSessionOperation  : Read / Write / Construct

The control operation for this session.

Default value: SBUILD_SESSION_OPERATION_AUTOMATIC


The "session-id" property

  "session-id"           gchararray            : Read / Write

The unique session identifier for this session.

Default value: ""