const DOM_SID *sid,
TALLOC_CTX *ctx,
ADS_STRUCT *ads, LDAPMessage *msg,
- char **homedir, char **shell, char **gecos, gid_t *p_gid);
+ const char **homedir, const char **shell,
+ const char **gecos, gid_t *p_gid);
NTSTATUS (*map_to_alias)(TALLOC_CTX *mem_ctx,
struct nss_domain_entry *e,
const char *name, char **alias);
NTSTATUS nss_init( const char **nss_list );
NTSTATUS nss_get_info( const char *domain, const DOM_SID *user_sid,
- TALLOC_CTX *ctx,
+ TALLOC_CTX *ctx,
ADS_STRUCT *ads, LDAPMessage *msg,
- char **homedir, char **shell, char **gecos,
- gid_t *p_gid);
+ const char **homedir, const char **shell,
+ const char **gecos, gid_t *p_gid);
NTSTATUS nss_map_to_alias( TALLOC_CTX *mem_ctx, const char *domain,
const char *name, char **alias );
TALLOC_CTX *mem_ctx,
ADS_STRUCT *ads,
LDAPMessage *msg,
- char **homedir,
- char **shell,
- char **gecos,
+ const char **homedir,
+ const char **shell,
+ const char **gecos,
uint32 *gid )
{
const char *attrs[] = {NULL, /* attr_homedir */
TALLOC_CTX * ctx,
ADS_STRUCT * ads,
LDAPMessage * msg,
- char **homedir,
- char **shell, char **gecos, gid_t * p_gid)
+ const char **homedir,
+ const char **shell,
+ const char **gecos, gid_t * p_gid)
{
NTSTATUS nt_status;
struct likewise_cell *cell;
enum id_type * type, const DOM_SID * sid);
NTSTATUS(*get_nss_info) (const DOM_SID * sid,
TALLOC_CTX * ctx,
- char **homedir,
- char **shell, char **gecos, gid_t * p_gid);
+ const char **homedir,
+ const char **shell,
+ const char **gecos, gid_t * p_gid);
NTSTATUS(*map_to_alias) (TALLOC_CTX * mem_ctx,
const char *domain,
const char *name, char **alias);
static NTSTATUS pull_nss_info(struct likewise_cell *c,
LDAPMessage *msg,
TALLOC_CTX *ctx,
- char **homedir,
- char **shell,
- char **gecos,
+ const char **homedir,
+ const char **shell,
+ const char **gecos,
gid_t *p_gid)
{
NTSTATUS nt_status;
+ char *tmp;
- nt_status = get_object_string(c, msg, ctx, ADEX_ATTR_HOMEDIR, homedir);
+ nt_status = get_object_string(c, msg, ctx, ADEX_ATTR_HOMEDIR, &tmp);
BAIL_ON_NTSTATUS_ERROR(nt_status);
+ *homedir = tmp;
- nt_status = get_object_string(c, msg, ctx, ADEX_ATTR_SHELL, shell);
+ nt_status = get_object_string(c, msg, ctx, ADEX_ATTR_SHELL, &tmp);
BAIL_ON_NTSTATUS_ERROR(nt_status);
+ *shell = tmp;
- nt_status = get_object_string(c, msg, ctx, ADEX_ATTR_GECOS, gecos);
+ nt_status = get_object_string(c, msg, ctx, ADEX_ATTR_GECOS, &tmp);
/* Gecos is often not set so ignore failures */
+ *gecos = tmp;
nt_status = get_object_uint32(c, msg, ADEX_ATTR_GIDNUM, p_gid);
BAIL_ON_NTSTATUS_ERROR(nt_status);
static NTSTATUS _ccp_nss_get_info(const DOM_SID * sid,
TALLOC_CTX * ctx,
- char **homedir,
- char **shell,
- char **gecos, gid_t * p_gid)
+ const char **homedir,
+ const char **shell,
+ const char **gecos, gid_t * p_gid)
{
struct likewise_cell *cell = NULL;
LDAPMessage *msg = NULL;
TALLOC_CTX *ctx,
ADS_STRUCT *ads,
LDAPMessage *msg,
- char **homedir,
- char **shell,
- char **gecos,
+ const char **homedir,
+ const char **shell,
+ const char **gecos,
gid_t *p_gid )
{
NTSTATUS nt_status = NT_STATUS_UNSUCCESSFUL;
/********************************************************************
*******************************************************************/
- NTSTATUS nss_get_info( const char *domain, const DOM_SID *user_sid,
+NTSTATUS nss_get_info( const char *domain, const DOM_SID *user_sid,
TALLOC_CTX *ctx,
ADS_STRUCT *ads, LDAPMessage *msg,
- char **homedir, char **shell, char **gecos,
- gid_t *p_gid)
+ const char **homedir, const char **shell,
+ const char **gecos, gid_t *p_gid)
{
struct nss_domain_entry *p;
struct nss_info_methods *m;
TALLOC_CTX *ctx,
ADS_STRUCT *ads,
LDAPMessage *msg,
- char **homedir,
- char **shell,
- char **gecos,
+ const char **homedir,
+ const char **shell,
+ const char **gecos,
gid_t *gid )
{
if ( !homedir || !shell || !gecos )
/* Server state structure */
-typedef struct {
- char *acct_name;
- char *full_name;
- char *homedir;
- char *shell;
+typedef struct winbind_userinfo {
+ const char *acct_name;
+ const char *full_name;
+ const char *homedir;
+ const char *shell;
gid_t primary_gid; /* allow the nss_info
backend to set the primary group */
DOM_SID user_sid; /* NT user and primary group SIDs */
i = 0;
for (msg = ads_first_entry(ads, res); msg; msg = ads_next_entry(ads, msg)) {
- char *name, *gecos = NULL;
- char *homedir = NULL;
- char *shell = NULL;
+ const char *name;
+ const char *gecos = NULL;
+ const char *homedir = NULL;
+ const char *shell = NULL;
uint32 group;
uint32 atype;
DOM_SID user_sid;
const DOM_SID *user_sid,
TALLOC_CTX *ctx,
ADS_STRUCT *ads, LDAPMessage *msg,
- char **homedir, char **shell, char **gecos,
- gid_t *p_gid)
+ const char **homedir, const char **shell,
+ const char **gecos, gid_t *p_gid)
{
struct winbind_cache *cache = get_cache(domain);
struct cache_entry *centry = NULL;
const DOM_SID *user_sid,
TALLOC_CTX *ctx,
ADS_STRUCT *ads, LDAPMessage *msg,
- char **homedir, char **shell, char **gecos,
- gid_t *p_gid);
+ const char **homedir, const char **shell,
+ const char **gecos, gid_t *p_gid);
/* The following definitions come from winbindd/winbindd_ccache_access.c */