/*
- Solaris NSS wrapper for winbind
+ Solaris NSS wrapper for winbind
- Shirish Kalele 2000
-
- Based on Luke Howard's ldap_nss module for Solaris
+
+ Based on Luke Howard's ldap_nss module for Solaris
*/
/*
#include <sys/syslog.h>
#endif /*hpux*/
-#if defined(HAVE_NSS_COMMON_H) || defined(HPUX)
+#if defined(HAVE_NSS_COMMON_H) || defined(HPUX)
#undef NSS_DEBUG
gid_t *gid_array;
int maxgids;
int force_slow_way;
- int (*str2ent)(const char *instr, int instr_len, void *ent,
+ int (*str2ent)(const char *instr, int instr_len, void *ent,
char *buffer, int buflen);
- nss_status_t (*process_cstr)(const char *instr, int instr_len,
+ nss_status_t (*process_cstr)(const char *instr, int instr_len,
struct nss_groupsbymem *);
int numgids;
};
int* errnop = &NSS_ARGS(args)->erange;
char logmsg[80];
- ret = _nss_winbind_getpwent_r(result, buffer,
+ ret = _nss_winbind_getpwent_r(result, buffer,
buflen, errnop);
if(ret == NSS_STATUS_SUCCESS)
snprintf(logmsg, 79, "_nss_winbind_getpwent_solwrap: Returning error: %d.\n",ret);
NSS_DEBUG(logmsg);
}
-
+
return ret;
}
&NSS_ARGS(args)->erange);
if(ret == NSS_STATUS_SUCCESS)
NSS_ARGS(args)->returnval = (void*) result;
-
+
return ret;
}
{
NSS_STATUS ret;
struct passwd* result = (struct passwd*) NSS_ARGS(args)->buf.result;
-
+
NSS_DEBUG("_nss_winbind_getpwuid_solwrap");
ret = _nss_winbind_getpwuid_r (NSS_ARGS(args)->key.uid,
result,
&NSS_ARGS(args)->erange);
if(ret == NSS_STATUS_SUCCESS)
NSS_ARGS(args)->returnval = (void*) result;
-
+
return ret;
}
const char* cfg_args)
{
nss_backend_t *be;
-
+
if(!(be = SMB_MALLOC_P(nss_backend_t)) )
return NULL;
int* errnop = &NSS_ARGS(args)->erange;
char logmsg[80];
- ret = _nss_winbind_getgrent_r(result, buffer,
+ ret = _nss_winbind_getgrent_r(result, buffer,
buflen, errnop);
if(ret == NSS_STATUS_SUCCESS)
}
return ret;
-
+
}
static NSS_STATUS
if(ret == NSS_STATUS_SUCCESS)
NSS_ARGS(args)->returnval = (void*) result;
-
+
return ret;
}
-
+
static NSS_STATUS
_nss_winbind_getgrgid_solwrap(nss_backend_t* be, void* args)
{
return NSS_STATUS_SUCCESS;
}
-static nss_backend_op_t group_ops[] =
+static nss_backend_op_t group_ops[] =
{
_nss_winbind_group_destr,
_nss_winbind_endgrent_solwrap,
_nss_winbind_getgrnam_solwrap,
_nss_winbind_getgrgid_solwrap,
_nss_winbind_getgroupsbymember_solwrap
-};
+};
nss_backend_t*
_nss_winbind_group_constr (const char* db_name,
be->ops = group_ops;
be->n_ops = sizeof(group_ops) / sizeof(nss_backend_op_t);
-
+
NSS_DEBUG("Initialized nss_winbind group backend");
return be;
}
argp->erange = 1;
return NSS_STR_PARSE_ERANGE;
}
-
+
data = response->data.winsresp;
for( i = 0; i < addrcount; i++) {
p = strchr(data, '\t');
ZERO_STRUCT(response);
ZERO_STRUCT(request);
-
+
strncpy(request.data.winsreq, argp->key.name, sizeof(request.data.winsreq) - 1);
request.data.winsreq[sizeof(request.data.winsreq) - 1] = '\0';
request.data.winsreq, sizeof request.data.winsreq);
#else
snprintf(request.data.winsreq, sizeof request.data.winsreq,
- "%u.%u.%u.%u",
+ "%u.%u.%u.%u",
((unsigned char *)argp->key.hostaddr.addr)[0],
((unsigned char *)argp->key.hostaddr.addr)[1],
((unsigned char *)argp->key.hostaddr.addr)[2],