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

📄 passwordfd.c

📁 linux下的ppp协议簇开源代码; 可以进行linux内核级的pppoe拨号
💻 C
字号:
/* *  Author: Arvin Schnell <arvin@suse.de> * *  This plugin let's you pass the password to the pppd via *  a file descriptor. That's easy and secure - no fiddling *  with pap- and chap-secrets files. */#include <stdio.h>#include <errno.h>#include <string.h>#include <unistd.h>#include "pppd.h"char pppd_version[] = VERSION;static int passwdfd = -1;static char save_passwd[MAXSECRETLEN];static option_t options[] = {    { "passwordfd", o_int, &passwdfd,      "Receive password on this file descriptor" },    { NULL }};static int pwfd_check (void){    return 1;}static int pwfd_passwd (char *user, char *passwd){    int readgood, red;    if (passwdfd == -1)	return -1;    if (passwd == NULL)	return 1;    if (passwdfd == -2) {	strcpy (passwd, save_passwd);	return 1;    }    readgood = 0;    do {	red = read (passwdfd, passwd + readgood, MAXSECRETLEN - 1 - readgood);	if (red == 0)	    break;	if (red < 0) {	    error ("Can't read secret from fd\n");	    readgood = -1;	    break;	}	readgood += red;    } while (readgood < MAXSECRETLEN - 1);    close (passwdfd);    if (readgood < 0)	return 0;    passwd[readgood] = 0;    strcpy (save_passwd, passwd);    passwdfd = -2;    return 1;}void plugin_init (void){    add_options (options);    pap_check_hook = pwfd_check;    pap_passwd_hook = pwfd_passwd;    chap_check_hook = pwfd_check;    chap_passwd_hook = pwfd_passwd;}

⌨️ 快捷键说明

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