error.h   error.h 
skipping to change at line 65 skipping to change at line 65
/* Initialization or module-loading errors. */ /* Initialization or module-loading errors. */
lu_error_init, lu_error_init,
lu_error_module_load, lu_error_module_load,
lu_error_module_sym, lu_error_module_sym,
lu_error_module_version, lu_error_module_version,
/* Since 0.53 */ /* Since 0.53 */
lu_error_unlock_empty, lu_error_unlock_empty,
/* Since 0.56 */ /* Since 0.56 */
lu_error_invalid_attribute_value lu_error_invalid_attribute_value,
/* Since 0.57 */
lu_error_invalid_module_combination,
} lu_status_t; } lu_status_t;
typedef struct lu_error { typedef struct lu_error {
enum lu_status code; enum lu_status code;
char *string; char *string;
} lu_error_t; } lu_error_t;
/* Checks that a passed-in error pointer is not already populated, and call s /* Checks that a passed-in error pointer is not already populated, and call s
abort() if it is. */ abort() if it is. */
#define LU_ERROR_CHECK(err_p_p) \ #define LU_ERROR_CHECK(err_p_p) \
 End of changes. 1 change blocks. 
1 lines changed or deleted 4 lines changed or added


 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

This html diff was produced by rfcdiff 1.41. The latest version is available from http://tools.ietf.org/tools/rfcdiff/