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

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

?? htvmsutils.c

?? www工具包. 這是W3C官方支持的www支撐庫. 其中提供通用目的的客戶端的WebAPI: complete HTTP/1.1 (with caching, pipelining, PUT, POS
?? C
?? 第 1 頁 / 共 2 頁
字號:
/* MODULE							HTVMSUtil.c**		VMS Utility Routines**** AUTHORS:**	MD	Mark Donszelmann    duns@vxdeop.cern.ch**	FM	Foteos Macrides	    macrides@sci.wfeb.edu**** HISTORY:**	14 Nov 93  MD	Written**	31 Mar 94  FM	Added HTVMS_disableAllPrv**	06 Jul 94  FM	Added HTVMS_getUIC and HTVMS_isOwner**** BUGS:*****/#include <ssdef.h>#include <jpidef.h>#include <uaidef.h>#include <prvdef.h>#include <acldef.h>#include <armdef.h>#include <chpdef.h>#include <lnmdef.h>#include <libdtdef.h>#include <descrip.h>#include <unixlib.h>#include <stdio.h>#include <stat.h>#include <time.h>#include "HTUtils.h"#include "HTVMSUtils.h"#include "HTAccess.h"#define INFINITY 512            /* file name length @@ FIXME */typedef struct {   unsigned BufferLength : 16;   unsigned ItemCode : 16;   unsigned BufferAddress : 32;   unsigned ReturnLengthAddress : 32;} ItemStruct;/* PUBLIC							HTVMS_authSysPrv()**		CHECKS IF THIS PROCESS IS AUTHORIZED TO ENABLE SYSPRV** ON ENTRY:**	No arguments.**** ON EXIT:**	returns	YES if SYSPRV is authorized*/PUBLIC BOOL HTVMS_authSysPrv NOARGS{unsigned long Result;ItemStruct ItemList[2];unsigned long Length;unsigned long Buffer[2];  /* fill Item */  ItemList[0].BufferLength = sizeof(Buffer);  ItemList[0].BufferAddress = Buffer;  ItemList[0].ReturnLengthAddress = &Length;  ItemList[0].ItemCode = JPI$_AUTHPRIV;  /* terminate list */  ItemList[1].ItemCode = 0;  ItemList[1].BufferLength = 0;  /* call system */  Result = SYS$GETJPIW(0, 0, 0, ItemList, 0, 0, 0);  if (Result != SS$_NORMAL)     return(NO);    if (Buffer[0] & PRV$M_SYSPRV)     return(YES);  return(NO);  }/* PUBLIC							HTVMS_enableSysPrv()**		ENABLES SYSPRV** ON ENTRY:**	No arguments.**** ON EXIT:**	*/PUBLIC void HTVMS_enableSysPrv NOARGS{unsigned long Result;unsigned long Prv[2], PreviousPrv[2];   Prv[0] = PRV$M_SYSPRV;   Prv[1] = 0;   Result = SYS$SETPRV(1,&Prv,0,&PreviousPrv);      if (Result == SS$_NORMAL) {         if (!(PreviousPrv[0] & PRV$M_SYSPRV)) {            CTRACE(TDEST, "VMS......... Enabled SYSPRV\n");	}   }}/* PUBLIC							HTVMS_disableSysPrv()**		DISABLES SYSPRV** ON ENTRY:**	No arguments.**** ON EXIT:**	*/PUBLIC void HTVMS_disableSysPrv NOARGS{unsigned long Result;unsigned long Prv[2], PreviousPrv[2];   Prv[0] = PRV$M_SYSPRV;   Prv[1] = 0;   Result = SYS$SETPRV(0,&Prv,0,&PreviousPrv);      if (Result == SS$_NORMAL) {         if (PreviousPrv[0] & PRV$M_SYSPRV) {            CTRACE(TDEST, "VMS......... Disabled SYSPRV\n");         }   }}/* PUBLIC						HTVMS_disableAllPrv()****		Disable all privileges except TMPMBX and NETMBX**** ON ENTRY:**	No arguments.**** ON EXIT:***/PUBLIC void HTVMS_disableAllPrv NOARGS{#ifndef MULTINET#define bzero(s,n) memset(s,'\0',n)#endif    union prvdef prvadr;    bzero((char *) &prvadr, sizeof(prvadr));    prvadr.prv$v_cmkrnl = 1;          prvadr.prv$v_cmexec = 1;          prvadr.prv$v_sysnam = 1;          prvadr.prv$v_grpnam = 1;          prvadr.prv$v_allspool = 1;        prvadr.prv$v_detach = 1;          prvadr.prv$v_diagnose = 1;        prvadr.prv$v_log_io = 1;          prvadr.prv$v_group = 1;           prvadr.prv$v_noacnt = 1;          prvadr.prv$v_prmceb = 1;          prvadr.prv$v_prmmbx = 1;          prvadr.prv$v_pswapm = 1;          prvadr.prv$v_setpri = 1;          prvadr.prv$v_setprv = 1;          prvadr.prv$v_world = 1;           prvadr.prv$v_mount = 1;           prvadr.prv$v_oper = 1;            prvadr.prv$v_exquota = 1;         prvadr.prv$v_volpro = 1;          prvadr.prv$v_phy_io = 1;          prvadr.prv$v_bugchk = 1;          prvadr.prv$v_prmgbl = 1;          prvadr.prv$v_sysgbl = 1;          prvadr.prv$v_pfnmap = 1;          prvadr.prv$v_shmem = 1;           prvadr.prv$v_sysprv = 1;          prvadr.prv$v_bypass = 1;          prvadr.prv$v_syslck = 1;          prvadr.prv$v_share = 1;           prvadr.prv$v_upgrade = 1;         prvadr.prv$v_downgrade = 1;       prvadr.prv$v_grpprv = 1;          prvadr.prv$v_readall = 1;         prvadr.prv$v_security = 1;    }/* PUBLIC							HTVMS_checkAccess()**		CHECKS ACCESS TO FILE FOR CERTAIN USER** ON ENTRY:**	FileName	The file to be accessed**	UserName	Name of the user to check access for.**			User nobody, represented by "" is given NO for an answer**	Method		Method to be checked for**			'method'	'access reuired'**			METHOD_GET	read**			METHOD_HEAD	read**** ON EXIT:**	returns YES if access is allowed**** Not only filename is checked but also filename.dir...**	*/PUBLIC BOOL HTVMS_checkAccess ARGS3(	CONST char *, FileName,	CONST char *, UserName,	HTMethod, Method){unsigned long Result;ItemStruct ItemList[2];unsigned long Flags;unsigned long FlagsLength;unsigned long Access;unsigned long AccessLength;unsigned long ObjType;char *VmsName;char Fname[256];struct dsc$descriptor_s FileNameDesc;struct dsc$descriptor_s UserNameDesc;char *colon;   /* user nobody should access as from account under which server is running */   if (0 == strcmp(UserName,""))   {      CTRACE(TDEST, "VMSAccess... No access allowed user nobody. Error in rulefile specifying 'nobody' as uid for protect rule\n");      return(NO);   }   /* make local copy */   strcpy(Fname,FileName);   /* strip off last slash anyway */   if (Fname[strlen(Fname)-1] == '/')      Fname[strlen(Fname)-1] = '\0';   /* check Filename and convert */   colon = strchr(Fname,':');   if (colon)      VmsName = HTVMS_name("",colon+1);   else      VmsName = HTVMS_name("",Fname);   /* check for GET */   if ((Method == METHOD_GET) ||       (Method == METHOD_HEAD))    {     Access = ARM$M_READ;     Flags = CHP$M_READ;     /* fill Access */     ItemList[0].BufferLength = sizeof(Access);     ItemList[0].BufferAddress = &Access;     ItemList[0].ReturnLengthAddress = &AccessLength;     ItemList[0].ItemCode = CHP$_ACCESS;     /* fill Flags */     ItemList[1].BufferLength = sizeof(Flags);     ItemList[1].BufferAddress = &Flags;     ItemList[1].ReturnLengthAddress = &FlagsLength;     ItemList[1].ItemCode = CHP$_FLAGS;     /* terminate list */     ItemList[2].ItemCode = 0;     ItemList[2].BufferLength = 0;     /* fill input */     ObjType = ACL$C_FILE;     UserNameDesc.dsc$w_length = strlen(UserName);     UserNameDesc.dsc$b_dtype = DSC$K_DTYPE_T;     UserNameDesc.dsc$b_class = DSC$K_CLASS_S;     UserNameDesc.dsc$a_pointer = UserName;     FileNameDesc.dsc$w_length = strlen(VmsName);     FileNameDesc.dsc$b_dtype = DSC$K_DTYPE_T;     FileNameDesc.dsc$b_class = DSC$K_CLASS_S;     FileNameDesc.dsc$a_pointer = VmsName;     /* call system for filename */     Result = SYS$CHECK_ACCESS(&ObjType,&FileNameDesc,&UserNameDesc,ItemList);     if (Result == SS$_NORMAL)        return(YES);     /* try with extension .dir... */     strcat(VmsName,".dir");     FileNameDesc.dsc$w_length = strlen(VmsName);     Result = SYS$CHECK_ACCESS(&ObjType,&FileNameDesc,&UserNameDesc,ItemList);     if (Result == SS$_NORMAL)        return(YES);     /* failed for filename and .dir */     CTRACE(TDEST, "VMSAccess... No access allowed for user '%s', file '%s' under method '%s'\n",UserName,Fname,HTMethod_name(Method));     return(NO);   }   CTRACE(TDEST, "VMSAccess... No access allowed for method '%s'\n",HTMethod_name(Method));   return(NO);}/* PUBLIC							HTVMS_wwwName()**		CONVERTS VMS Name into WWW Name ** ON ENTRY:**	vmsname		VMS file specification (NO NODE)**** ON EXIT:**	returns 	www file specification**** EXAMPLES:**	vmsname				wwwname**	DISK$USER 			disk$user**	DISK$USER: 			/disk$user/**	DISK$USER:[DUNS] 		/disk$user/duns**	DISK$USER:[DUNS.ECHO] 		/disk$user/duns/echo**	[DUNS] 				duns**	[DUNS.ECHO] 			duns/echo**	[DUNS.ECHO.-.TRANS] 		duns/echo/../trans**	[DUNS.ECHO.--.TRANS] 		duns/echo/../../trans**	[.DUNS] 			duns**	[.DUNS.ECHO] 			duns/echo**	[.DUNS.ECHO]TEST.COM 		duns/echo/test.com **	[.DUNS.ECHO]TEST-BLAH.COM	duns/echo/test-blah.com**	[.DUNS-ECHO]TEST.COM 		duns-echo/test.com**	[.X-----]TEST.COM		x-----/test.com**	TEST.COM 			test.com**	DISK$USER:[DUNS].RHOSTS		/disk$user/duns/.rhosts ****	*/PUBLIC char * HTVMS_wwwName ARGS1(	char *, vmsname){static char wwwname[256];char *src, *dst;int dir, up;   dst = wwwname;   src = vmsname;   dir = 0;   up = 0;   if (strchr(src,':')) *(dst++) = '/';   for ( ; *src != '\0' ; src++)   {      switch(*src)      {         case ':':  *(dst++) = '/'; break;         case '-': /* dashes might exist in filename and directory names... */	           if (up)                   { /* directory and up */		      if (*(src-1) == '-') *(dst++) = '/';                      *(dst++) = '.';                       *(dst++) = '.';                    }                   else                   { /* filename or directory name with a dash */                      *(dst++) = '-';                   }                   break;         case '.': if (dir)                   {                      if (*(src-1) != '[') *(dst++) = '/';                      up = 1;                   }                   else                   {  		      if (*(src-1) == ']') *(dst++) = '/';                      *(dst++) = '.';                   }                   break;         case '[': dir = 1; up = 1; break;         case ']': dir = 0; up = 0; break;         default:  up = 0;		   if (*(src-1) == ']') *(dst++) = '/';                   *(dst++) = *src;                    break;      }   }   *(dst++) = '\0';   return(wwwname);}/* PUBLIC							HTVMS_name()**		CONVERTS WWW name into a VMS name** ON ENTRY:**	nn		Node Name (optional)**	fn		WWW file name**** ON EXIT:**	returns 	vms file specification**** Bug:	Returns pointer to static -- non-reentrant*/PUBLIC char * HTVMS_name ARGS2(	CONST char *, nn, 	CONST char *, fn){/*	We try converting the filename into Files-11 syntax. That is, we assume**	first that the file is, like us, on a VMS node. We try remote**	(or local) DECnet access. Files-11, VMS, VAX and DECnet**	are trademarks of Digital Equipment Corporation. **	The node is assumed to be local if the hostname WITHOUT DOMAIN**	matches the local one. @@@*/    static char vmsname[INFINITY];	/* returned */    char * filename = (char*)malloc(strlen(fn)+1);    char * nodename = (char*)malloc(strlen(nn)+2+1);	/* Copies to hack */    char *second;		/* 2nd slash */    char *last;			/* last slash */        char * hostname = HTGetHostName();    if (!filename || !nodename) outofmem(__FILE__, "HTVMSname");    strcpy(filename, fn);    strcpy(nodename, "");	/* On same node? Yes if node names match */    {        char *p, *q;        for (p=hostname, q=nn; *p && *p!='.' && *q && *q!='.'; p++, q++){	    if (TOUPPER(*p)!=TOUPPER(*q)) {	        strcpy(nodename, nn);		q = strchr(nodename, '.');	/* Mismatch */		if (q) *q=0;			/* Chop domain */		strcat(nodename, "::");		/* Try decnet anyway */		break;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美日韩视频在线第一区| 日韩一区国产二区欧美三区| 日本免费新一区视频| 国产精品视频九色porn| 日韩亚洲欧美在线| 色婷婷综合激情| 成人在线视频首页| 捆绑紧缚一区二区三区视频| 亚洲午夜日本在线观看| 国产精品污www在线观看| 欧美一级二级三级乱码| 日本韩国一区二区三区视频| 粉嫩aⅴ一区二区三区四区五区| 日韩黄色免费网站| 亚洲第一会所有码转帖| 亚洲欧美欧美一区二区三区| 国产亚洲综合色| 538在线一区二区精品国产| 91免费版在线看| 国产成都精品91一区二区三| 黑人巨大精品欧美黑白配亚洲| 日韩福利视频网| 亚洲成人激情综合网| 亚洲男人都懂的| 中文字幕一区av| 中文字幕第一区二区| 欧美精品一区二区三| 日韩一级精品视频在线观看| 欧美人与禽zozo性伦| 色94色欧美sute亚洲13| 99久久精品免费看国产| 成人黄色片在线观看| 国产成人免费高清| 成人激情免费电影网址| 国产成人免费视频网站| 精品日本一线二线三线不卡| 91精品国产欧美一区二区18| 欧美日韩一区成人| 7777女厕盗摄久久久| 日韩欧美综合一区| 日韩欧美国产一区二区在线播放 | 在线观看亚洲精品| 在线一区二区三区做爰视频网站| 在线看国产一区| 欧美色爱综合网| 6080国产精品一区二区| 日韩无一区二区| 久久亚洲精华国产精华液| 久久午夜色播影院免费高清| 欧美激情一区二区三区蜜桃视频| 国产精品免费视频网站| 亚洲免费色视频| 亚洲国产乱码最新视频| 亚洲成av人片在www色猫咪| 日韩精品一卡二卡三卡四卡无卡| 日本vs亚洲vs韩国一区三区| 另类成人小视频在线| 国产乱码精品一区二区三区五月婷| 国产99久久久国产精品潘金| 91在线观看视频| 欧美日本一道本在线视频| 欧美一区二区二区| 欧美激情在线免费观看| 亚洲一级片在线观看| 免费高清视频精品| 成人免费看视频| 欧美日韩一区二区不卡| 精品国产成人系列| 亚洲欧美另类在线| 日韩av不卡一区二区| 国产激情视频一区二区三区欧美 | 日韩免费看网站| 国产精品午夜在线观看| 亚洲国产一区二区三区青草影视 | 久久国产精品99久久久久久老狼 | 国产一区二区三区免费| 一本久道久久综合中文字幕 | 久久久久综合网| 亚洲欧美欧美一区二区三区| 日本成人在线电影网| 成人午夜在线视频| 欧美猛男男办公室激情| 久久精品夜色噜噜亚洲a∨| 一区二区三区**美女毛片| 免费观看日韩电影| 99精品欧美一区二区三区小说| 51久久夜色精品国产麻豆| 欧美国产成人精品| 日韩电影在线看| av电影天堂一区二区在线| 8x8x8国产精品| 亚洲美女一区二区三区| 免费在线观看一区| 色婷婷综合久久久中文一区二区| 精品国产sm最大网站免费看| 亚洲一区二区三区爽爽爽爽爽| 国产伦精品一区二区三区免费 | 国产精品国产三级国产普通话三级| 午夜欧美电影在线观看| 成人黄色在线视频| 精品电影一区二区三区| 亚洲二区视频在线| 成人国产视频在线观看| 久久亚洲精品国产精品紫薇| 婷婷久久综合九色综合伊人色| 91在线国内视频| 欧美国产视频在线| 国产在线精品一区二区夜色| 欧美麻豆精品久久久久久| 亚洲久本草在线中文字幕| 国产福利一区在线| 精品国产乱码久久久久久免费| 日韩不卡在线观看日韩不卡视频| 91香蕉视频污在线| 国产精品不卡在线| 国产精品一区免费在线观看| 日韩精品中午字幕| 日日夜夜一区二区| 精品视频在线视频| 亚洲资源中文字幕| 色婷婷综合久久久中文字幕| 综合在线观看色| 成人动漫精品一区二区| 国产精品网站在线播放| 成人性生交大片| 中文字幕乱码日本亚洲一区二区| 国产一区999| 久久久精品中文字幕麻豆发布| 久久99国产精品久久99果冻传媒| 欧美一区二区三区免费在线看| 天堂成人免费av电影一区| 欧美巨大另类极品videosbest| 亚洲电影激情视频网站| 欧美日韩三级一区| 亚洲成人动漫av| 欧美一区二区三级| 久久国产精品99精品国产 | 91精品国产色综合久久不卡蜜臀 | 亚洲色图.com| 色哟哟国产精品免费观看| 亚洲欧美激情视频在线观看一区二区三区| 成人午夜精品在线| 亚洲女爱视频在线| 欧美日韩免费一区二区三区| 亚洲成人在线观看视频| 欧美日韩夫妻久久| 精品一二三四区| 久久久精品2019中文字幕之3| 国产·精品毛片| 亚洲欧洲日韩一区二区三区| 91官网在线免费观看| 亚洲国产成人av| 日韩美一区二区三区| 国产精品资源在线观看| 中文字幕在线观看不卡| 日本精品一区二区三区高清| 日韩精彩视频在线观看| 久久久久久亚洲综合影院红桃| 成人综合在线视频| 亚洲综合激情小说| 欧美一区二区精美| 国产盗摄视频一区二区三区| 亚洲欧美怡红院| 欧美日本一区二区| 国产精品影视网| 中文字幕亚洲在| 欧美年轻男男videosbes| 国产在线播放一区三区四| 国产精品久久久久久久久免费樱桃| 欧美在线看片a免费观看| 久久国产日韩欧美精品| 亚洲天天做日日做天天谢日日欢| 3751色影院一区二区三区| 激情久久五月天| 亚洲色图欧美激情| 精品国精品国产| 一本大道久久a久久精品综合| 美女一区二区在线观看| 日韩码欧中文字| 精品日韩在线一区| 欧美综合在线视频| 极品美女销魂一区二区三区免费| 国产精品麻豆99久久久久久| 7777精品伊人久久久大香线蕉的| 国产 日韩 欧美大片| 亚洲电影一级片| 欧美激情一区二区三区在线| 91精品国产色综合久久不卡蜜臀| 不卡的电视剧免费网站有什么| 天天亚洲美女在线视频| 亚洲人吸女人奶水| 久久久久成人黄色影片| 在线播放/欧美激情| 99久久免费国产| 国产乱码精品一品二品| 午夜影院久久久| 亚洲日本在线视频观看| 久久亚洲精精品中文字幕早川悠里 | 五月婷婷综合网| 欧美极品xxx|