亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? people.c

?? ftam等標準協議服務器和客戶端的源代碼。
?? C
字號:
/* people.c - search for a person */#ifndef	lintstatic char *rcsid = "$Header: /xtel/isode/isode/others/quipu/uips/de/RCS/people.c,v 9.0 1992/06/16 12:45:59 isode Rel $";#endif/*  * $Header: /xtel/isode/isode/others/quipu/uips/de/RCS/people.c,v 9.0 1992/06/16 12:45:59 isode Rel $ * * * $Log: people.c,v $ * Revision 9.0  1992/06/16  12:45:59  isode * Release 8.0 * *//* *				  NOTICE * *    Acquisition, use, and distribution of this module and related *    materials are subject to the restrictions of a license agreement. *    Consult the Preface in the User's Manual for the full terms of *    this agreement. * */#include <signal.h>#include "quipu/util.h"#include "quipu/ds_search.h"#include "quipu/dua.h"#include "filter.h"#include "demanifest.h"#include "namelist.h"#include "destrings.h"extern struct ds_search_arg sarg;extern struct ds_search_result sresult;extern struct DSError serror;extern int abandoned;extern int accessrightproblem;extern int highNumber;extern int exactMatch;extern char exactString[];/* PRR stands fpr people, rooms and roles */struct namelist * prratts;struct ds_search_arg *fillMostPRRSearchArgs();void makeExplicitPRRFilter();void prrFilter1(), prrFilter2(), prrFilter3(), prrFilter4();VFP explicitPRR[] = {makeExplicitPRRFilter, NULLVFP};VFP normalPRR[] = {prrFilter1, prrFilter2, prrFilter3, prrFilter4, NULLVFP};/*VFP normalPRR[] = {prrFilter1, prrFilter3, NULLVFP};*/intlistPRRs(parentstr, thisstr, listp)char * parentstr, * thisstr;struct namelist ** listp;{	clearProblemFlags();	initAlarm();		if (exactMatch == PERSON)	  return(listExactPRRs(exactString, listp));        if (strcmp(thisstr, "*") == 0)          return (listAllPRRs(parentstr, listp));        else          return (listMatchingPRRs(parentstr, thisstr, listp));}voidprintListPRRs(str, listp, searchparent, pdet)char * str;struct namelist * listp;int searchparent, pdet;{struct namelist * x;char * savestr;static char lastsavedcomp[LINESIZE];int i;	if (listp == NULLLIST)		if (strcmp(str, "*") == 0)			pageprint("      No people, rooms or roles found\n");		else			pageprint("      No people, rooms or roles match entered string\n");	else	{		for (i = 1, x = listp; x != NULLLIST; i++, x = x->next)		{			/* if searching subtree under org (as opposed to an			   org unit), print ou if there is one */			if (searchparent == ORG)			{				savestr = removeLastRDN(x->name);				if (index(savestr, '@') != rindex(savestr, '@'))				{				    if (strncmp((rindex(savestr, '@') + 1), 				          SHORT_OU, strlen(SHORT_OU)) == 0)					if (strcmp(lastsavedcomp, savestr) != 0)					{						printLastComponent(INDENTON, savestr, ORGUNIT, 0);						(void) strcpy(lastsavedcomp, savestr);					}				}				free (savestr);			}			if (pdet)			{				printLastComponent(INDENTON, x->name, PERSON, 							pdet ? 0 : i);				printDetails(PERSON, x);			}			else				printPersonOneLiner(x, i);		}		showAnyProblems(str);	}	lastsavedcomp[0] = '\0';}voidfreePRRs(listpp)struct namelist ** listpp;{struct namelist * w, * x;	w = *listpp;	while (w != NULLLIST)	{		if (w->name != NULLCP)			free(w->name);		as_free(w->ats);		x = w->next;		free((char *)w);		w = x;	}	*listpp = NULLLIST;}freePRRSearchArgs(){	dn_free(sarg.sra_baseobject);	as_free(sarg.sra_eis.eis_select);}intlistAllPRRs(parentstr, listp)char * parentstr;struct namelist ** listp;{int ret;	        sarg = * fillMostPRRSearchArgs(parentstr, SRA_WHOLESUBTREE);        makeAllPRRFilter(&sarg.sra_filter);        ret = makeListPRRs(listp, parentstr);	if (ret != OK)		logListSuccess(LIST_ERROR, "prr", 0);	else		logListSuccess(LIST_OK, "prr", listlen(*listp));	freePRRSearchArgs();	alarmCleanUp();	return ret;}intlistMatchingPRRs(parentstr, thisstr, listp)char * parentstr, * thisstr;struct namelist ** listp;{VFP * filtarray;VFP filterfunc;int filtnumber;        if (index(thisstr, '*') != NULLCP) /* contains at least one asterisk */	{                filtarray = explicitPRR;		filtnumber = -1;	}        else	{                filtarray = normalPRR;		filtnumber = 0;	}	sarg = * fillMostPRRSearchArgs(parentstr, SRA_WHOLESUBTREE);        while ((filterfunc = *filtarray++) != NULLVFP)	{		filtnumber++;                filterfunc(thisstr, &sarg.sra_filter);		if (sarg.sra_filter == NULLFILTER)			continue;                if (makeListPRRs(listp, parentstr) != OK)		{			freePRRSearchArgs();			logSearchSuccess(SEARCH_ERROR, "prr", thisstr, filtnumber, 0);			alarmCleanUp();		        return NOTOK;		}                if (*listp != NULLLIST)                        break;	}	if (*listp != NULLLIST)		logSearchSuccess(SEARCH_OK, "prr", thisstr, filtnumber, listlen(*listp));	else		logSearchSuccess(SEARCH_FAIL, "prr", thisstr, filtnumber, 0);	freePRRSearchArgs();	alarmCleanUp();	return OK;}intlistExactPRRs(objectstr, listp)char * objectstr;struct namelist ** listp;{int ret;        sarg = * fillMostPRRSearchArgs(objectstr, SRA_BASEOBJECT);        makeExactPRRFilter(&sarg.sra_filter);        ret = makeListPRRs(listp, objectstr);	freePRRSearchArgs();	alarmCleanUp();	return ret;}intmakeListPRRs(listp, parentstr)struct namelist ** listp;char * parentstr;{entrystruct * x;int retval;void onalarm();char *cp, *cp2;	if (rebind() != OK)		return NOTOK;	retval = ds_search(&sarg, &serror, &sresult);	if (retval == DSE_INTR_ABANDONED) 	  if (serror.dse_type == DSE_ABANDONED)		abandoned = TRUE;	  else if (serror.dse_type == DSE_SECURITYERROR)	        accessrightproblem = TRUE;	if (retval != OK)		return NOTOK;	correlate_search_results (&sresult);	setProblemFlags(sresult);	highNumber = 0;	if (strncmp(lastRDN(parentstr), SHORT_OU, strlen(SHORT_OU)) != 0)	{		/* we want to build the list so that any people with no ou 		   come first */		for (x = sresult.CSR_entries; x != NULLENTRYINFO; x = x->ent_next)		{			cp = dn2pstr(x->ent_dn);			cp2 = removeLastRDN(cp);			if (strncmp(lastRDN(cp2), SHORT_OU, strlen(SHORT_OU)) != 0)			{				*listp = list_alloc();				(*listp)->name = cp;				(*listp)->ats = as_cpy(x->ent_attr);				listp = &(*listp)->next;				highNumber++;			}			else				free(cp);			free(cp2);		}		for (x = sresult.CSR_entries; x != NULLENTRYINFO; x = x->ent_next)		{			cp = dn2pstr(x->ent_dn);			cp2 = removeLastRDN(cp);			if (strncmp(lastRDN(cp2), SHORT_OU, strlen(SHORT_OU)) == 0)			{				*listp = list_alloc();				(*listp)->name = cp;				(*listp)->ats = as_cpy(x->ent_attr);				listp = &(*listp)->next;				highNumber++;			}			else				free(cp);			free(cp2);		}	}	else	{		for (x = sresult.CSR_entries; x != NULLENTRYINFO; x = x->ent_next)		{			*listp = list_alloc();			(*listp)->name = dn2pstr(x->ent_dn);			(*listp)->ats = as_cpy(x->ent_attr);			listp = &(*listp)->next;			highNumber++;		}	}	*listp = NULLLIST;	entryinfo_free(sresult.CSR_entries,0);	dn_free (sresult.CSR_object);	crefs_free (sresult.CSR_cr);	filter_free(sarg.sra_filter);        return OK;}struct ds_search_arg *fillMostPRRSearchArgs(parentstr, searchdepth)char * parentstr;int searchdepth;{static struct ds_search_arg arg;Attr_Sequence * atl;AttributeType at;struct namelist * x;static CommonArgs sca = default_common_args;	arg.sra_common = sca; /* struct copy */        arg.sra_common.ca_servicecontrol.svc_timelimit = SVC_NOTIMELIMIT;        arg.sra_common.ca_servicecontrol.svc_sizelimit= SVC_NOSIZELIMIT;	arg.sra_subset = searchdepth;	arg.sra_baseobject = str2dn(parentstr);	arg.sra_searchaliases = TRUE;	/* specify attributes of interest */	arg.sra_eis.eis_allattributes = FALSE;	atl = &(arg.sra_eis.eis_select);        for (x = prratts; x != NULLLIST; x = x->next)        {		if ((at = str2AttrT(x->name)) == NULLAttrT)			continue;                *atl = as_comp_alloc();                (*atl)->attr_type = at;		(*atl)->attr_value = NULLAV;                atl = &(*atl)->attr_link;	}        *atl = NULLATTR;	arg.sra_eis.eis_infotypes = EIS_ATTRIBUTESANDVALUES;	return (&arg);}makeAllPRRFilter(fpp)struct s_filter ** fpp;{struct s_filter * fp;	*fpp = orfilter();	fp = (*fpp)->FUFILT = presfilter(DE_SURNAME);	fp = fp->flt_next = eqfilter(FILTERITEM_EQUALITY, DE_OBJECT_CLASS, DE_ROLE);	fp->flt_next = eqfilter(FILTERITEM_EQUALITY, DE_OBJECT_CLASS, DE_ROOM);}makeExactPRRFilter(fpp)struct s_filter ** fpp;{struct s_filter * fp;	*fpp = orfilter();	fp = (*fpp)->FUFILT = presfilter(DE_SURNAME);	fp = fp->flt_next = eqfilter(FILTERITEM_EQUALITY, DE_OBJECT_CLASS, DE_ROLE);	fp->flt_next = eqfilter(FILTERITEM_EQUALITY, DE_OBJECT_CLASS, DE_ROOM);}voidmakeExplicitPRRFilter(prrstr, fpp)char * prrstr;struct s_filter ** fpp;{struct s_filter * fp, * fpsav, * fpsav2;int wildcardtype;char * ostr1, * ostr2;	wildcardtype = starstring(prrstr, &ostr1, &ostr2);	*fpp = andfilter();	fpsav = fp = (*fpp)->FUFILT = orfilter();	switch (wildcardtype) {		case LEADSUBSTR: /* fall through */		case TRAILSUBSTR: /* fall through */		case ANYSUBSTR:			fp = fp->FUFILT = subsfilter(wildcardtype, 					DE_COMMON_NAME, ostr1);			fp->flt_next = subsfilter(wildcardtype,					DE_SURNAME, ostr1);			break;		case LEADANDTRAIL:			fpsav2 = fp = fp->FUFILT = andfilter();			fp = fp->FUFILT = subsfilter(LEADSUBSTR, 					DE_COMMON_NAME, ostr1);			fp = fp->flt_next = subsfilter(TRAILSUBSTR,					DE_COMMON_NAME, ostr2);			fp = fpsav2->flt_next = andfilter();			fp = fp->FUFILT = subsfilter(LEADSUBSTR,					DE_SURNAME, ostr1);			fp = fp->flt_next = subsfilter(TRAILSUBSTR,					DE_SURNAME, ostr2);                        break;	}	fp = fpsav->flt_next = orfilter();	fp = fp->FUFILT = presfilter(DE_SURNAME);	fp = fp->flt_next = eqfilter(FILTERITEM_EQUALITY, DE_OBJECT_CLASS, DE_ROLE);	fp->flt_next = eqfilter(FILTERITEM_EQUALITY, DE_OBJECT_CLASS, DE_ROOM);}voidprrFilter1(prrstr, fpp)char * prrstr;struct s_filter ** fpp;{struct s_filter * fp, * fp1;char firststring[LINESIZE];char * fsp, * lsp, * laststring;	/* if the string entered contains any spaces, form two substrings	   firstnamepart = all up to the first space	   lastnamepart  = all after last space */	if (index(prrstr, ' ') != NULLCP)	{		(void) strcpy(firststring, prrstr);		fsp = index(firststring, ' ');		*fsp = '\0';		lsp = rindex(fsp + 1, ' ');		if (lsp != NULLCP)			laststring = lsp++;		else			laststring = fsp + 1;				*fpp = orfilter();		fp1 = fp = (*fpp)->FUFILT = andfilter();		fp = fp->FUFILT = subsfilter(LEADSUBSTR, DE_COMMON_NAME, firststring);		fp = fp->flt_next = subsfilter(TRAILSUBSTR, DE_COMMON_NAME, laststring);		fp->flt_next = presfilter(DE_SURNAME);		fp = fp1->flt_next = andfilter();	}	else	{		*fpp = orfilter();		fp = (*fpp)->FUFILT = eqfilter(FILTERITEM_EQUALITY, DE_SURNAME, prrstr);		fp = fp->flt_next = andfilter();	}	fp = fp->FUFILT = eqfilter(FILTERITEM_EQUALITY, DE_COMMON_NAME, prrstr);	fp = fp->flt_next = orfilter();	fp = fp->FUFILT = presfilter(DE_SURNAME);	fp = fp->flt_next = eqfilter(FILTERITEM_EQUALITY, DE_OBJECT_CLASS, DE_ROLE);	fp->flt_next = eqfilter(FILTERITEM_EQUALITY, DE_OBJECT_CLASS, DE_ROOM);}voidprrFilter2(prrstr, fpp)char * prrstr;struct s_filter ** fpp;{struct s_filter * fp;char firststring[LINESIZE];char * fsp, * lsp, * laststring;	/* if the string entered contains any spaces, and the string up to	   the first space is more than 1 character long, form two substrings	   	   firstnamepart = first initial (match against beginning of cn)	   lastnamepart  = all after last space (match against beg. of sn)	   	   this means that "paul barker" will match entries of "p barker" */	*fpp = NULLFILTER;	if (index(prrstr, ' ') != NULLCP)	{		(void) strcpy(firststring, prrstr);		if (strlen(firststring) == 1)			return;		fsp = index(firststring, ' ');		firststring[1] = '\0';		lsp = rindex(fsp + 1, ' ');		if (lsp != NULLCP)			laststring = lsp++;		else			laststring = fsp + 1;				*fpp = andfilter();		fp = (*fpp)->FUFILT = subsfilter(LEADSUBSTR, DE_COMMON_NAME, firststring);		fp = fp->flt_next = subsfilter(LEADSUBSTR, DE_SURNAME, laststring);		fp->flt_next = presfilter(DE_SURNAME);	}}voidprrFilter3(prrstr, fpp)char * prrstr;struct s_filter ** fpp;{struct s_filter * fp;	*fpp = orfilter();	fp = (*fpp)->FUFILT = subsfilter(ANYSUBSTR, DE_SURNAME, prrstr);	fp = fp->flt_next = andfilter();	fp = fp->FUFILT = subsfilter(ANYSUBSTR, DE_COMMON_NAME, prrstr);	fp = fp->flt_next = orfilter();	fp = fp->FUFILT = presfilter(DE_SURNAME);	fp = fp->flt_next = eqfilter(FILTERITEM_EQUALITY, DE_OBJECT_CLASS, DE_ROLE);	fp->flt_next = eqfilter(FILTERITEM_EQUALITY, DE_OBJECT_CLASS, DE_ROOM);}voidprrFilter4(prrstr, fpp)char * prrstr;struct s_filter ** fpp;{struct s_filter * fp;	*fpp = orfilter();	fp = (*fpp)->FUFILT = eqfilter(FILTERITEM_APPROX, DE_SURNAME, prrstr);	fp = fp->flt_next = andfilter();	fp = fp->FUFILT = eqfilter(FILTERITEM_APPROX, DE_COMMON_NAME, prrstr);	fp = fp->flt_next = orfilter();	fp = fp->FUFILT = presfilter(DE_SURNAME);	fp = fp->flt_next = eqfilter(FILTERITEM_EQUALITY, DE_OBJECT_CLASS, DE_ROLE);	fp->flt_next = eqfilter(FILTERITEM_EQUALITY, DE_OBJECT_CLASS, DE_ROOM);}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲欧美乱综合| 精品国产91乱码一区二区三区| 欧美国产精品专区| 国产91精品一区二区麻豆网站 | 欧日韩精品视频| 亚洲美女电影在线| 欧美日韩在线直播| 青青草伊人久久| 国产清纯白嫩初高生在线观看91 | 亚洲欧美日韩中文字幕一区二区三区 | 国产精品丝袜久久久久久app| 99视频在线观看一区三区| 亚洲精品高清在线观看| 制服丝袜av成人在线看| 韩国v欧美v日本v亚洲v| 国产精品视频麻豆| 欧美日韩三级视频| 国产乱子伦视频一区二区三区| 欧美激情中文不卡| 欧美中文字幕久久| 国产在线观看一区二区| 成人欧美一区二区三区视频网页| 欧美午夜免费电影| 国产一区二区不卡在线| 亚洲精品一二三| 欧美成人高清电影在线| av在线播放不卡| 日本亚洲最大的色成网站www| 国产亚洲一区二区三区在线观看| 成人黄色a**站在线观看| 亚洲影视资源网| 久久精品免费在线观看| 欧美视频三区在线播放| 国产一区二区导航在线播放| 亚洲宅男天堂在线观看无病毒| 欧美r级电影在线观看| 91成人看片片| 成人av资源站| 久久av中文字幕片| 亚洲一区二区三区中文字幕在线 | 欧美日本乱大交xxxxx| 国产白丝精品91爽爽久久| 五月婷婷欧美视频| 国产精品丝袜在线| 337p日本欧洲亚洲大胆精品| 在线观看视频一区| 成人精品小蝌蚪| 久久精品99久久久| 亚洲h动漫在线| 国产精品久久影院| 久久久91精品国产一区二区三区| 欧美日韩高清在线| 91福利国产成人精品照片| zzijzzij亚洲日本少妇熟睡| 国产揄拍国内精品对白| 青青草原综合久久大伊人精品优势| 亚洲精品自拍动漫在线| 中文字幕人成不卡一区| 国产亚洲欧美中文| 2023国产一二三区日本精品2022| 欧美三级欧美一级| 色婷婷亚洲一区二区三区| 丁香网亚洲国际| 国产乱国产乱300精品| 激情成人午夜视频| 精品伊人久久久久7777人| 男女性色大片免费观看一区二区 | 日本网站在线观看一区二区三区| 亚洲免费色视频| 亚洲人妖av一区二区| 国产精品久线在线观看| 中文字幕在线免费不卡| 国产精品久久久一本精品| 国产欧美日韩在线视频| 日本一区二区综合亚洲| 国产日韩在线不卡| 亚洲国产高清在线| 自拍av一区二区三区| 亚洲免费av观看| 亚洲第一狼人社区| 日韩精品电影在线| 日本不卡视频一二三区| 久久99精品国产麻豆婷婷| 久久se精品一区精品二区| 国内精品伊人久久久久av一坑| 国产精品一区专区| 91亚洲精品一区二区乱码| 色综合久久久久综合体| 欧美性猛片xxxx免费看久爱| 欧美喷水一区二区| 精品久久久久久久久久久久久久久久久| 欧美成人伊人久久综合网| 2023国产精华国产精品| 国产精品免费久久久久| 一区二区三区精品久久久| 丝袜美腿亚洲色图| 国内精品伊人久久久久av一坑| 国产成人8x视频一区二区| 91久久精品一区二区| 777奇米成人网| 久久精品一区蜜桃臀影院| 中文字幕av一区二区三区免费看 | 日韩免费看网站| 亚洲国产精品激情在线观看| 亚洲裸体在线观看| 日韩av一二三| 国产东北露脸精品视频| 91亚洲精品久久久蜜桃| 91精品国产福利| 中文字幕va一区二区三区| 亚洲网友自拍偷拍| 高清国产一区二区| 欧美日韩国产高清一区二区| 久久精品亚洲一区二区三区浴池| 一区二区三区中文字幕精品精品| 日本aⅴ免费视频一区二区三区 | 色一区在线观看| 欧美一级黄色录像| 亚洲免费在线看| 久久国产尿小便嘘嘘尿| 色婷婷久久一区二区三区麻豆| 91精品国产入口在线| 亚洲三级久久久| 免费高清在线一区| 色视频欧美一区二区三区| 久久色中文字幕| 亚洲bt欧美bt精品777| 国产成人免费在线观看| 91精品婷婷国产综合久久竹菊| 国产精品美日韩| 开心九九激情九九欧美日韩精美视频电影| 99久久精品免费精品国产| 欧美成人一区二区三区片免费 | 26uuu国产在线精品一区二区| 亚洲三级在线免费| 国产精品一区二区三区99 | 日韩欧美国产一二三区| 亚洲婷婷综合色高清在线| 韩国一区二区视频| 欧美电影在哪看比较好| 日韩一区欧美一区| 成人国产精品免费| 精品免费国产二区三区| 五月婷婷另类国产| 日本道在线观看一区二区| 国产精品嫩草久久久久| 国产精品亚洲专一区二区三区| 4438x亚洲最大成人网| 一区二区在线观看免费| av在线这里只有精品| 亚洲国产精品精华液ab| 国产激情视频一区二区三区欧美| 日韩亚洲欧美一区| 婷婷开心激情综合| 在线观看视频一区二区欧美日韩| 中文字幕亚洲综合久久菠萝蜜| 国产精品夜夜嗨| 国产欧美精品一区二区三区四区 | 免费一级片91| 日韩一区二区在线看| 男人的天堂久久精品| 4438x成人网最大色成网站| 视频一区二区三区中文字幕| 欧美日韩国产精选| 日韩国产在线观看一区| 6080午夜不卡| 青青草国产精品97视觉盛宴| 91精品福利在线一区二区三区| 日韩精品一卡二卡三卡四卡无卡| 欧美日韩国产经典色站一区二区三区| 亚洲国产一区在线观看| 91麻豆精品91久久久久同性| 日韩精品视频网| 精品国产不卡一区二区三区| 精品一区二区三区香蕉蜜桃| 久久综合久色欧美综合狠狠| 国产成人综合视频| 国产精品女主播av| 欧美在线观看一区| 天天影视涩香欲综合网| 日韩精品一区二区三区老鸭窝| 麻豆国产欧美一区二区三区| 精品欧美一区二区在线观看| 国产伦理精品不卡| 国产精品不卡视频| 欧美午夜视频网站| 蜜臀av亚洲一区中文字幕| 久久免费午夜影院| 99在线热播精品免费| 亚洲成人一二三| 精品sm在线观看| 粉嫩一区二区三区在线看| 亚洲日本丝袜连裤袜办公室| 欧美色中文字幕| 精品一区二区三区免费毛片爱| 国产精品美女久久久久久久 | 亚洲精品一二三| 日韩一区二区三区在线视频| 国产成人精品一区二| 一区二区三区**美女毛片|