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

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

?? loginlib.c

?? vxworks5.5.1源代碼。完整源代碼
?? C
?? 第 1 頁 / 共 2 頁
字號:
    int   timeOutInSecond = 15;    long  bytesToRead;    ULONG   secondPassed;    ULONG  startTick;    while (name == NULL || name[0] == EOS)	{	printf ("\n%s",loginString);	secondPassed = 0;	bytesToRead  = 0;	startTick    = tickGet ();	while (secondPassed < timeOutInSecond && bytesToRead == 0)	    {	    if (ioctl (STD_IN, FIONREAD, (int)&bytesToRead) == ERROR)		return (ERROR);	    taskDelay (sysClkRateGet () /4);	    secondPassed = (tickGet () - startTick) / sysClkRateGet ();	    }	if (secondPassed >= timeOutInSecond)	    {	    printf ("\n");	    name[0] = EOS;	    return (OK);	    }	if (bytesToRead > 0)	   nbytes = read (STD_IN, name, MAX_LOGIN_NAME_LEN);	if (nbytes > 0)	    {	    name [nbytes - 1] = EOS;	    if (nbytes > 1)		return (OK);	    }	else	    {	    return (ERROR);	    }	}    return (ERROR);	/* just in case, should never reach here */    }/********************************************************************************* loginPasswdGet - get password from user** RETURNS: OK if the user types in the password within the time limit,* or ERROR otherwise.*/LOCAL STATUS loginPasswdGet    (    char *passwd        /* buffer for passwd field up  */                        /* to MAX_LOGIN_NAME_LEN bytes */    )    {    STATUS status;    int    nbytes = 0;    int    timeOutInSecond = 15;    long   bytesToRead;    int    secondPassed;    ULONG   startTick;    int    oldoptions;		/* original OPT_TERM options */    int    newoptions;		/* new OPT_TERM options during login */    oldoptions = ioctl (STD_IN, FIOGETOPTIONS, 0);    newoptions = oldoptions & ~OPT_ECHO;    printf ("Password: ");	/* ask for password */    /* don't want to echo the password */    ioctl (STD_IN, FIOSETOPTIONS, newoptions);    bytesToRead  = 0;    secondPassed = 0;    startTick    = tickGet();    while (secondPassed < timeOutInSecond &&	   bytesToRead == 0)	{	if (ioctl (STD_IN, FIONREAD, (int)&bytesToRead) == ERROR)	    return (ERROR);	taskDelay (sysClkRateGet() /4);	secondPassed = (tickGet() - startTick) /sysClkRateGet();	}    if (bytesToRead > 0)	nbytes = read (STD_IN, passwd, MAX_LOGIN_NAME_LEN);    if (nbytes > 0)	{	passwd [nbytes - 1] = EOS;	status = OK;	}    else	status = ERROR;    ioctl (STD_IN, FIOSETOPTIONS, oldoptions); 		/* restore options */    return (status);    }/******************************************************************************* loginPrompt - display a login prompt and validate a user entry** This routine displays a login prompt and validates a user entry.  If both* user name and password match with an entry in the login table, the user is* then given access to the VxWorks system.  Otherwise, it prompts the user* again.** All control characters are disabled during authentication except CTRL-D,* which will terminate the remote login session.** INTERNAL* This routine should be called when starting (not a restart) the shell,* during rlogin, or login via telnet.** RETURNS: OK if the name and password are valid, or ERROR if there is an* EOF or the routine times out.*/STATUS loginPrompt    (    char  *userName     /* user name, ask if NULL or not provided */    )    {    char    name [MAX_LOGIN_NAME_LEN];	    /* buffer to hold user name */    char    passwd [MAX_LOGIN_NAME_LEN];    /* buffer to hold user password */    int     minTimeOutInSecond 	= 60;    long    maxTimeOutInSecond 	= 60 * 60;  /* 1 hour */    STATUS  status           	= OK;    int     ix                 	= 0;    int	    secondPassed 	= 0;    long    totalTicks;		/* ticks equivalent to loginTimeOutInSecond */    ULONG   startTick;    ULONG   tickUsed;    int     oldoptions = ioctl (STD_IN, FIOGETOPTIONS, 0);    int     newoptions = (oldoptions & ~(OPT_ABORT) & ~(OPT_MON_TRAP));    /* disable interrupt or reboot from the terminal during network login */    (void)ioctl (STD_IN, FIOSETOPTIONS, newoptions);    /* each loginPrompt session cannot be more than 60 minutes     * or less than 60 seconds */    if (loginTimeOutInSecond < minTimeOutInSecond)	loginTimeOutInSecond = minTimeOutInSecond;    else if (loginTimeOutInSecond > maxTimeOutInSecond)	loginTimeOutInSecond = maxTimeOutInSecond;    startTick  = tickGet();    totalTicks = loginTimeOutInSecond * sysClkRateGet();    if (userName == NULL)	name[0] = EOS;    else	strcpy (name, userName);	/* user name provided */    while (secondPassed < loginTimeOutInSecond)	{	(void)ioctl (STD_IN, FIOFLUSH, 0);	if (strlen (name) == 0)	    {	    if (loginNameGet (name) == ERROR)	/* get user name */		{		/* the remote site will disconnect from the VxWorks shell */		status = ERROR;		break;		}  	    }	if (loginUserVerify (name, "") == OK) 	/* no password needed */	    break;	if (strlen (name) > 0)	    {	    if (loginPasswdGet (passwd) == ERROR)		{		status = ERROR;		break;		}	    else if (loginUserVerify (name, passwd) == OK)   /* correct login */		{		status = OK;		break;		}	    else		{		printf ("\nLogin incorrect\n");		ix++;		/* keep count of failed login try */		}	    }	name[0] = EOS; 			/* reset user name */	tickUsed = tickGet() - startTick;        secondPassed = tickUsed / sysClkRateGet ();	/* delay increases linearly as to the number of failed login attempts */	if ((totalTicks - tickUsed) > (sysClkRateGet () * ix))	    taskDelay (sysClkRateGet() * ix);	}    if (secondPassed >= loginTimeOutInSecond)	{	printf ("\nLogin timed out after %d seconds!\n", loginTimeOutInSecond);	status = ERROR;	}    taskDelay (sysClkRateGet ()/2);    (void) ioctl (STD_IN, FIOSETOPTIONS, oldoptions);	/* restore terminal */    /* set user name to new user if correctly rlogin'd */    if (status == OK)	{	/* passwd also set */	remCurIdSet (name, passwd); /* restored by shellLogout */	}    return (status);    }/******************************************************************************* loginStringSet - change the login string** This routine changes the login prompt string to <newString>.* The maximum string length is 80 characters.** RETURNS: N/A*/void loginStringSet    (    char  *newString            /* string to become new login prompt */    )    {    strncpy (loginString, newString, MAX_LOGIN_NAME_LEN);    }/******************************************************************************* loginEncryptInstall - install an encryption routine** This routine allows the user to install a custom encryption routine.* The custom routine <rtn> must be of the following form: * .CS* STATUS encryptRoutine*        (*        char *password,               /@ string to encrypt    @/*        char *encryptedPassword       /@ resulting encryption @/*        )* .CE* When a custom encryption routine is installed, a host version of* this routine must be written to replace the tool vxencrypt* in \f3host/<hostOs>/bin\fP.** EXAMPLE* The custom example above could be installed as follows:* .CS* #ifdef INCLUDE_SECURITY*     loginInit ();                               /@ initialize login table   @/*     shellLoginInstall (loginPrompt, NULL);      /@ install shell security   @/*     loginEncryptInstall (encryptRoutine, NULL); /@ install encrypt. routine @/* #endif* .CE** RETURNS: N/A** SEE ALSO: loginDefaultEncrypt(), vxencrypt*/void loginEncryptInstall    (    FUNCPTR rtn,        /* function pointer to encryption routine */    int     var         /* argument to the encryption routine (unused) */    )    {    encryptRtn = rtn;    encryptVar = var;    }/******************************************************************************* loginEncrypt - invoke the encryption routine installed by loginEncryptInstall** RETURNS: OK or ERROR.*/LOCAL STATUS loginEncrypt    (    char *in,           /* argument to be passed to encryption routine */    char *out           /* argument to be passed to encryption routine */    )    {    if ((encryptRtn != NULL) && ((*encryptRtn) (in, out) != OK))	return (ERROR);    return (OK);    }/******************************************************************************** loginDefaultEncrypt - default password encryption routine** This routine provides default encryption for login passwords.  It employs* a simple encryption algorithm.  It takes as arguments a string <in> and a* pointer to a buffer <out>.  The encrypted string is then stored in the* buffer.** The input strings must be at least 8 characters and no more than 40* characters.** If a more sophisticated encryption algorithm is needed, this routine can* be replaced, as long as the new encryption routine retains the same* declarations as the default routine.  The routine vxencrypt* in \f3host/<hostOs>/bin\fP* should also be replaced by a host version of <encryptionRoutine>.  For more* information, see the manual entry for loginEncryptInstall().** RETURNS: OK, or ERROR if the password is invalid.** SEE ALSO: loginEncryptInstall(), vxencrypt** INTERNAL* The encryption is done by summing the password and multiplying it by* a magic number.*/STATUS loginDefaultEncrypt    (    char *in,                           /* input string */    char *out                           /* encrypted string */    )    {    int            ix;    unsigned long  magic     = 31695317;    unsigned long  passwdInt = 0;   if (strlen (in) < 8 || strlen (in) > 40)        {	errnoSet (S_loginLib_INVALID_PASSWORD);        return (ERROR);        }    for (ix = 0; ix < strlen(in); ix++)         /* sum the string */        passwdInt += (in[ix]) * (ix+1) ^ (ix+1);    sprintf (out, "%u", (long) (passwdInt * magic)); /* convert interger							to string */    /* make encrypted passwd printable */    for (ix = 0; ix < strlen (out); ix++)        {        if (out[ix] < '3')            out[ix] = out[ix] + '!';    /* arbitrary */        if (out[ix] < '7')            out[ix] = out[ix] + '/';    /* arbitrary */        if (out[ix] < '9')            out[ix] = out[ix] + 'B';    /* arbitrary */        }    return (OK);    }

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产老肥熟一区二区三区| 久久午夜色播影院免费高清| 欧美电影免费观看高清完整版在线 | 捆绑变态av一区二区三区| 国产精品综合二区| 欧美日韩国产一二三| 中文字幕在线不卡视频| 久久se精品一区二区| 欧美性xxxxxx少妇| 亚洲特黄一级片| 成人免费毛片aaaaa**| 日韩三级视频在线看| 一区二区视频在线看| 国产xxx精品视频大全| 欧美电影免费观看高清完整版在线| 亚洲一区二区三区激情| 99热这里都是精品| 国产精品无码永久免费888| 国产在线精品一区二区不卡了| 9191国产精品| 日韩精品亚洲一区二区三区免费| 色噜噜久久综合| 综合久久一区二区三区| 成人av在线播放网站| 国产欧美一区二区精品性色| 狠狠色丁香久久婷婷综合_中| 欧美一区永久视频免费观看| 三级影片在线观看欧美日韩一区二区| 欧美色精品在线视频| 亚洲国产视频一区二区| 欧美在线视频日韩| 午夜成人免费电影| 日韩一区二区三区视频在线| 日韩国产欧美三级| 日韩午夜中文字幕| 久久精品国产77777蜜臀| 精品区一区二区| 极品少妇xxxx精品少妇偷拍| 国产日韩精品一区二区三区| 成人听书哪个软件好| 中文字幕一区av| 日本韩国精品一区二区在线观看| 亚洲综合免费观看高清在线观看| 欧美日韩综合一区| 日韩高清一级片| 欧美成人bangbros| 国产精一品亚洲二区在线视频| 国产日韩v精品一区二区| 97久久精品人人做人人爽| 夜夜嗨av一区二区三区网页 | 日韩欧美一级二级三级久久久| 捆绑紧缚一区二区三区视频| 国产欧美一区二区精品性色超碰| 91蝌蚪国产九色| 秋霞影院一区二区| 中文一区一区三区高中清不卡| 在线观看日韩av先锋影音电影院| 午夜电影一区二区三区| 久久精品一二三| 欧美性感一区二区三区| 美女网站色91| 国产精品久久久久久久久久免费看 | 国产精品18久久久久久vr| 国产精品免费看片| 91精品国产免费| 成人国产一区二区三区精品| 亚洲福利视频三区| 国产精品天干天干在线综合| 欧美老年两性高潮| 国产成都精品91一区二区三| 亚洲成年人影院| 国产日本一区二区| 欧美一区二区日韩一区二区| 成人小视频免费观看| 天堂成人国产精品一区| 国产精品美女久久久久久久| 制服丝袜亚洲色图| 91香蕉视频mp4| 精品午夜久久福利影院 | 欧美日韩国产色站一区二区三区| 国产一区二区三区久久久| 亚洲综合免费观看高清完整版在线 | 国产精品素人视频| 欧美一区二区三区在线观看 | 亚洲午夜久久久久久久久久久| 久久精品一区二区三区四区| 7777精品伊人久久久大香线蕉经典版下载 | 男男视频亚洲欧美| 亚洲一二三四久久| 国产精品久久久久影院老司| 日韩精品一区二区在线观看| 欧洲日韩一区二区三区| 成人午夜大片免费观看| 国产精品一二三| 另类调教123区| 日韩精品亚洲一区二区三区免费| 亚洲一区二区三区自拍| 1024亚洲合集| 国产精品精品国产色婷婷| 亚洲精品一区二区三区香蕉| 91精品国产综合久久精品app| 色噜噜狠狠成人网p站| 不卡视频一二三四| av一二三不卡影片| 粉嫩aⅴ一区二区三区四区五区| 国产在线播放一区三区四| 另类小说综合欧美亚洲| 久久国产精品99久久人人澡| 日本欧美一区二区| 另类调教123区| 国产一区二区三区免费| 国产精品一卡二卡在线观看| 国产一区二区毛片| 懂色av一区二区在线播放| 国产91精品一区二区麻豆亚洲| 国产91精品入口| 成人av资源网站| 色综合久久久久网| 欧美午夜影院一区| 欧美乱妇一区二区三区不卡视频| 91精品欧美福利在线观看| 欧美一区永久视频免费观看| 欧美zozozo| 国产精品美女久久久久aⅴ国产馆| 国产精品久久久久9999吃药| 亚洲情趣在线观看| 亚洲国产中文字幕在线视频综合| 日韩精品每日更新| 久久爱www久久做| 99久久精品国产麻豆演员表| 一本一道久久a久久精品| 欧美日韩免费一区二区三区| 日韩三级视频在线看| 欧美国产激情一区二区三区蜜月 | 美国十次综合导航| 国产伦理精品不卡| 一本到不卡精品视频在线观看| 一本大道久久a久久精二百| 69久久夜色精品国产69蝌蚪网| 欧美成人午夜电影| 国产精品私人影院| 亚洲福利一区二区三区| 国产一区二区三区在线观看精品| 99re这里只有精品视频首页| 欧美亚洲免费在线一区| 日韩视频免费观看高清完整版| 国产精品久久久久永久免费观看 | 91蜜桃网址入口| 91精品国产综合久久精品性色| 国产午夜亚洲精品羞羞网站| 亚洲综合自拍偷拍| 国产乱码精品一区二区三区av| 91国产免费观看| 精品三级在线看| 亚洲欧美日韩一区二区| 国产综合色产在线精品| 欧洲国产伦久久久久久久| 久久久精品人体av艺术| 亚洲与欧洲av电影| 高清成人在线观看| 欧美一级欧美三级在线观看| 国产精品毛片大码女人| 麻豆精品国产91久久久久久| 色久优优欧美色久优优| 久久久午夜电影| 亚洲一区视频在线| 成人午夜短视频| 亚洲精品一区二区三区在线观看 | 日韩精品视频网站| 色偷偷成人一区二区三区91| 久久这里只有精品首页| 婷婷六月综合网| 欧美综合久久久| 亚洲欧美自拍偷拍| 极品少妇一区二区三区精品视频| 欧美精品久久一区二区三区| 日本一区二区免费在线| 激情成人综合网| 日韩欧美高清一区| 日本欧美加勒比视频| 欧美乱熟臀69xxxxxx| 一区二区三区四区不卡在线 | 成人深夜在线观看| 日韩女优av电影| 日韩电影在线观看电影| 欧美日韩精品一区二区三区| 一区二区三区免费| 99re这里只有精品6| 亚洲日本成人在线观看| 成人app在线观看| 一区免费观看视频| 不卡电影一区二区三区| 中文子幕无线码一区tr| 顶级嫩模精品视频在线看| 国产日韩欧美不卡在线| 国产69精品久久99不卡| 欧美激情在线看| 成人av在线电影| 亚洲免费电影在线| 在线视频欧美精品|