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

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

?? auth_unix.c

?? ucLinux is a very good embeded sytem. Most of company use this as their development OS.
?? C
字號:
/* * Sun RPC is a product of Sun Microsystems, Inc. and is provided for * unrestricted use provided that this legend is included on all tape * media and as a part of the software program in whole or part.  Users * may copy or modify Sun RPC without charge, but are not authorized * to license or distribute it to anyone else except as part of a product or * program developed by the user. * * SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE * WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE. * * Sun RPC is provided with no support and without any obligation on the * part of Sun Microsystems, Inc. to assist in its use, correction, * modification or enhancement. * * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC * OR ANY PART THEREOF. * * In no event will Sun Microsystems, Inc. be liable for any lost revenue * or profits or other special, indirect and consequential damages, even if * Sun has been advised of the possibility of such damages. * * Sun Microsystems, Inc. * 2550 Garcia Avenue * Mountain View, California  94043 *//* * Copyright (C) 1984, Sun Microsystems, Inc. *//* * auth_unix.c, Implements UNIX style authentication parameters. * * The system is very weak.  The client uses no encryption for it's * credentials and only sends null verifiers.  The server sends backs * null verifiers or optionally a verifier that suggests a new short hand * for the credentials. */#define __FORCE_GLIBC#include <features.h>#include <limits.h>#include <stdio.h>#include <string.h>#include <unistd.h>#include <sys/param.h>#include <rpc/types.h>#include <rpc/xdr.h>#include <rpc/auth.h>#include <rpc/auth_unix.h>#ifdef USE_IN_LIBIO# include <wchar.h>#endif/* * Unix authenticator operations vector */static void authunix_nextverf (AUTH *);static bool_t authunix_marshal (AUTH *, XDR *);static bool_t authunix_validate (AUTH *, struct opaque_auth *);static bool_t authunix_refresh (AUTH *);static void authunix_destroy (AUTH *);static struct auth_ops auth_unix_ops = {  authunix_nextverf,  authunix_marshal,  authunix_validate,  authunix_refresh,  authunix_destroy};/* * This struct is pointed to by the ah_private field of an auth_handle. */struct audata {  struct opaque_auth au_origcred;	/* original credentials */  struct opaque_auth au_shcred;	/* short hand cred */  u_long au_shfaults;		/* short hand cache faults */  char au_marshed[MAX_AUTH_BYTES];  u_int au_mpos;		/* xdr pos at end of marshed */};#define	AUTH_PRIVATE(auth)	((struct audata *)auth->ah_private)static bool_t marshal_new_auth (AUTH *) internal_function;/* * Create a unix style authenticator. * Returns an auth handle with the given stuff in it. */AUTH *authunix_create (char *machname, uid_t uid, gid_t gid, int len,		 gid_t *aup_gids){  struct authunix_parms aup;  char mymem[MAX_AUTH_BYTES];  struct timeval now;  XDR xdrs;  AUTH *auth;  struct audata *au;  /*   * Allocate and set up auth handle   */  auth = (AUTH *) mem_alloc (sizeof (*auth));  au = (struct audata *) mem_alloc (sizeof (*au));  if (auth == NULL || au == NULL)    {no_memory:#ifdef USE_IN_LIBIO      if (_IO_fwide (stderr, 0) > 0)	(void) __fwprintf (stderr, L"%s",			   _("authunix_create: out of memory\n"));      else#endif	(void) fputs (_("authunix_create: out of memory\n"), stderr);      mem_free (auth, sizeof (*auth));      mem_free (au, sizeof (*au));      return NULL;    }  auth->ah_ops = &auth_unix_ops;  auth->ah_private = (caddr_t) au;  auth->ah_verf = au->au_shcred = _null_auth;  au->au_shfaults = 0;  /*   * fill in param struct from the given params   */  (void) gettimeofday (&now, (struct timezone *) 0);  aup.aup_time = now.tv_sec;  aup.aup_machname = machname;  aup.aup_uid = uid;  aup.aup_gid = gid;  aup.aup_len = (u_int) len;  aup.aup_gids = aup_gids;  /*   * Serialize the parameters into origcred   */  xdrmem_create (&xdrs, mymem, MAX_AUTH_BYTES, XDR_ENCODE);  if (!xdr_authunix_parms (&xdrs, &aup))    abort ();  au->au_origcred.oa_length = len = XDR_GETPOS (&xdrs);  au->au_origcred.oa_flavor = AUTH_UNIX;  au->au_origcred.oa_base = mem_alloc ((u_int) len);  if (au->au_origcred.oa_base == NULL)    goto no_memory;  memcpy(au->au_origcred.oa_base, mymem, (u_int) len);  /*   * set auth handle to reflect new cred.   */  auth->ah_cred = au->au_origcred;  marshal_new_auth (auth);  return auth;}/* * Returns an auth handle with parameters determined by doing lots of * syscalls. */AUTH *authunix_create_default (void){  int len;  char machname[MAX_MACHINE_NAME + 1];  uid_t uid;  gid_t gid;  int max_nr_groups = sysconf (_SC_NGROUPS_MAX);  gid_t gids[max_nr_groups];  if (gethostname (machname, MAX_MACHINE_NAME) == -1)    abort ();  machname[MAX_MACHINE_NAME] = 0;  uid = geteuid ();  gid = getegid ();  if ((len = getgroups (max_nr_groups, gids)) < 0)    abort ();  /* This braindamaged Sun code forces us here to truncate the     list of groups to NGRPS members since the code in     authuxprot.c transforms a fixed array.  Grrr.  */  return authunix_create (machname, uid, gid, MIN (NGRPS, len), gids);}/* * authunix operations */static voidauthunix_nextverf (AUTH *auth){  /* no action necessary */}static bool_tauthunix_marshal (AUTH *auth, XDR *xdrs){  struct audata *au = AUTH_PRIVATE (auth);  return XDR_PUTBYTES (xdrs, au->au_marshed, au->au_mpos);}static bool_tauthunix_validate (AUTH *auth, struct opaque_auth *verf){  struct audata *au;  XDR xdrs;  if (verf->oa_flavor == AUTH_SHORT)    {      au = AUTH_PRIVATE (auth);      xdrmem_create (&xdrs, verf->oa_base, verf->oa_length,		     XDR_DECODE);      if (au->au_shcred.oa_base != NULL)	{	  mem_free (au->au_shcred.oa_base,		    au->au_shcred.oa_length);	  au->au_shcred.oa_base = NULL;	}      if (xdr_opaque_auth (&xdrs, &au->au_shcred))	{	  auth->ah_cred = au->au_shcred;	}      else	{	  xdrs.x_op = XDR_FREE;	  (void) xdr_opaque_auth (&xdrs, &au->au_shcred);	  au->au_shcred.oa_base = NULL;	  auth->ah_cred = au->au_origcred;	}      marshal_new_auth (auth);    }  return TRUE;}static bool_tauthunix_refresh (AUTH *auth){  struct audata *au = AUTH_PRIVATE (auth);  struct authunix_parms aup;  struct timeval now;  XDR xdrs;  int stat;  if (auth->ah_cred.oa_base == au->au_origcred.oa_base)    {      /* there is no hope.  Punt */      return FALSE;    }  au->au_shfaults++;  /* first deserialize the creds back into a struct authunix_parms */  aup.aup_machname = NULL;  aup.aup_gids = (gid_t *) NULL;  xdrmem_create (&xdrs, au->au_origcred.oa_base,		 au->au_origcred.oa_length, XDR_DECODE);  stat = xdr_authunix_parms (&xdrs, &aup);  if (!stat)    goto done;  /* update the time and serialize in place */  (void) gettimeofday (&now, (struct timezone *) 0);  aup.aup_time = now.tv_sec;  xdrs.x_op = XDR_ENCODE;  XDR_SETPOS (&xdrs, 0);  stat = xdr_authunix_parms (&xdrs, &aup);  if (!stat)    goto done;  auth->ah_cred = au->au_origcred;  marshal_new_auth (auth);done:  /* free the struct authunix_parms created by deserializing */  xdrs.x_op = XDR_FREE;  (void) xdr_authunix_parms (&xdrs, &aup);  XDR_DESTROY (&xdrs);  return stat;}static voidauthunix_destroy (AUTH *auth){  struct audata *au = AUTH_PRIVATE (auth);  mem_free (au->au_origcred.oa_base, au->au_origcred.oa_length);  if (au->au_shcred.oa_base != NULL)    mem_free (au->au_shcred.oa_base, au->au_shcred.oa_length);  mem_free (auth->ah_private, sizeof (struct audata));  if (auth->ah_verf.oa_base != NULL)    mem_free (auth->ah_verf.oa_base, auth->ah_verf.oa_length);  mem_free ((caddr_t) auth, sizeof (*auth));}/* * Marshals (pre-serializes) an auth struct. * sets private data, au_marshed and au_mpos */static bool_tinternal_functionmarshal_new_auth (AUTH *auth){  XDR xdr_stream;  XDR *xdrs = &xdr_stream;  struct audata *au = AUTH_PRIVATE (auth);  xdrmem_create (xdrs, au->au_marshed, MAX_AUTH_BYTES, XDR_ENCODE);  if ((!xdr_opaque_auth (xdrs, &(auth->ah_cred))) ||      (!xdr_opaque_auth (xdrs, &(auth->ah_verf))))    perror (_("auth_none.c - Fatal marshalling problem"));  else    au->au_mpos = XDR_GETPOS (xdrs);  XDR_DESTROY (xdrs);  return TRUE;}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产成人精品三级麻豆| 成人av资源网站| 亚洲欧洲制服丝袜| 日韩三级视频中文字幕| 99视频有精品| 国产一区美女在线| 亚洲图片欧美色图| 国产精品久久久久久久久免费相片| 欧美日韩国产高清一区二区 | 91女厕偷拍女厕偷拍高清| 一区二区三区高清在线| 国产午夜精品一区二区三区嫩草 | 欧美午夜一区二区三区| 成人免费观看视频| 精品一区二区三区免费毛片爱| 亚洲视频 欧洲视频| 久久久精品免费免费| 欧美一级生活片| 欧美少妇一区二区| 91首页免费视频| 成人一区二区三区中文字幕| 极品美女销魂一区二区三区免费| 婷婷丁香久久五月婷婷| 亚洲二区视频在线| 亚洲主播在线播放| 一区二区三区日韩精品| 成人欧美一区二区三区小说| 日本一区二区动态图| 国产亚洲短视频| 久久午夜羞羞影院免费观看| 欧美sm美女调教| 日韩你懂的在线观看| 欧美一级午夜免费电影| 欧美高清一级片在线| 欧美日韩亚洲综合在线| 欧美手机在线视频| 欧美日韩国产系列| 7777精品伊人久久久大香线蕉超级流畅| 欧洲人成人精品| 欧美无砖专区一中文字| 欧美日韩成人在线| 91精品国产麻豆国产自产在线| 8v天堂国产在线一区二区| 91精品中文字幕一区二区三区| 欧美久久久久久久久久 | 中文字幕 久热精品 视频在线 | 国产精品国产三级国产普通话三级| 国产日韩精品一区二区三区在线| 国产亚洲制服色| 国产女主播一区| **欧美大码日韩| 亚洲日本免费电影| 一区二区欧美精品| 偷拍一区二区三区四区| 青青草原综合久久大伊人精品| 奇米精品一区二区三区在线观看一| 色婷婷综合视频在线观看| 91视频在线观看免费| 欧美艳星brazzers| 91精品国产乱| 久久无码av三级| **性色生活片久久毛片| 亚洲成人在线免费| 久久精品国产网站| 东方aⅴ免费观看久久av| 91网站黄www| 欧美精品色综合| 久久久一区二区三区捆绑**| 国产精品久久久久国产精品日日| 亚洲黄色小视频| 麻豆精品视频在线观看| 国产一区在线精品| 在线一区二区三区四区五区| 欧美一区二区三区视频免费| 国产视频一区二区在线| 亚洲一二三区不卡| 国产一区视频网站| 色欧美88888久久久久久影院| 欧美一区二区视频在线观看2020 | 丁香六月综合激情| 欧美亚洲一区二区在线| 精品国产乱码久久久久久闺蜜| 国产精品另类一区| 日本三级韩国三级欧美三级| 盗摄精品av一区二区三区| 欧美日韩一区二区在线观看| 久久综合狠狠综合久久综合88 | 麻豆精品新av中文字幕| 国产成人综合视频| 欧美日韩电影一区| 国产日产欧美一区二区三区| 亚洲电影激情视频网站| 成人午夜激情在线| 制服丝袜av成人在线看| 欧美国产综合色视频| 日日噜噜夜夜狠狠视频欧美人 | 色综合久久中文字幕综合网| 日韩免费一区二区| 亚洲与欧洲av电影| 懂色一区二区三区免费观看| 777午夜精品免费视频| 专区另类欧美日韩| 国内欧美视频一区二区| 欧美日韩一区在线观看| 18涩涩午夜精品.www| 国精产品一区一区三区mba视频| 欧美日韩一区三区| 日韩美女精品在线| 国产精品99久久久久久宅男| 欧美一区午夜精品| 一区二区三区四区激情| 成人午夜大片免费观看| 精品1区2区在线观看| 首页国产欧美久久| 在线观看成人小视频| 国产精品国模大尺度视频| 国产一区二区91| 精品欧美乱码久久久久久| 日韩在线一区二区三区| 欧美综合色免费| 亚洲日本成人在线观看| 成人午夜av电影| 国产欧美视频一区二区| 久草这里只有精品视频| 日韩网站在线看片你懂的| 天天免费综合色| 欧美日韩三级一区二区| 亚洲一区二区不卡免费| 日本精品免费观看高清观看| 国产精品白丝在线| 成人av免费在线播放| 国产精品剧情在线亚洲| 成人黄色av电影| 国产精品美女久久久久av爽李琼 | 无码av免费一区二区三区试看| 在线观看日韩精品| 亚洲综合色视频| 欧美午夜精品免费| 午夜久久久久久久久久一区二区| 91久久精品一区二区| 亚洲国产一区二区三区青草影视| 色婷婷激情综合| 亚洲国产精品嫩草影院| 欧美日韩国产大片| 日韩不卡免费视频| 欧美mv日韩mv国产网站app| 国产91精品在线观看| 国产日韩欧美精品综合| 成人福利视频在线看| 国产精品国产三级国产aⅴ中文 | 岛国一区二区三区| 欧美激情在线一区二区三区| 99久久精品情趣| 亚洲欧美一区二区久久| 欧美视频在线观看一区二区| 日韩黄色在线观看| 欧美一级片在线看| 国产精品一区在线| 国产精品成人午夜| 精品视频在线视频| 美女一区二区三区在线观看| 久久这里都是精品| 99re视频精品| 午夜影院在线观看欧美| 精品日韩一区二区| 成人在线综合网站| 一级女性全黄久久生活片免费| 欧美浪妇xxxx高跟鞋交| 久99久精品视频免费观看| 中文字幕国产一区| 欧洲日韩一区二区三区| 另类小说图片综合网| 欧美国产综合一区二区| 欧美三区在线观看| 激情图片小说一区| 夜夜嗨av一区二区三区中文字幕 | 国产成人av自拍| 一区二区三区鲁丝不卡| 日韩一级片网站| 不卡一卡二卡三乱码免费网站| 亚欧色一区w666天堂| 国产校园另类小说区| 欧美揉bbbbb揉bbbbb| 国产老妇另类xxxxx| 亚洲精品videosex极品| 精品国产一区二区国模嫣然| 99vv1com这只有精品| 蜜臀久久99精品久久久久宅男| 欧美激情自拍偷拍| 欧美一区二区视频在线观看2022| 不卡的av在线播放| 久久国产成人午夜av影院| 亚洲欧美电影一区二区| 2023国产精品视频| 欧美私人免费视频| 99视频有精品| 国产呦萝稀缺另类资源| 日韩—二三区免费观看av| 亚洲婷婷综合久久一本伊一区| 精品欧美一区二区在线观看 |