| user_private.h | | user_private.h | |
| | | | |
| skipping to change at line 42 | | skipping to change at line 42 | |
| #include <libintl.h> | | #include <libintl.h> | |
| #include <locale.h> | | #include <locale.h> | |
| #ifdef WITH_SELINUX | | #ifdef WITH_SELINUX | |
| #include <selinux/selinux.h> | | #include <selinux/selinux.h> | |
| #endif | | #endif | |
| #include "user.h" | | #include "user.h" | |
| | | | |
| G_BEGIN_DECLS | | G_BEGIN_DECLS | |
| | | | |
| #define LU_ENT_MAGIC 0x00000006 | | #define LU_ENT_MAGIC 0x00000006 | |
|
| #define LU_MODULE_VERSION 0x000c0000 | | #define LU_MODULE_VERSION 0x000d0000 | |
| #define _(String) dgettext(PACKAGE_NAME, String) | | #define _(String) dgettext(PACKAGE_NAME, String) | |
| #define N_(String) String | | #define N_(String) String | |
| /* A crypt hash is at least 64 bits of data, encoded 6 bits per printable | | /* A crypt hash is at least 64 bits of data, encoded 6 bits per printable | |
| * character, and we assume that all crypt algorithms generate strings at | | * character, and we assume that all crypt algorithms generate strings at | |
| * least this long. */ | | * least this long. */ | |
| #define LU_CRYPTED "{CRYPT}" | | #define LU_CRYPTED "{CRYPT}" | |
| #define LU_CRYPT_SIZE howmany(64,6) | | #define LU_CRYPT_SIZE howmany(64,6) | |
| #define LU_CRYPT_INVALID(String) \ | | #define LU_CRYPT_INVALID(String) \ | |
| ((strlen(String) > 0) && \ | | ((strlen(String) > 0) && \ | |
| (String[0] != '!') && \ | | (String[0] != '!') && \ | |
| (strlen(String) < LU_CRYPT_SIZE)) | | (strlen(String) < LU_CRYPT_SIZE)) | |
| | | | |
| #define LU_COMMON_DEFAULT_PASSWORD "!!" | | #define LU_COMMON_DEFAULT_PASSWORD "!!" | |
| #define LU_COMMON_DEFAULT_SHADOW_PASSWORD "x" | | #define LU_COMMON_DEFAULT_SHADOW_PASSWORD "x" | |
| #define LU_COMMON_DEFAULT_SHELL "/bin/bash" | | #define LU_COMMON_DEFAULT_SHELL "/bin/bash" | |
| | | | |
|
| | | /* Well-known module names */ | |
| | | #define LU_MODULE_NAME_FILES "files" | |
| | | #define LU_MODULE_NAME_LDAP "ldap" | |
| | | #define LU_MODULE_NAME_SHADOW "shadow" | |
| | | | |
| /* A string cache structure. Useful for side-stepping most issues with | | /* A string cache structure. Useful for side-stepping most issues with | |
| * whether or not returned strings should be freed. */ | | * whether or not returned strings should be freed. */ | |
| struct lu_string_cache { | | struct lu_string_cache { | |
| GTree *tree; | | GTree *tree; | |
| char *(*cache) (struct lu_string_cache *, const char *); | | char *(*cache) (struct lu_string_cache *, const char *); | |
| void (*free) (struct lu_string_cache *); | | void (*free) (struct lu_string_cache *); | |
| }; | | }; | |
| | | | |
| /* A function to create a new cache. */ | | /* A function to create a new cache. */ | |
| struct lu_string_cache *lu_string_cache_new(gboolean case_sensitive); | | struct lu_string_cache *lu_string_cache_new(gboolean case_sensitive); | |
| | | | |
| skipping to change at line 120 | | skipping to change at line 125 | |
| /* A module structure. */ | | /* A module structure. */ | |
| struct lu_module { | | struct lu_module { | |
| u_int32_t version; /* Should be LU_MODULE_VERSION. */ | | u_int32_t version; /* Should be LU_MODULE_VERSION. */ | |
| GModule *module_handle; /* Pointer to the module data kept b
y | | GModule *module_handle; /* Pointer to the module data kept b
y | |
| GModule. */ | | GModule. */ | |
| struct lu_string_cache *scache; /* A string cache. */ | | struct lu_string_cache *scache; /* A string cache. */ | |
| const char *name; /* Name of the module. */ | | const char *name; /* Name of the module. */ | |
| struct lu_context *lu_context; /* Context the module was opened in.
*/ | | struct lu_context *lu_context; /* Context the module was opened in.
*/ | |
| void *module_context; /* Module-private data. */ | | void *module_context; /* Module-private data. */ | |
| | | | |
|
| | | /* Check if the current list of module combinations (array of module | |
| | | names) is valid. Note that this can be called several times duri | |
| | | ng | |
| | | the lifetime of the module (probably at least twice, for "modules | |
| | | " | |
| | | and "create_modules"). */ | |
| | | gboolean(*valid_module_combination) (struct lu_module *module, | |
| | | GValueArray *names, | |
| | | struct lu_error **error); | |
| | | | |
| /* A function for telling if the module makes use of elevated | | /* A function for telling if the module makes use of elevated | |
| * privileges (i.e., modifying files which normal users can't. */ | | * privileges (i.e., modifying files which normal users can't. */ | |
| gboolean(*uses_elevated_privileges) (struct lu_module * module); | | gboolean(*uses_elevated_privileges) (struct lu_module * module); | |
| | | | |
| /* Functions for looking up users by name or ID. */ | | /* Functions for looking up users by name or ID. */ | |
| gboolean(*user_lookup_name) (struct lu_module * module, | | gboolean(*user_lookup_name) (struct lu_module * module, | |
| const char *name, | | const char *name, | |
| struct lu_ent * ent, | | struct lu_ent * ent, | |
| struct lu_error ** error); | | struct lu_error ** error); | |
| gboolean(*user_lookup_id) (struct lu_module * module, | | gboolean(*user_lookup_id) (struct lu_module * module, | |
| | | | |
End of changes. 3 change blocks. |
| 1 lines changed or deleted | | 16 lines changed or added | |
|