558 lines
19 KiB
Diff
558 lines
19 KiB
Diff
changeset: 451:4d7bb63d7050
|
|
user: Petr Vandrovec <petr@vandrovec.name>
|
|
date: Sun Oct 16 04:07:06 2005 +0200
|
|
files: contrib/ncp_nss_lib/nss_cfgfile.c contrib/ncp_nss_lib/nss_cfgfile.h contrib/ncp_nss_lib/nss_ncp.c contrib/ncp_nss_lib/nss_ncp.h contrib/ncp_nss_lib/test_ncp_nss.c
|
|
description:
|
|
Fix warnings in the nss module. Tweak some functions to not take useless
|
|
arguments. Fix some bugs where long ints are printed by %d...
|
|
|
|
|
|
diff -r f18f9f05b9b8 -r 4d7bb63d7050 contrib/ncp_nss_lib/nss_cfgfile.c
|
|
--- a/contrib/ncp_nss_lib/nss_cfgfile.c Sun Oct 16 02:52:35 2005 +0200
|
|
+++ b/contrib/ncp_nss_lib/nss_cfgfile.c Sun Oct 16 04:07:06 2005 +0200
|
|
@@ -40,6 +40,7 @@
|
|
#include <sys/syslog.h>
|
|
|
|
#include "nss_cfgfile.h"
|
|
+#include "nss_ncp.h"
|
|
// temporary define (waiting for a better Makefile)
|
|
#define GLOBALCFGFILE "/etc/ncpfs.conf"
|
|
#ifndef GLOBALCFGFILE
|
|
@@ -49,7 +50,7 @@
|
|
|
|
// #define DEBUG 1
|
|
|
|
-static struct nss_ncp_conf* alloc_nss_ncp_conf (){
|
|
+static struct nss_ncp_conf* alloc_nss_ncp_conf (void){
|
|
struct nss_ncp_conf * conf;
|
|
|
|
conf= (struct nss_ncp_conf *)malloc(sizeof(*conf));
|
|
@@ -61,7 +62,7 @@ static struct nss_ncp_conf* alloc_nss_nc
|
|
|
|
void free_nss_ncp_conf (struct nss_ncp_conf *conf){
|
|
#define FREEFIELD(x) do if (conf->x) {free(conf->x) ; conf->x=NULL;} while (0);
|
|
- if (conf && conf !=&defConf) {
|
|
+ if (conf) {
|
|
FREEFIELD(server);
|
|
FREEFIELD(startCtx);
|
|
FREEFIELD(ctrlGroup);
|
|
@@ -107,7 +108,7 @@ struct check {
|
|
const char *option; /* configuration option */
|
|
int mandatory; /* can be empty or null */
|
|
int found; /*set to TRUE if found in cfg file */
|
|
- void ** value_ptr; /* temporary storage place */
|
|
+ char ** value_ptr; /* temporary storage place */
|
|
int isNum; /* 1 is numeric, 0 is string*/
|
|
const char* defValue;
|
|
};
|
|
@@ -120,10 +121,10 @@ void printResults (const char * infos,st
|
|
for (ptr=results; ptr->option; ptr++) {
|
|
if (ptr->isNum)
|
|
printf ("option=%s mandatory=%d found=%d value=%d isNum=%d defvalue=%s\n",
|
|
- ptr->option,ptr->mandatory,ptr->found,(int*)*ptr->value_ptr,ptr->isNum,ptr->defValue);
|
|
+ ptr->option,ptr->mandatory,ptr->found,*(int**)ptr->value_ptr,ptr->isNum,ptr->defValue);
|
|
else
|
|
printf ("option=%s mandatory=%d found=%d value=%s isNum=%d defvalue=%s\n",
|
|
- ptr->option,ptr->mandatory,ptr->found,(char*)*ptr->value_ptr,ptr->isNum,ptr->defValue);
|
|
+ ptr->option,ptr->mandatory,ptr->found,*ptr->value_ptr,ptr->isNum,ptr->defValue);
|
|
}
|
|
|
|
}
|
|
@@ -175,13 +176,13 @@ static int process_line (char* cptr, str
|
|
}
|
|
*eptr = 0;
|
|
if (ptr->isNum) {
|
|
- *(int**)ptr->value_ptr=strtoul (sptr,&errPtr,0);
|
|
+ *(int*)ptr->value_ptr=strtoul (sptr,&errPtr,0);
|
|
ptr->found= ((*sptr) && !(*errPtr)); //not empty and no error
|
|
} else {
|
|
if (eptr>sptr) { // do not take an empty string value
|
|
char *v=strdup(sptr);
|
|
if (v) {
|
|
- *(char**)ptr->value_ptr=v;
|
|
+ *ptr->value_ptr=v;
|
|
ptr->found= TRUE;
|
|
}else
|
|
return 1;
|
|
@@ -201,11 +202,11 @@ static int fix_conf (struct check *resul
|
|
return 1;
|
|
}
|
|
if (ptr->isNum) {
|
|
- *(int**)ptr->value_ptr=strtoul (ptr->defValue,NULL,0);
|
|
+ *(int*)ptr->value_ptr=strtoul (ptr->defValue,NULL,0);
|
|
}else {
|
|
char * v=strdup(ptr->defValue);
|
|
if (v)
|
|
- *(char**)ptr->value_ptr=v;
|
|
+ *ptr->value_ptr=v;
|
|
else
|
|
return 1;
|
|
}
|
|
@@ -223,22 +224,21 @@ static struct nss_ncp_conf *read_conf_fi
|
|
if (!conf)
|
|
return NULL;
|
|
{
|
|
- struct nss_ncp_conf * pconf=conf;
|
|
struct check check_confs[] = {
|
|
/*option mandat found value_ptr isNum defValue */
|
|
- {"debug", FALSE,FALSE,(void**)&conf->debug, TRUE, "0"},
|
|
- {"useTree", FALSE,FALSE,(void**)&conf->useTree, TRUE, "0"},
|
|
- {"server", TRUE,FALSE, (void**)&conf->server, FALSE, ""},
|
|
- {"startCtx", FALSE,FALSE,(void**)&conf->startCtx, FALSE, ""},
|
|
- {"ctrlGroup", FALSE,FALSE,(void**)&conf->ctrlGroup, FALSE, ""},
|
|
- {"defGid", FALSE,FALSE,(void**)&conf->defGid, TRUE, "100"},
|
|
- {"defShell", FALSE,FALSE,(void**)&conf->defShell, FALSE, "/bin/bash"},
|
|
- {"fallbackUid", FALSE,FALSE,(void**)&conf->fallbackUid, TRUE, "-1"},
|
|
- {"fallbackGid", FALSE,FALSE,(void**)&conf->fallbackGid, TRUE, "-1"},
|
|
- {"doPasswd", FALSE,FALSE,(void**)&conf->doPassword, TRUE, "0"},
|
|
- {"doGroup", FALSE,FALSE,(void**)&conf->doGroup, TRUE, "0"},
|
|
- {"doShadow", FALSE,FALSE,(void**)&conf->doShadow, TRUE, "0"},
|
|
- {NULL , FALSE,FALSE,NULL, FALSE, NULL}
|
|
+ {"debug", FALSE,FALSE,(char**)&conf->debug, TRUE, "0"},
|
|
+ {"useTree", FALSE,FALSE,(char**)&conf->useTree, TRUE, "0"},
|
|
+ {"server", TRUE, FALSE, &conf->server, FALSE, ""},
|
|
+ {"startCtx", FALSE,FALSE, &conf->startCtx, FALSE, ""},
|
|
+ {"ctrlGroup", FALSE,FALSE, &conf->ctrlGroup, FALSE, ""},
|
|
+ {"defGid", FALSE,FALSE,(char**)&conf->defGid, TRUE, "100"},
|
|
+ {"defShell", FALSE,FALSE, &conf->defShell, FALSE, "/bin/bash"},
|
|
+ {"fallbackUid", FALSE,FALSE,(char**)&conf->fallbackUid, TRUE, "-1"},
|
|
+ {"fallbackGid", FALSE,FALSE,(char**)&conf->fallbackGid, TRUE, "-1"},
|
|
+ {"doPasswd", FALSE,FALSE,(char**)&conf->doPassword, TRUE, "0"},
|
|
+ {"doGroup", FALSE,FALSE,(char**)&conf->doGroup, TRUE, "0"},
|
|
+ {"doShadow", FALSE,FALSE,(char**)&conf->doShadow, TRUE, "0"},
|
|
+ {NULL , FALSE,FALSE, NULL, FALSE, NULL}
|
|
};
|
|
|
|
char cfgline[16384];
|
|
@@ -259,7 +259,6 @@ static struct nss_ncp_conf *read_conf_fi
|
|
cptr++;
|
|
if (*cptr != '[')
|
|
continue;
|
|
-sstart:;
|
|
if (strncasecmp(++cptr, mySection, seclen))
|
|
continue;
|
|
if (cptr[seclen] != ']')
|
|
@@ -299,7 +298,6 @@ ssend:
|
|
return conf;
|
|
}
|
|
|
|
-error:
|
|
#ifdef DEBUG
|
|
printResults("after reading CFG error",check_confs);
|
|
#endif
|
|
@@ -310,14 +308,12 @@ error:
|
|
|
|
}
|
|
|
|
-struct nss_ncp_conf * parse_conf (char * confFile) {
|
|
-
|
|
+struct nss_ncp_conf* parse_conf(void) {
|
|
struct cfgFile *cfg;
|
|
struct nss_ncp_conf *conf;
|
|
#ifdef DEBUG
|
|
printf("entering parse_conf\n");
|
|
#endif
|
|
- //return &defConf;
|
|
cfg = cfgOpenFile(GLOBALCFGFILE, FALSE);
|
|
if (!cfg)
|
|
return NULL;
|
|
diff -r f18f9f05b9b8 -r 4d7bb63d7050 contrib/ncp_nss_lib/nss_cfgfile.h
|
|
--- a/contrib/ncp_nss_lib/nss_cfgfile.h Sun Oct 16 02:52:35 2005 +0200
|
|
+++ b/contrib/ncp_nss_lib/nss_cfgfile.h Sun Oct 16 04:07:06 2005 +0200
|
|
@@ -20,11 +20,7 @@ struct nss_ncp_conf {
|
|
int doShadow; // if 0, will return immediarly NSS_STATUS_UNAVAILABLE even if ncp is listed in /etc/nsswitch.conf
|
|
};
|
|
|
|
-
|
|
-
|
|
-static struct nss_ncp_conf defConf ={0,TRUE,"INSA_ROOT","[Root]",NULL,100,"/bin/bash",-1,-1,TRUE,TRUE,TRUE};
|
|
-
|
|
-struct nss_ncp_conf * parse_conf (char * confFile);
|
|
-void free_nss_ncp_conf (struct nss_ncp_conf *conf);
|
|
+struct nss_ncp_conf* parse_conf(void);
|
|
+void free_nss_ncp_conf(struct nss_ncp_conf *conf);
|
|
|
|
#endif
|
|
diff -r f18f9f05b9b8 -r 4d7bb63d7050 contrib/ncp_nss_lib/nss_ncp.c
|
|
--- a/contrib/ncp_nss_lib/nss_ncp.c Sun Oct 16 02:52:35 2005 +0200
|
|
+++ b/contrib/ncp_nss_lib/nss_ncp.c Sun Oct 16 04:07:06 2005 +0200
|
|
@@ -77,7 +77,7 @@
|
|
#include "nss_cfgfile.h"
|
|
|
|
// only if logfile has been opened by nss API functions (debug mode)
|
|
-void trace (int debugMode,int err,const char * format,... ) {
|
|
+static void trace (int debugMode,int err,const char * format,... ) {
|
|
va_list args;
|
|
if (debugMode) {
|
|
va_start(args,format);
|
|
@@ -219,7 +219,7 @@ static int fix_nw_user_info (struct nw_u
|
|
return 1;
|
|
}
|
|
}else {
|
|
- ui->uid== (uid_t)-1; // unable to read CN (NDS browse rights not set) , skip it !
|
|
+ ui->uid = (uid_t)-1; // unable to read CN (NDS browse rights not set) , skip it !
|
|
}
|
|
return 0;
|
|
}
|
|
@@ -343,7 +343,7 @@ static int fix_nw_group_info (struct nw_
|
|
}
|
|
}
|
|
}else {
|
|
- gi->gid== (gid_t)-1; // unable to read CN (NDS browse rights not set) , skip it !
|
|
+ gi->gid = (gid_t)-1; // unable to read CN (NDS browse rights not set) , skip it !
|
|
}
|
|
return 0;
|
|
}
|
|
@@ -514,7 +514,7 @@ static int fix_nw_shadow_info (struct nw
|
|
|
|
}
|
|
}else {
|
|
- si->uid== (uid_t)-1; // unable to read CN (NDS browse rights not set) , skip it !
|
|
+ si->uid = (uid_t)-1; // unable to read CN (NDS browse rights not set) , skip it !
|
|
}
|
|
return 0;
|
|
}
|
|
@@ -564,7 +564,7 @@ outnomem:
|
|
|
|
static void print_nw_shadow_info (struct nw_shadow_info si){
|
|
|
|
- printf("%s[%d]:%s:%d:%d:%d:%d:%d:%d:%d\n",si.cn,si.uid,si.passwd,si.lstchg,si.sp_min,si.sp_max,si.sp_warn,si.sp_inact,si.sp_expire,si.sp_flag);
|
|
+ printf("%s[%d]:%s:%ld:%ld:%ld:%ld:%ld:%ld:%ld\n",si.cn,si.uid,si.passwd,si.lstchg,si.sp_min,si.sp_max,si.sp_warn,si.sp_inact,si.sp_expire,si.sp_flag);
|
|
}
|
|
|
|
static void print_shadow (struct spwd spw){
|
|
@@ -579,8 +579,8 @@ struct nw_user_group_info {
|
|
uid_t uid;
|
|
gid_t* groups;
|
|
size_t used;
|
|
- size_t alloc;
|
|
- int qflag;
|
|
+ size_t alloc;
|
|
+ int qflag;
|
|
};
|
|
|
|
|
|
@@ -614,7 +614,7 @@ static int fix_nw_user_group_info (struc
|
|
if (ui->uid== (uid_t)-1)
|
|
ui->uid=conf->fallbackUid;
|
|
}else {
|
|
- ui->uid== (uid_t)-1; // unable to read CN (NDS browse rights not set) , skip it !
|
|
+ ui->uid = (uid_t)-1; // unable to read CN (NDS browse rights not set) , skip it !
|
|
}
|
|
return 0;
|
|
}
|
|
@@ -628,11 +628,11 @@ static enum nss_status nw_user_group_inf
|
|
long int *size, gid_t * groups,long int limit,int *errnop,struct nss_ncp_conf * conf) {
|
|
|
|
if (ui.uid != (uid_t)-1) {
|
|
- int i;
|
|
- for (i=0; i<ui.used; i++) {
|
|
+ size_t i;
|
|
+ for (i=0; i < ui.used; i++) {
|
|
gid_t gid=ui.groups[i];
|
|
if (gid != group) { // group number to skip
|
|
- if (*start == *size)
|
|
+ if (*start == *size) {
|
|
if (limit <=0) { // no more space, realloc if permitted (limit <=0)
|
|
gid_t* ngroups=realloc(groups, 2* *size * sizeof(*groups));
|
|
if (!ngroups) {
|
|
@@ -642,6 +642,7 @@ static enum nss_status nw_user_group_inf
|
|
*size *=2;
|
|
}else // no reallocation permitted, leave returning found groups so far
|
|
break;
|
|
+ }
|
|
groups[*start]=gid;
|
|
*start +=1;
|
|
if (*start ==limit) {
|
|
@@ -663,7 +664,7 @@ outnomem:
|
|
}
|
|
|
|
static void print_nw_user_group_info (struct nw_user_group_info ui){
|
|
- int i;
|
|
+ size_t i;
|
|
|
|
printf("%s:%d:%d:%d:",ui.cn,ui.uid,ui.used,ui.alloc);
|
|
for (i=0;i <ui.used;i++)
|
|
@@ -672,8 +673,8 @@ static void print_nw_user_group_info (st
|
|
}
|
|
|
|
static void print_user_groups(gid_t * groups, long int start, long int size){
|
|
- int i;
|
|
- printf("start=%d size=%d\n",start,size);
|
|
+ long int i;
|
|
+ printf("start=%ld size=%ld\n",start,size);
|
|
for (i=0; i<start; i++)
|
|
printf("%d ",groups[i]);
|
|
printf("\n");
|
|
@@ -1018,9 +1019,7 @@ static NWDSCCODE nds_user_location2(NWDS
|
|
static NWDSCCODE nds_user_location2(NWDSContextHandle ctx, const void *val, void *arg){
|
|
struct nw_user_info *ui = (struct nw_user_info *) arg;
|
|
const char *pt = (const char *) val;
|
|
- char *v;
|
|
int n;
|
|
- int err;
|
|
|
|
trace(ui->qflag,LOG_NOTICE, "start of NW location got %s\n ", pt);
|
|
|
|
@@ -1318,9 +1317,7 @@ static NWDSCCODE nds_shadow_location(NWD
|
|
|
|
struct nw_shadow_info *si = (struct nw_shadow_info *) arg;
|
|
const char *pt = (const char *) val;
|
|
- char *v;
|
|
int n;
|
|
- int err;
|
|
|
|
trace(si->qflag & QF_DEBUG,LOG_NOTICE, "shadow: start of NW location got %s\n ", pt);
|
|
|
|
@@ -1434,10 +1431,7 @@ static NWDSCCODE nds_user_location3(NWDS
|
|
static NWDSCCODE nds_user_location3(NWDSContextHandle ctx, const void *val, void *arg){
|
|
struct nw_user_group_info *ui = (struct nw_user_group_info *) arg;
|
|
const char *pt = (const char *) val;
|
|
- char *v;
|
|
int n;
|
|
- int err;
|
|
-
|
|
|
|
trace(ui->qflag & QF_DEBUG,LOG_NOTICE, "start of NW location got %s\n ", pt);
|
|
|
|
@@ -1814,7 +1808,6 @@ getgroupmembers(NWDSContextHandle *conte
|
|
{ ATTR_MEMBERS, nds_get_group_members, SYN_MEMBERS},
|
|
{ NULL, NULL, SYN_UNKNOWN }};
|
|
|
|
- NWDSCCODE err;
|
|
trace(conf->debug, LOG_NOTICE,"entering getgroupmembers for group %s",groupName);
|
|
ccode=CreateContextAndConn ( context,conn,conf);
|
|
if (ccode)
|
|
@@ -1834,12 +1827,12 @@ static struct ObjectList* ndsShadows=NUL
|
|
|
|
// description of a NDS class to be searched by getentbyxx
|
|
struct class_info {
|
|
- char * className;
|
|
- char * nds8Attribute; //name of ID attribute in NDS8
|
|
- char * LID1; // markers in L attribute for ID (U: or G:)
|
|
- char * LID2; // markers in L attribute for ID (u: or g:), may be in lower case
|
|
- char * LAlias1;// markers in L attribute for alias (N:)
|
|
- char * LAlias2; // markers in L attribute for alias (n:) may be in lower case
|
|
+ const char * className;
|
|
+ const char * nds8Attribute; // name of ID attribute in NDS8
|
|
+ const char * LID1; // markers in L attribute for ID (U: or G:)
|
|
+ const char * LID2; // markers in L attribute for ID (u: or g:), may be in lower case
|
|
+ const char * LAlias1; // markers in L attribute for alias (N:)
|
|
+ const char * LAlias2; // markers in L attribute for alias (n:) may be in lower case
|
|
|
|
};
|
|
|
|
@@ -1879,17 +1872,12 @@ static NWDSCCODE getentbyxx(
|
|
NWDSContextHandle context;
|
|
NWCONN_HANDLE conn;
|
|
NWDSCCODE ccode;
|
|
- nint32 iterationHandle= NO_MORE_ITERATIONS; // to be set as such at Exit4
|
|
- nint32 countObjectsSearched;
|
|
- nuint32 objCntr,attrCntr,valCntr;
|
|
+ nuint32 iterationHandle = NO_MORE_ITERATIONS; // to be set as such at Exit4
|
|
+ nuint32 countObjectsSearched;
|
|
+ nuint32 objCntr;
|
|
nuint32 objCount;
|
|
nuint32 attrCount;
|
|
char objectName[MAX_DN_CHARS+1];
|
|
- char attrName[MAX_SCHEMA_NAME_CHARS+1];
|
|
- nuint32 attrValCount;
|
|
- nuint32 syntaxID;
|
|
- nuint32 attrValSize;
|
|
- char* attrVal;
|
|
|
|
// buffers
|
|
pBuf_T searchFilter=NULL; // search filter
|
|
@@ -2259,14 +2247,14 @@ static NWDSCCODE getentbyxx(
|
|
}
|
|
}
|
|
trace(conf->debug, LOG_NOTICE,"callback return OK");
|
|
- } while ((nuint32)iterationHandle != NO_MORE_ITERATIONS);
|
|
+ } while (iterationHandle != NO_MORE_ITERATIONS);
|
|
|
|
trace(conf->debug, LOG_NOTICE,"End of iteration attrNamesOK");
|
|
|
|
Exit4:
|
|
- if ((nuint32)iterationHandle != NO_MORE_ITERATIONS){
|
|
+ if (iterationHandle != NO_MORE_ITERATIONS){
|
|
NWDSCCODE ccode2;
|
|
- if (ccode2=NWDSCloseIteration(context,iterationHandle,DSV_SEARCH)) {
|
|
+ if ((ccode2=NWDSCloseIteration(context,iterationHandle,DSV_SEARCH)) != 0) {
|
|
traceForce(conf->debug,LOG_WARNING,"NWDSCloseIteration returned: %d\n", ccode2);
|
|
}
|
|
}
|
|
@@ -2291,7 +2279,6 @@ Exit3:
|
|
}else
|
|
if (retConn)
|
|
*retConn=conn;
|
|
-Exit2:
|
|
if (ccode || !retContext) {
|
|
NWDSCCODE ccode2=NWDSFreeContext(context);
|
|
trace(conf->debug, LOG_NOTICE,"Freeing context");
|
|
@@ -2300,7 +2287,6 @@ Exit2:
|
|
}else
|
|
if (retContext)
|
|
*retContext=context;
|
|
-Exit1:
|
|
trace(conf->debug, LOG_NOTICE,"Leaving ...");
|
|
return ccode;
|
|
}
|
|
@@ -2417,7 +2403,7 @@ enum nss_status _nss_ncp_initgroups (con
|
|
|
|
struct nw_user_group_info inf;
|
|
NWDSCCODE err;
|
|
- struct nss_ncp_conf *conf= parse_conf(CNF_FILE);
|
|
+ struct nss_ncp_conf* conf = parse_conf();
|
|
|
|
if (!conf || !conf->doGroup)
|
|
return NSS_STATUS_UNAVAIL;
|
|
@@ -2460,7 +2446,7 @@ enum nss_status _nss_ncp_getpwnam_r (con
|
|
|
|
struct nw_user_info inf;
|
|
NWDSCCODE err;
|
|
- struct nss_ncp_conf *conf= parse_conf(CNF_FILE);
|
|
+ struct nss_ncp_conf* conf = parse_conf();
|
|
|
|
if (!conf || !conf->doPassword)
|
|
return NSS_STATUS_UNAVAIL;
|
|
@@ -2503,7 +2489,7 @@ enum nss_status _nss_ncp_getpwuid_r (uid
|
|
|
|
struct nw_user_info inf;
|
|
NWDSCCODE err;
|
|
- struct nss_ncp_conf *conf= parse_conf(CNF_FILE);
|
|
+ struct nss_ncp_conf* conf = parse_conf();
|
|
|
|
if (!conf || !conf->doPassword)
|
|
return NSS_STATUS_UNAVAIL;
|
|
@@ -2546,7 +2532,7 @@ enum nss_status _nss_ncp_getgrnam_r (con
|
|
|
|
struct nw_group_info inf;
|
|
NWDSCCODE err;
|
|
- struct nss_ncp_conf *conf= parse_conf(CNF_FILE);
|
|
+ struct nss_ncp_conf* conf = parse_conf();
|
|
|
|
if (!conf || !conf->doGroup)
|
|
return NSS_STATUS_UNAVAIL;
|
|
@@ -2588,7 +2574,7 @@ enum nss_status _nss_ncp_getspnam_r (con
|
|
char *buffer, size_t buflen,int * errnop) {
|
|
struct nw_shadow_info inf;
|
|
NWDSCCODE err;
|
|
- struct nss_ncp_conf *conf= parse_conf(CNF_FILE);
|
|
+ struct nss_ncp_conf* conf = parse_conf();
|
|
|
|
if (!conf || !conf->doShadow)
|
|
return NSS_STATUS_UNAVAIL;
|
|
@@ -2631,7 +2617,7 @@ enum nss_status _nss_ncp_getgrgid_r (gid
|
|
char * buffer, size_t buflen, int * errnop) {
|
|
struct nw_group_info inf;
|
|
NWDSCCODE err;
|
|
- struct nss_ncp_conf *conf= parse_conf(CNF_FILE);
|
|
+ struct nss_ncp_conf* conf = parse_conf();
|
|
|
|
if (!conf || !conf->doGroup)
|
|
return NSS_STATUS_UNAVAIL;
|
|
@@ -2673,7 +2659,7 @@ enum nss_status _nss_ncp_setpwent(void)
|
|
NWDSContextHandle context;
|
|
NWCONN_HANDLE conn;
|
|
NWDSCCODE ccode;
|
|
- struct nss_ncp_conf *conf= parse_conf(CNF_FILE);
|
|
+ struct nss_ncp_conf* conf = parse_conf();
|
|
|
|
if (!conf || !conf->doPassword)
|
|
return NSS_STATUS_UNAVAIL;
|
|
@@ -2715,7 +2701,7 @@ enum nss_status _nss_ncp_setgrent(void)
|
|
NWDSContextHandle context;
|
|
NWCONN_HANDLE conn;
|
|
enum nss_status ccode;
|
|
- struct nss_ncp_conf *conf= parse_conf(CNF_FILE);
|
|
+ struct nss_ncp_conf* conf = parse_conf();
|
|
|
|
if (!conf || !conf->doGroup)
|
|
return NSS_STATUS_UNAVAIL;
|
|
@@ -2753,7 +2739,7 @@ enum nss_status _nss_ncp_setspent (void)
|
|
NWDSContextHandle context;
|
|
NWCONN_HANDLE conn;
|
|
NWDSCCODE ccode;
|
|
- struct nss_ncp_conf *conf= parse_conf(CNF_FILE);
|
|
+ struct nss_ncp_conf* conf = parse_conf();
|
|
|
|
if (!conf || !conf->doShadow)
|
|
return NSS_STATUS_UNAVAIL;
|
|
diff -r f18f9f05b9b8 -r 4d7bb63d7050 contrib/ncp_nss_lib/nss_ncp.h
|
|
--- a/contrib/ncp_nss_lib/nss_ncp.h Sun Oct 16 02:52:35 2005 +0200
|
|
+++ b/contrib/ncp_nss_lib/nss_ncp.h Sun Oct 16 04:07:06 2005 +0200
|
|
@@ -121,6 +121,7 @@
|
|
|
|
|
|
|
|
+void traceForce(int debugMode, int err, const char* format, ...);
|
|
|
|
/******************************* NSS API ***************************************/
|
|
|
|
diff -r f18f9f05b9b8 -r 4d7bb63d7050 contrib/ncp_nss_lib/test_ncp_nss.c
|
|
--- a/contrib/ncp_nss_lib/test_ncp_nss.c Sun Oct 16 02:52:35 2005 +0200
|
|
+++ b/contrib/ncp_nss_lib/test_ncp_nss.c Sun Oct 16 04:07:06 2005 +0200
|
|
@@ -67,6 +67,7 @@
|
|
#include "nss_cfgfile.h"
|
|
|
|
|
|
+static struct nss_ncp_conf defConf ={0, TRUE, NULL, NULL, NULL, 100, NULL, -1, -1, TRUE, TRUE, TRUE};
|
|
|
|
/**************** TESTING ******************/
|
|
|
|
@@ -94,13 +95,13 @@ static void print_shadow (struct spwd sp
|
|
|
|
static void print_user_groups(gid_t * groups, long int start, long int size){
|
|
int i;
|
|
- printf("start=%d size=%d\n",start,size);
|
|
+ printf("start=%ld size=%ld\n",start,size);
|
|
for (i=0; i<start; i++)
|
|
printf("%d ",groups[i]);
|
|
printf("\n");
|
|
}
|
|
|
|
-void give_details_on_user_groups(gid_t *groups, long int start){
|
|
+static void give_details_on_user_groups(gid_t *groups, long int start){
|
|
struct group grp;
|
|
char buffer[65000];
|
|
long int i;
|
|
@@ -148,11 +149,6 @@ static void help(void)
|
|
exit (1);
|
|
}
|
|
|
|
-static void error ( char * s) {
|
|
- printf (_("\n%s\n"),s);
|
|
- exit (1);
|
|
-}
|
|
-
|
|
/*************************************************************************
|
|
** main
|
|
*/
|
|
@@ -174,7 +170,6 @@ int main (int argc, char** argv) {
|
|
struct passwd pwd;
|
|
struct group grp;
|
|
struct spwd spw;
|
|
- enum nss_status err;
|
|
|
|
progname = argv[0];
|
|
while ((opt = getopt(argc, argv, "h?u:n:g:i:s:m:T:B:C:O:f:UGSD2")) != EOF)
|
|
@@ -263,7 +258,7 @@ int main (int argc, char** argv) {
|
|
}
|
|
|
|
}
|
|
- if (userId != -1) {
|
|
+ if (userId != (uid_t)-1) {
|
|
printf ("searching in passwd for uid %d\n",userId);
|
|
if ( _nss_ncp_getpwuid_r (userId, &pwd,buffer,sizeof(buffer),&errno)==NSS_STATUS_SUCCESS)
|
|
print_passwd(pwd);
|
|
@@ -284,7 +279,7 @@ int main (int argc, char** argv) {
|
|
}
|
|
}
|
|
|
|
- if (groupId != -1) {
|
|
+ if (groupId != (gid_t)-1) {
|
|
printf ("searching in group for gid %d\n",groupId);
|
|
if ( _nss_ncp_getgrgid_r (groupId, &grp,buffer,sizeof(buffer),&errno)==NSS_STATUS_SUCCESS)
|
|
print_group(grp);
|
|
|