Skip to content

Added Lua custom headers#11610

Closed
RGanor wants to merge 3 commits intoPowerDNS:masterfrom
RGanor:lua-headers
Closed

Added Lua custom headers#11610
RGanor wants to merge 3 commits intoPowerDNS:masterfrom
RGanor:lua-headers

Conversation

@RGanor
Copy link

@RGanor RGanor commented May 7, 2022

Short description

Added an option to add arbitrary http headers to Lua functions
#8295

header-demo      IN      LUA     A       "ifurlup('http://demo.example.com', {'192.168.10.71', '192.0.2.2'} , { headers='header-key: header-value'})"

Checklist

I have:

  • read the CONTRIBUTING.md document
  • compiled this code
  • tested this code
  • included documentation (including possible behaviour changes)
  • documented the code
  • added or modified regression test(s)
  • added or modified unit test(s)

@Habbie
Copy link
Member

Habbie commented May 7, 2022

Nice! I'll try to review this soon. Want to add docs and tests meanwhile? Let us know if you need some help there.

@RGanor
Copy link
Author

RGanor commented May 7, 2022

Hey @Habbie !
I had some trouble running the tests (although i did test the functionality manually).
The tests cant find the geoip module.

@Habbie
Copy link
Member

Habbie commented May 7, 2022

Want to come to IRC to get some help in getting your tests set up? Details are at https://www.powerdns.com/opensource.html

@Habbie
Copy link
Member

Habbie commented Jun 16, 2022

This still needs docs and tests.

@github-actions
Copy link

github-actions bot commented Jun 18, 2022

@check-spelling-bot Report

Unrecognized words, please review:

  • seperated
Previously acknowledged words that are now absent AUTHIP CIDR dnsheader pieter
To accept these unrecognized words as correct (and remove the previously acknowledged and now absent words), run the following commands

... in a clone of the git@github.com:RGanor/pdns.git repository
on the lua-headers branch:

update_files() {
perl -e '
my @expect_files=qw('".github/actions/spell-check/expect.txt"');
@ARGV=@expect_files;
my @stale=qw('"$patch_remove"');
my $re=join "|", @stale;
my $suffix=".".time();
my $previous="";
sub maybe_unlink { unlink($_[0]) if $_[0]; }
while (<>) {
if ($ARGV ne $old_argv) { maybe_unlink($previous); $previous="$ARGV$suffix"; rename($ARGV, $previous); open(ARGV_OUT, ">$ARGV"); select(ARGV_OUT); $old_argv = $ARGV; }
next if /^(?:$re)(?:(?:\r|\n)*$| .*)/; print;
}; maybe_unlink($previous);'
perl -e '
my $new_expect_file=".github/actions/spell-check/expect.txt";
use File::Path qw(make_path);
use File::Basename qw(dirname);
make_path (dirname($new_expect_file));
open FILE, q{<}, $new_expect_file; chomp(my @words = <FILE>); close FILE;
my @add=qw('"$patch_add"');
my %items; @items{@words} = @words x (1); @items{@add} = @add x (1);
@words = sort {lc($a)."-".$a cmp lc($b)."-".$b} keys %items;
open FILE, q{>}, $new_expect_file; for my $word (@words) { print FILE "$word\n" if $word =~ /\w/; };
close FILE;
system("git", "add", $new_expect_file);
'
}

comment_json=$(mktemp)
curl -L -s -S \
  --header "Content-Type: application/json" \
  "https://api.github.com/repos/PowerDNS/pdns/issues/comments/1159448121" > "$comment_json"
comment_body=$(mktemp)
jq -r .body < "$comment_json" > $comment_body
rm $comment_json

patch_remove=$(perl -ne 'next unless s{^</summary>(.*)</details>$}{$1}; print' < "$comment_body")
  

patch_add=$(perl -e '$/=undef;
$_=<>;
s{<details>.*}{}s;
s{^#.*}{};
s{\n##.*}{};
s{(?:^|\n)\s*\*}{}g;
s{\s+}{ }g;
print' < "$comment_body")
  
update_files
rm $comment_body
git add -u
If the flagged items do not appear to be text

If items relate to a ...

  • well-formed pattern.

    If you can write a pattern that would match it,
    try adding it to the patterns.txt file.

    Patterns are Perl 5 Regular Expressions - you can test yours before committing to verify it will match your lines.

    Note that patterns can't match multiline strings.

  • binary file.

    Please add a file path to the excludes.txt file matching the containing file.

    File paths are Perl 5 Regular Expressions - you can test yours before committing to verify it will match your files.

    ^ refers to the file's path from the root of the repository, so ^README\.md$ would exclude README.md (on whichever branch you're using).

@RGanor
Copy link
Author

RGanor commented Jun 18, 2022

@Habbie Added documentation, Not sure how and what test I should add.

@RGanor
Copy link
Author

RGanor commented Jul 12, 2022

@Habbie @omoerbeek any news on this pr?

@Habbie
Copy link
Member

Habbie commented Jul 12, 2022

It still needs tests. We are ready as always on IRC to help you with that.

@Habbie Habbie modified the milestones: auth-4.7.0-beta1, auth-5 Aug 2, 2022
@Habbie
Copy link
Member

Habbie commented Feb 21, 2023

ping

@Habbie Habbie self-assigned this Feb 21, 2023
@RGanor
Copy link
Author

RGanor commented Feb 28, 2023

@Habbie Hey Habbie thanks for pinging this PR. Sadly I'm not being able to work on this PR anymore but so if anyone can take this PR and finish it, it will be very helpful.
Thanks :)

@Habbie
Copy link
Member

Habbie commented Feb 28, 2023

Thank you for letting us know!

@pieterlexis
Copy link
Contributor

Looks like I pushed to the contributor's branch after re-doing the whole PR. Closing in favor of #16955

@pieterlexis pieterlexis closed this Mar 6, 2026
pieterlexis added a commit to pieterlexis/pdns that referenced this pull request Mar 6, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants