v2.8.0: Fix regression with set challenges being ignored #40
							
								
								
									
										37
									
								
								lib/core.js
									
									
									
									
									
								
							
							
						
						
									
										37
									
								
								lib/core.js
									
									
									
									
									
								
							| @ -365,17 +365,18 @@ module.exports.create = function (gl) { | |||||||
|               //
 |               //
 | ||||||
|               certReq.setChallenge = function (challenge, done) { |               certReq.setChallenge = function (challenge, done) { | ||||||
|                 log(args.debug, "setChallenge called for '" + challenge.altname + "'"); |                 log(args.debug, "setChallenge called for '" + challenge.altname + "'"); | ||||||
|  |                 // NOTE: First arg takes precedence
 | ||||||
|                 var copy = utils.merge({ domains: [challenge.altname] }, args); |                 var copy = utils.merge({ domains: [challenge.altname] }, args); | ||||||
|                 copy = utils.merge(copy, gl); |                 copy = utils.merge(copy, gl); | ||||||
|                 utils.tplCopy(copy); |                 utils.tplCopy(copy); | ||||||
|                 copy.challenge = challenge; |                 copy.challenge = challenge; | ||||||
| 
 | 
 | ||||||
|                 if (1 === gl.challenges[challenge.type].set.length) { |                 if (1 === copy.challenges[challenge.type].set.length) { | ||||||
|                   gl.challenges[challenge.type].set(copy).then(function (result) { |                   copy.challenges[challenge.type].set(copy).then(function (result) { | ||||||
|                     done(null, result); |                     done(null, result); | ||||||
|                   }).catch(done); |                   }).catch(done); | ||||||
|                 } else if (2 === gl.challenges[challenge.type].set.length) { |                 } else if (2 === copy.challenges[challenge.type].set.length) { | ||||||
|                   gl.challenges[challenge.type].set(copy, done); |                   copy.challenges[challenge.type].set(copy, done); | ||||||
|                 } else { |                 } else { | ||||||
|                   Object.keys(challenge).forEach(function (key) { |                   Object.keys(challenge).forEach(function (key) { | ||||||
|                     done[key] = challenge[key]; |                     done[key] = challenge[key]; | ||||||
| @ -383,28 +384,42 @@ module.exports.create = function (gl) { | |||||||
|                   // regression bugfix for le-challenge-cloudflare
 |                   // regression bugfix for le-challenge-cloudflare
 | ||||||
|                   // (_acme-challege => _greenlock-dryrun-XXXX)
 |                   // (_acme-challege => _greenlock-dryrun-XXXX)
 | ||||||
|                   copy.acmePrefix = (challenge.dnsHost||'').replace(/\.*/, '') || copy.acmePrefix; |                   copy.acmePrefix = (challenge.dnsHost||'').replace(/\.*/, '') || copy.acmePrefix; | ||||||
|                   gl.challenges[challenge.type].set(copy, challenge.altname, challenge.token, challenge.keyAuthorization, done); |                   copy.challenges[challenge.type].set(copy, challenge.altname, challenge.token, challenge.keyAuthorization, done); | ||||||
|                 } |                 } | ||||||
|               }; |               }; | ||||||
|               certReq.removeChallenge = function (challenge, done) { |               certReq.removeChallenge = function (challenge, done) { | ||||||
|                 log(args.debug, "removeChallenge called for '" + challenge.altname + "'"); |                 log(args.debug, "removeChallenge called for '" + challenge.altname + "'"); | ||||||
|                 var copy = utils.merge({ domains: [challenge.altname] }, gl); |                 var copy = utils.merge({ domains: [challenge.altname] }, args); | ||||||
|  |                 copy = utils.merge(copy, gl); | ||||||
|                 utils.tplCopy(copy); |                 utils.tplCopy(copy); | ||||||
|                 copy.challenge = challenge; |                 copy.challenge = challenge; | ||||||
| 
 | 
 | ||||||
|                 if (1 === gl.challenges[challenge.type].remove.length) { |                 if (1 === copy.challenges[challenge.type].remove.length) { | ||||||
|                   gl.challenges[challenge.type].remove(copy).then(function (result) { |                   copy.challenges[challenge.type].remove(copy).then(function (result) { | ||||||
|                     done(null, result); |                     done(null, result); | ||||||
|                   }).catch(done); |                   }).catch(done); | ||||||
|                 } else if (2 === gl.challenges[challenge.type].remove.length) { |                 } else if (2 === copy.challenges[challenge.type].remove.length) { | ||||||
|                   gl.challenges[challenge.type].remove(copy, done); |                   copy.challenges[challenge.type].remove(copy, done); | ||||||
|                 } else { |                 } else { | ||||||
|                   Object.keys(challenge).forEach(function (key) { |                   Object.keys(challenge).forEach(function (key) { | ||||||
|                     done[key] = challenge[key]; |                     done[key] = challenge[key]; | ||||||
|                   }); |                   }); | ||||||
|                   gl.challenges[challenge.type].remove(copy, challenge.altname, challenge.token, done); |                   copy.challenges[challenge.type].remove(copy, challenge.altname, challenge.token, done); | ||||||
|                 } |                 } | ||||||
|               }; |               }; | ||||||
|  |               certReq.getZones = function (challenge) { | ||||||
|  |                 var copy = utils.merge({ dnsHosts: args.domains.map(function (x) { return 'xxxx.' + x; }) }, args); | ||||||
|  |                 copy = utils.merge(copy, gl); | ||||||
|  |                 utils.tplCopy(copy); | ||||||
|  |                 copy.challenge = challenge; | ||||||
|  | 
 | ||||||
|  |                 if (!copy.challenges[challenge.type] || ('function' !== typeof copy.challenges[challenge.type].zones)) { | ||||||
|  |                   // may not be available, that's fine.
 | ||||||
|  |                   return Promise.resolve([]); | ||||||
|  |                 } | ||||||
|  | 
 | ||||||
|  |                 return copy.challenges[challenge.type].zones(copy); | ||||||
|  |               }; | ||||||
| 
 | 
 | ||||||
|               log(args.debug, 'calling greenlock.acme.getCertificateAsync', certReq.subject, certReq.domains); |               log(args.debug, 'calling greenlock.acme.getCertificateAsync', certReq.subject, certReq.domains); | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -54,6 +54,7 @@ module.exports.merge = function (/*defaults, args*/) { | |||||||
| 
 | 
 | ||||||
|   allDefaults.forEach(function (defaults) { |   allDefaults.forEach(function (defaults) { | ||||||
|     Object.keys(defaults).forEach(function (key) { |     Object.keys(defaults).forEach(function (key) { | ||||||
|  |     /* | ||||||
|       if ('challenges' === key && copy[key] && defaults[key]) { |       if ('challenges' === key && copy[key] && defaults[key]) { | ||||||
|         Object.keys(defaults[key]).forEach(function (k) { |         Object.keys(defaults[key]).forEach(function (k) { | ||||||
|           copy[key][k] = defaults[key][k]; |           copy[key][k] = defaults[key][k]; | ||||||
| @ -61,10 +62,13 @@ module.exports.merge = function (/*defaults, args*/) { | |||||||
|       } else { |       } else { | ||||||
|         copy[key] = defaults[key]; |         copy[key] = defaults[key]; | ||||||
|       } |       } | ||||||
|  |     */ | ||||||
|  |       copy[key] = defaults[key]; | ||||||
|     }); |     }); | ||||||
|   }); |   }); | ||||||
| 
 | 
 | ||||||
|   Object.keys(args).forEach(function (key) { |   Object.keys(args).forEach(function (key) { | ||||||
|  |     /* | ||||||
|     if ('challenges' === key && copy[key] && args[key]) { |     if ('challenges' === key && copy[key] && args[key]) { | ||||||
|         Object.keys(args[key]).forEach(function (k) { |         Object.keys(args[key]).forEach(function (k) { | ||||||
|           copy[key][k] = args[key][k]; |           copy[key][k] = args[key][k]; | ||||||
| @ -72,6 +76,8 @@ module.exports.merge = function (/*defaults, args*/) { | |||||||
|     } else { |     } else { | ||||||
|       copy[key] = args[key]; |       copy[key] = args[key]; | ||||||
|     } |     } | ||||||
|  |     */ | ||||||
|  |     copy[key] = args[key]; | ||||||
|   }); |   }); | ||||||
| 
 | 
 | ||||||
|   return copy; |   return copy; | ||||||
|  | |||||||
							
								
								
									
										22
									
								
								package-lock.json
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										22
									
								
								package-lock.json
									
									
									
										generated
									
									
									
								
							| @ -1,19 +1,19 @@ | |||||||
| { | { | ||||||
|   "name": "greenlock", |   "name": "greenlock", | ||||||
|   "version": "2.7.23", |   "version": "2.8.0", | ||||||
|   "lockfileVersion": 1, |   "lockfileVersion": 1, | ||||||
|   "requires": true, |   "requires": true, | ||||||
|   "dependencies": { |   "dependencies": { | ||||||
|     "@coolaj86/urequest": { |  | ||||||
|       "version": "1.3.7", |  | ||||||
|       "resolved": "https://registry.npmjs.org/@coolaj86/urequest/-/urequest-1.3.7.tgz", |  | ||||||
|       "integrity": "sha512-PPrVYra9aWvZjSCKl/x1pJ9ZpXda1652oJrPBYy5rQumJJMkmTBN3ux+sK2xAUwVvv2wnewDlaQaHLxLwSHnIA==" |  | ||||||
|     }, |  | ||||||
|     "@root/mkdirp": { |     "@root/mkdirp": { | ||||||
|       "version": "1.0.0", |       "version": "1.0.0", | ||||||
|       "resolved": "https://registry.npmjs.org/@root/mkdirp/-/mkdirp-1.0.0.tgz", |       "resolved": "https://registry.npmjs.org/@root/mkdirp/-/mkdirp-1.0.0.tgz", | ||||||
|       "integrity": "sha512-hxGAYUx5029VggfG+U9naAhQkoMSXtOeXtbql97m3Hi6/sQSRL/4khKZPyOF6w11glyCOU38WCNLu9nUcSjOfA==" |       "integrity": "sha512-hxGAYUx5029VggfG+U9naAhQkoMSXtOeXtbql97m3Hi6/sQSRL/4khKZPyOF6w11glyCOU38WCNLu9nUcSjOfA==" | ||||||
|     }, |     }, | ||||||
|  |     "@root/request": { | ||||||
|  |       "version": "1.3.11", | ||||||
|  |       "resolved": "https://registry.npmjs.org/@root/request/-/request-1.3.11.tgz", | ||||||
|  |       "integrity": "sha512-3a4Eeghcjsfe6zh7EJ+ni1l8OK9Fz2wL1OjP4UCa0YdvtH39kdXB9RGWuzyNv7dZi0+Ffkc83KfH0WbPMiuJFw==" | ||||||
|  |     }, | ||||||
|     "acme": { |     "acme": { | ||||||
|       "version": "1.3.0", |       "version": "1.3.0", | ||||||
|       "resolved": "https://registry.npmjs.org/acme/-/acme-1.3.0.tgz", |       "resolved": "https://registry.npmjs.org/acme/-/acme-1.3.0.tgz", | ||||||
| @ -28,12 +28,12 @@ | |||||||
|       "integrity": "sha512-Aa4bUpq6ftX1VODiShOetOY5U0tsXY5EV7+fQwme3Q8Y9rjYBArBXHgFCAVKtK1AF+Ev8pIuF6Z42hzMFa73/w==" |       "integrity": "sha512-Aa4bUpq6ftX1VODiShOetOY5U0tsXY5EV7+fQwme3Q8Y9rjYBArBXHgFCAVKtK1AF+Ev8pIuF6Z42hzMFa73/w==" | ||||||
|     }, |     }, | ||||||
|     "acme-v2": { |     "acme-v2": { | ||||||
|       "version": "1.7.7", |       "version": "1.8.1", | ||||||
|       "resolved": "https://registry.npmjs.org/acme-v2/-/acme-v2-1.7.7.tgz", |       "resolved": "https://registry.npmjs.org/acme-v2/-/acme-v2-1.8.1.tgz", | ||||||
|       "integrity": "sha512-Pg0EQ45h8N2e4K2goYedutCgWxAmtcruwDHr6hgPBgAWEORVb5SQEdXjtEhCrn+APtr7MyFPryyzXpYpDD5ecA==", |       "integrity": "sha512-1nTyycCnsjTZogQ9JQ1nld9r7nY3G9WguKPXV+YdTEvEl0Q8kUcwkzkohsbRHpaUcSqU+OP7t7qLVSp2aWriPQ==", | ||||||
|       "requires": { |       "requires": { | ||||||
|         "@coolaj86/urequest": "^1.3.6", |         "@root/request": "^1.3.11", | ||||||
|         "rsa-compat": "^2.0.6" |         "rsa-compat": "^2.0.8" | ||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     "cert-info": { |     "cert-info": { | ||||||
|  | |||||||
| @ -1,6 +1,6 @@ | |||||||
| { | { | ||||||
|   "name": "greenlock", |   "name": "greenlock", | ||||||
|   "version": "2.7.24", |   "version": "2.8.0", | ||||||
|   "description": "Greenlock is Let's Encrypt (ACME) client for node.js", |   "description": "Greenlock is Let's Encrypt (ACME) client for node.js", | ||||||
|   "homepage": "https://greenlock.domains/", |   "homepage": "https://greenlock.domains/", | ||||||
|   "main": "index.js", |   "main": "index.js", | ||||||
| @ -37,7 +37,7 @@ | |||||||
|   "dependencies": { |   "dependencies": { | ||||||
|     "acme": "^1.3.0", |     "acme": "^1.3.0", | ||||||
|     "acme-dns-01-cli": "^3.0.0", |     "acme-dns-01-cli": "^3.0.0", | ||||||
|     "acme-v2": "^1.7.7", |     "acme-v2": "^1.8.1", | ||||||
|     "cert-info": "^1.5.1", |     "cert-info": "^1.5.1", | ||||||
|     "greenlock-store-fs": "^3.0.2", |     "greenlock-store-fs": "^3.0.2", | ||||||
|     "keypairs": "^1.2.14", |     "keypairs": "^1.2.14", | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user