Skip to content

Commit 2e1a585

Browse files
committed
fixup! ACME: certificate issue and renewal implementation.
1 parent 64cf3b1 commit 2e1a585

File tree

3 files changed

+15
-12
lines changed

3 files changed

+15
-12
lines changed

Cargo.lock

Lines changed: 3 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ libc = "0.2.174"
2424
openssl = { version = "0.10.73", features = ["bindgen"] }
2525
openssl-foreign-types = { package = "foreign-types", version = "0.3" }
2626
openssl-sys = { version = "0.9.109", features = ["bindgen"] }
27+
scopeguard = "1"
2728
serde = { version = "1.0.219", features = ["derive"] }
2829
serde_json = "1.0.142"
2930
siphasher = { version = "1.0.1", default-features = false }
@@ -32,11 +33,11 @@ zeroize = "1.8.1"
3233

3334
[dependencies.nginx-sys]
3435
git = "https://github.com/nginx/ngx-rust"
35-
rev = "5890854d693712579bf60fe6464ae5c36d725958"
36+
rev = "ac60b788cc1b9e9d5e2e92058b54494dcecb1109"
3637

3738
[dependencies.ngx]
3839
git = "https://github.com/nginx/ngx-rust"
39-
rev = "5890854d693712579bf60fe6464ae5c36d725958"
40+
rev = "ac60b788cc1b9e9d5e2e92058b54494dcecb1109"
4041
default-features = false
4142
features = ["async", "serde", "std"]
4243

src/acme.rs

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -386,11 +386,6 @@ where
386386

387387
for challenge in authorization.challenges {
388388
result = self.do_challenge(order, &identifier, &challenge).await;
389-
// unregister here because ownership for scoped guard inside of
390-
// do_challenge would be too complicated
391-
if let Some(solver) = self.find_solver_for(&challenge.kind) {
392-
let _ = solver.unregister(&identifier, &challenge);
393-
}
394389

395390
if result.is_ok() {
396391
break;
@@ -442,9 +437,15 @@ where
442437
return Ok(());
443438
}
444439

445-
self.find_solver_for(&challenge.kind)
446-
.ok_or(anyhow!("no solver for {:?}", challenge.kind))?
447-
.register(ctx, identifier, challenge)?;
440+
let solver = self
441+
.find_solver_for(&challenge.kind)
442+
.ok_or(anyhow!("no solver for {:?}", challenge.kind))?;
443+
444+
solver.register(ctx, identifier, challenge)?;
445+
446+
scopeguard::defer! {
447+
let _ = solver.unregister(identifier, challenge);
448+
};
448449

449450
// "{}" in request payload initiates the challenge, "" checks the status.
450451
let mut payload: &[u8] = b"{}";

0 commit comments

Comments
 (0)