⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 php_mnogo.c

📁 php-4.4.7学习linux时下载的源代码
💻 C
📖 第 1 页 / 共 5 页
字号:
DLEXPORT PHP_FUNCTION(udm_alloc_agent){	switch(ZEND_NUM_ARGS()){		case 1: {				pval **yydbaddr;				char *dbaddr;				UDM_ENV   * Env;				UDM_AGENT * Agent;								if(zend_get_parameters_ex(1,&yydbaddr)==FAILURE){					RETURN_FALSE;				}				convert_to_string_ex(yydbaddr);				dbaddr = Z_STRVAL_PP(yydbaddr);			#if UDM_VERSION_ID >= 30204				Env=UdmEnvInit(NULL);				UdmVarListReplaceStr(&Env->Vars,"SyslogFacility","local7");#if UDM_VERSION_ID >= 30215				UdmSetLogLevel(NULL,0);#else				UdmSetLogLevel(Env,0);#endif				UdmOpenLog("mnoGoSearch-php",Env,0);#if UDM_VERSION_ID <= 30210				if(!memcmp(dbaddr,"searchd:",8)){					UDM_URL	Url;					UdmURLParse(&Url,dbaddr);					UdmDBListAdd(&Env->sdcl,Url.hostinfo);				}								UdmVarListReplaceStr(&Env->Vars,"DBAddr",dbaddr);								if(UDM_OK!=UdmDBSetAddr(Env->db,dbaddr,UDM_OPEN_MODE_READ)){				    sprintf(Env->errstr,"Invalid DBAddr: '%s'",dbaddr);#if UDM_VERSION_ID <= 30207				    Env->errcode=1;#endif				    php_error_docref(NULL TSRMLS_CC, E_WARNING,"Invalid DBAddr");				    RETURN_FALSE;				}#else				UdmDBListAdd(&Env->dbl,dbaddr, UDM_OPEN_MODE_WRITE);#endif				Agent=UdmAgentInit(NULL,Env,0);#elif UDM_VERSION_ID >= 30200				Env=UdmAllocEnv();				Env->vars=UdmAllocVarList();				Env->DBAddr=strdup(dbaddr);				UdmEnvSetDBMode(Env,"single");				Agent=UdmAllocAgent(Env,0,UDM_OPEN_MODE_READ);#else								Env=UdmAllocEnv();				UdmEnvSetDBAddr(Env,dbaddr);				Agent=UdmAllocAgent(Env,0,UDM_OPEN_MODE_READ);#endif											ZEND_REGISTER_RESOURCE(return_value,Agent,le_link);			}			break;					case 2: {				pval **yydbaddr;				pval **yydbmode;				char *dbaddr;				char *dbmode;				UDM_ENV   * Env;				UDM_AGENT * Agent;								if(zend_get_parameters_ex(2,&yydbaddr,&yydbmode)==FAILURE){					RETURN_FALSE;				}				convert_to_string_ex(yydbaddr);				convert_to_string_ex(yydbmode);				dbaddr = Z_STRVAL_PP(yydbaddr);				dbmode = Z_STRVAL_PP(yydbmode);				#if UDM_VERSION_ID >= 30204				Env=UdmEnvInit(NULL);				UdmVarListReplaceStr(&Env->Vars,"SyslogFacility","local7");#if UDM_VERSION_ID >= 30215				UdmSetLogLevel(NULL,0);#else				UdmSetLogLevel(Env,0);#endif				UdmOpenLog("mnoGoSearch-php",Env,0);#if UDM_VERSION_ID <= 30210				if(!memcmp(dbaddr,"searchd:",8)){					UDM_URL	Url;					UdmURLParse(&Url,dbaddr);					UdmDBListAdd(&Env->sdcl,Url.hostinfo);				}				UdmVarListReplaceStr(&Env->Vars,"DBAddr",dbaddr);				if(UDM_OK!=UdmDBSetAddr(Env->db,dbaddr,UDM_OPEN_MODE_READ)){				    sprintf(Env->errstr,"Invalid DBAddr: '%s'",dbaddr);#if UDM_VERSION_ID <= 30207				    Env->errcode=1;#endif				    php_error_docref(NULL TSRMLS_CC, E_WARNING,"Invalid DBAddr");				    RETURN_FALSE;				}#else				UdmDBListAdd(&Env->dbl,dbaddr, UDM_OPEN_MODE_WRITE);#endif				Agent=UdmAgentInit(NULL,Env,0);#elif UDM_VERSION_ID >= 30200				Env=UdmAllocEnv();				Env->vars=UdmAllocVarList();				Env->DBAddr=strdup(dbaddr);				UdmEnvSetDBMode(Env,dbmode);				Agent=UdmAllocAgent(Env,0,UDM_OPEN_MODE_READ);#else				Env=UdmAllocEnv();								UdmEnvSetDBAddr(Env,dbaddr);				UdmEnvSetDBMode(Env,dbmode);				Agent=UdmAllocAgent(Env,0,UDM_OPEN_MODE_READ);#endif				ZEND_REGISTER_RESOURCE(return_value,Agent,le_link);			}			break;					default:			WRONG_PARAM_COUNT;			break;	}}/* }}} *//* {{{ proto int udm_set_agent_param(int agent, int var, string val)   Set mnoGoSearch agent session parameters */DLEXPORT PHP_FUNCTION(udm_set_agent_param){	pval **yyagent, **yyvar, **yyval;	char *val;	int var;	UDM_AGENT * Agent;	switch(ZEND_NUM_ARGS()){			case 3: 					if(zend_get_parameters_ex(3,&yyagent,&yyvar,&yyval)==FAILURE){				RETURN_FALSE;			}			convert_to_long_ex(yyvar);			convert_to_string_ex(yyval);			ZEND_FETCH_RESOURCE(Agent, UDM_AGENT *, yyagent, -1, "mnoGoSearch-agent", le_link);			var = Z_LVAL_PP(yyvar);			val = Z_STRVAL_PP(yyval);						break;					default:			WRONG_PARAM_COUNT;			break;	}		switch(var){		case UDM_PARAM_PAGE_SIZE: #if UDM_VERSION_ID >= 30204			UdmVarListReplaceStr(&Agent->Conf->Vars,"ps",val);#else			Agent->page_size=atoi(val);			if(Agent->page_size<1)Agent->page_size=20;#endif			break;					case UDM_PARAM_PAGE_NUM: #if UDM_VERSION_ID >= 30204			UdmVarListReplaceStr(&Agent->Conf->Vars,"np",val);#else			Agent->page_number=atoi(val);			if(Agent->page_number<0)Agent->page_number=0;#endif			break;		case UDM_PARAM_SEARCH_MODE:			switch (atoi(val)){					case UDM_MODE_ALL:#if UDM_VERSION_ID >= 30204						UdmVarListReplaceStr(&Agent->Conf->Vars,"m","all");#else						Agent->search_mode=UDM_MODE_ALL;#endif						break;											case UDM_MODE_ANY:#if UDM_VERSION_ID >= 30204						UdmVarListReplaceStr(&Agent->Conf->Vars,"m","any");#else						Agent->search_mode=UDM_MODE_ANY;#endif						break;											case UDM_MODE_BOOL: #if UDM_VERSION_ID >= 30204						UdmVarListReplaceStr(&Agent->Conf->Vars,"m","bool");#else						Agent->search_mode=UDM_MODE_BOOL;#endif						break;					case UDM_MODE_PHRASE: #if UDM_VERSION_ID >= 30200    						php_error_docref(NULL TSRMLS_CC, E_WARNING,"Unknown search mode");						RETURN_FALSE;#else						Agent->search_mode=UDM_MODE_PHRASE;#endif						break;											default:#if UDM_VERSION_ID >= 30204						UdmVarListReplaceStr(&Agent->Conf->Vars,"m","all");#else						Agent->search_mode=UDM_MODE_ALL;#endif												php_error_docref(NULL TSRMLS_CC, E_WARNING,"Unknown search mode");						RETURN_FALSE;						break;			}			break;		case UDM_PARAM_WORD_MATCH:			switch (atoi(val)){					case UDM_MATCH_WORD:					#if UDM_VERSION_ID >= 30204						UdmVarListReplaceStr(&Agent->Conf->Vars,"wm","wrd");#else						Agent->word_match=UDM_MATCH_WORD;#endif						break;					case UDM_MATCH_BEGIN:#if UDM_VERSION_ID >= 30204						UdmVarListReplaceStr(&Agent->Conf->Vars,"wm","beg");#else						Agent->word_match=UDM_MATCH_BEGIN;#endif						break;					case UDM_MATCH_END:#if UDM_VERSION_ID >= 30204						UdmVarListReplaceStr(&Agent->Conf->Vars,"wm","end");#else						Agent->word_match=UDM_MATCH_END;#endif						break;					case UDM_MATCH_SUBSTR:#if UDM_VERSION_ID >= 30204						UdmVarListReplaceStr(&Agent->Conf->Vars,"wm","sub");#else						Agent->word_match=UDM_MATCH_SUBSTR;#endif						break;											default:#if UDM_VERSION_ID >= 30204						UdmVarListReplaceStr(&Agent->Conf->Vars,"wm","wrd");#else						Agent->word_match=UDM_MATCH_WORD;#endif												php_error_docref(NULL TSRMLS_CC, E_WARNING,"Unknown word match mode");						RETURN_FALSE;						break;			}			break;		case UDM_PARAM_CACHE_MODE: 			switch (atoi(val)){				case UDM_ENABLED:#if UDM_VERSION_ID < 30200					Agent->cache_mode=UDM_ENABLED;#elif UDM_VERSION_ID >= 30204					UdmVarListReplaceStr(&Agent->Conf->Vars,"Cache","yes");#else							UdmReplaceStrVar(Agent->Conf->vars,"Cache","yes",UDM_VARSRC_GLOBAL);#endif					break;									case UDM_DISABLED:#if UDM_VERSION_ID < 30200													Agent->cache_mode=UDM_DISABLED;#elif UDM_VERSION_ID >= 30204					UdmVarListReplaceStr(&Agent->Conf->Vars,"Cache","no");#else															UdmReplaceStrVar(Agent->Conf->vars,"Cache","no",UDM_VARSRC_GLOBAL);#endif					break;									default:#if UDM_VERSION_ID < 30200																	Agent->cache_mode=UDM_DISABLED;#elif UDM_VERSION_ID >= 30204					UdmVarListReplaceStr(&Agent->Conf->Vars,"Cache","no");#else														UdmReplaceStrVar(Agent->Conf->vars,"Cache","no",UDM_VARSRC_GLOBAL);#endif											php_error_docref(NULL TSRMLS_CC, E_WARNING,"Unknown cache mode");					RETURN_FALSE;					break;			}						break;					case UDM_PARAM_TRACK_MODE: 			switch (atoi(val)){				case UDM_ENABLED:#if UDM_VERSION_ID < 30200																	Agent->track_mode|=UDM_TRACK_QUERIES;#elif UDM_VERSION_ID >= 30204					UdmVarListReplaceStr(&Agent->Conf->Vars,"TrackQuery","yes");#else					UdmReplaceStrVar(Agent->Conf->vars,"TrackQuery","yes",UDM_VARSRC_GLOBAL);#endif					break;									case UDM_DISABLED:#if UDM_VERSION_ID < 30200											Agent->track_mode &= ~(UDM_TRACK_QUERIES);    #elif UDM_VERSION_ID >= 30204					UdmVarListReplaceStr(&Agent->Conf->Vars,"TrackQuery","no");#else					UdmReplaceStrVar(Agent->Conf->vars,"TrackQuery","no",UDM_VARSRC_GLOBAL);#endif										break;									default:#if UDM_VERSION_ID < 30200											Agent->track_mode &= ~(UDM_TRACK_QUERIES);    #elif UDM_VERSION_ID >= 30204					UdmVarListReplaceStr(&Agent->Conf->Vars,"TrackQuery","no");#else					UdmReplaceStrVar(Agent->Conf->vars,"TrackQuery","no",UDM_VARSRC_GLOBAL);#endif									php_error_docref(NULL TSRMLS_CC, E_WARNING,"Unknown track mode");					RETURN_FALSE;					break;			}						break;				case UDM_PARAM_PHRASE_MODE: #if UDM_VERSION_ID < 30200											switch (atoi(val)){				case UDM_ENABLED:					Agent->Conf->use_phrases=UDM_ENABLED;					break;									case UDM_DISABLED:					Agent->Conf->use_phrases=UDM_DISABLED;					break;									default:					php_error_docref(NULL TSRMLS_CC, E_WARNING,"Unknown phrase mode");					RETURN_FALSE;					break;			}#endif						break;		case UDM_PARAM_ISPELL_PREFIXES: 			switch (atoi(val)){				case UDM_ENABLED:#if UDM_VERSION_ID < 30200													Agent->Conf->ispell_mode |= UDM_ISPELL_USE_PREFIXES;#elif UDM_VERSION_ID >= 30204					UdmVarListReplaceStr(&Agent->Conf->Vars,"IspellUsePrefixes","1");#else					UdmAddIntVar(Agent->Conf->vars, "IspellUsePrefixes", 1, UDM_VARSRC_GLOBAL);#endif													break;									case UDM_DISABLED:#if UDM_VERSION_ID < 30200																	Agent->Conf->ispell_mode &= ~UDM_ISPELL_USE_PREFIXES;#elif UDM_VERSION_ID >= 30204					UdmVarListReplaceStr(&Agent->Conf->Vars,"IspellUsePrefixes","0");#else					UdmAddIntVar(Agent->Conf->vars, "IspellUsePrefixes", 0, UDM_VARSRC_GLOBAL);#endif																						break;								default:#if UDM_VERSION_ID < 30200													Agent->Conf->ispell_mode |= UDM_ISPELL_USE_PREFIXES;#elif UDM_VERSION_ID >= 30204					UdmVarListReplaceStr(&Agent->Conf->Vars,"IspellUsePrefixes","0");#else					UdmAddIntVar(Agent->Conf->vars, "IspellUsePrefixes", 1, UDM_VARSRC_GLOBAL);					#endif																	php_error_docref(NULL TSRMLS_CC, E_WARNING,"Unknown ispell prefixes mode");					RETURN_FALSE;					break;			}			break;		case UDM_PARAM_CHARSET:		case UDM_PARAM_LOCAL_CHARSET:#if UDM_VERSION_ID < 30200									Agent->Conf->local_charset=UdmGetCharset(val);			Agent->charset=Agent->Conf->local_charset;#elif UDM_VERSION_ID >= 30204			UdmVarListReplaceStr(&Agent->Conf->Vars,"LocalCharset",val);			{			    const char * charset=UdmVarListFindStr(&Agent->Conf->Vars,"LocalCharset","iso-8859-1");			    Agent->Conf->lcs=UdmGetCharSet(charset);			}#else			Agent->Conf->local_charset=strdup(val);			UdmReplaceStrVar(Agent->Conf->vars,"LocalCharset",val,UDM_VARSRC_GLOBAL);#endif			break;			#if UDM_VERSION_ID >= 30200		case UDM_PARAM_BROWSER_CHARSET:#if UDM_VERSION_ID >= 30204			UdmVarListReplaceStr(&Agent->Conf->Vars,"BrowserCharset",val);			{			    const char * charset=UdmVarListFindStr(&Agent->Conf->Vars,"BrowserCharset","iso-8859-1");			    Agent->Conf->bcs=UdmGetCharSet(charset);			}#else			Agent->Conf->browser_charset=strdup(val);			UdmReplaceStrVar(Agent->Conf->vars,"BrowserCharset",val,UDM_VARSRC_GLOBAL);#endif						break;		case UDM_PARAM_HLBEG:#if UDM_VERSION_ID >= 30204			UdmVarListReplaceStr(&Agent->Conf->Vars,"HlBeg",val);#else			UdmReplaceStrVar(Agent->Conf->vars,"HlBeg",val,UDM_VARSRC_GLOBAL);#endif						break;		case UDM_PARAM_HLEND:#if UDM_VERSION_ID >= 30204			UdmVarListReplaceStr(&Agent->Conf->Vars,"HlEnd",val);#else			UdmReplaceStrVar(Agent->Conf->vars,"HlEnd",val,UDM_VARSRC_GLOBAL);#endif						break;					case UDM_PARAM_SYNONYM:			if (UdmSynonymListLoad(Agent->Conf,val)) {				php_error_docref(NULL TSRMLS_CC, E_WARNING, "%s",Agent->Conf->errstr);				RETURN_FALSE;#if UDM_VERSION_ID >= 30204

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -