![]() |
![]() |
![]() |
Schroot Reference Manual | ![]() |
---|
SbuildSessionSbuildSession — session object |
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);
"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
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).
typedef struct { SbuildAuthClass parent; } SbuildSessionClass;
SbuildSession class.
SbuildAuthClass parent ; |
the parent class |
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 |
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 |
#define SBUILD_SESSION_ERROR sbuild_session_error_quark()
The error domain for sbuild session errors.
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. |
SbuildConfig* sbuild_session_get_config (const SbuildSession *restrict session);
Get the configuration associated with session
.
session : |
an SbuildSession |
Returns : | an SbuildConfig. |
void sbuild_session_set_config (SbuildSession *session, SbuildConfig *config);
Set the configuration associated with session
.
session : |
an SbuildSession |
config : |
an SbuildConfig |
SbuildSessionOperation sbuild_session_get_operation (const SbuildSession *restrict session);
Get the operation session
will perform.
session : |
an SbuildSession |
Returns : | an SbuildConfig. |
void sbuild_session_set_operation (SbuildSession *session, SbuildSessionOperation operation);
Set the operation session
will perform.
session : |
an SbuildSession |
operation : |
an SbuildSessionOperation |
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. |
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 |
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. |
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 |
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. |
void sbuild_session_set_chroots (SbuildSession *session, char **chroots);
Set the chroots to use in session
.
session : |
an SbuildSession |
chroots : |
the chroots to use |
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. |
child-status
" property"child-status" gint : Read
The exit (wait) status of the child process.
Allowed values: >= 0
Default value: 0
config
" property"config" SbuildConfig : Read / Write / Construct
The chroot configuration data.
operation
" property"operation" SbuildSessionOperation : Read / Write / Construct
The control operation for this session.
Default value: SBUILD_SESSION_OPERATION_AUTOMATIC
<< SbuildAuthConvTty | Closure Marshallers >> |