📄 pap-lib.pl
字号:
# pap-lib.pl# Functions for managing the pap-secrets filedo '../web-lib.pl';&init_config();# list_secrets()sub list_secrets{local(@rv, $line, $_);open(SEC, $config{'pap_file'});$line = 0;while(<SEC>) { chop; s/^#.*$//g; @w = &split_words($_); if (@w >= 3) { local(%sec, @ips); $sec{'client'} = $w[0]; $sec{'server'} = $w[1]; $sec{'secret'} = $w[2]; @ips = @w[3..$#w]; $sec{'ips'} = \@ips; $sec{'line'} = $line; push(@rv, \%sec); } $line++; }close(SEC);return @rv;}# create_secret(&secret)sub create_secret{open(SEC, ">> $config{'pap_file'}");print SEC &join_words($_[0]->{'client'}, $_[0]->{'server'}, $_[0]->{'secret'}, @{$_[0]->{'ips'}}),"\n";close(SEC);}# change_secret(&secret)sub change_secret{&replace_file_line($config{'pap_file'}, $_[0]->{'line'}, &join_words($_[0]->{'client'}, $_[0]->{'server'}, $_[0]->{'secret'}, @{$_[0]->{'ips'}})."\n");}# delete_secret(&secret)sub delete_secret{&replace_file_line($config{'pap_file'}, $_[0]->{'line'});}# split_words(string)sub split_words{local($s, @w);$s = $_[0];while($s =~ /^\s*([^"\s]+|"([^"]*)")(.*)$/) { push(@w, defined($2) ? $2 : $1); $s = $3; }return @w;}sub join_words{local(@w, $w);foreach $w (@_) { if ($w =~ /^\S+$/) { push(@w, $w); } else { push(@w, "\"$w\""); } }return join(" ", @w);}# opt_crypt(password)# Returns the given password, crypted if the user has configured itsub opt_crypt{if ($config{'encrypt_pass'}) { local($salt); srand(time()); $salt = chr(int(rand(26))+65).chr(int(rand(26))+65); return crypt($_[0], $salt); }return $_[0];}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -