📄 passwordfd.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 + -