update approveDomains function as per #15
This commit is contained in:
		
							parent
							
								
									a612f4f98b
								
							
						
					
					
						commit
						73f2051188
					
				
							
								
								
									
										63
									
								
								index.js
									
									
									
									
									
								
							
							
						
						
									
										63
									
								
								index.js
									
									
									
									
									
								
							| @ -409,28 +409,19 @@ Greenlock.create = function (gl) { | |||||||
|         log(gl.debug, 'gl.getCertificates called for', domain, 'with certs for', certs && certs.altnames || 'NONE'); |         log(gl.debug, 'gl.getCertificates called for', domain, 'with certs for', certs && certs.altnames || 'NONE'); | ||||||
|         var opts = { domain: domain, domains: certs && certs.altnames || [ domain ] }; |         var opts = { domain: domain, domains: certs && certs.altnames || [ domain ] }; | ||||||
| 
 | 
 | ||||||
|         try { |         function onApproved(results) { | ||||||
|           gl.approveDomains(opts, certs, function (_err, results) { |           var certificate = results.certificate || results.certs; | ||||||
|             if (_err) { |           var options = results.options || results; | ||||||
|               if (false !== gl.logRejectedDomains) { |           if (results.certificate) { | ||||||
|                 console.error("[Error] approveDomains rejected tls sni '" + domain + "'"); |             results.certificate = null; | ||||||
|                 console.error("[Error] (see https://git.coolaj86.com/coolaj86/greenlock.js/issues/11)"); |  | ||||||
|                 if ('E_REJECT_SNI' !== _err.code) { |  | ||||||
|                   console.error("[Error] This is the rejection message:"); |  | ||||||
|                   console.error(_err.message); |  | ||||||
|                 } |  | ||||||
|                 console.error(""); |  | ||||||
|               } |  | ||||||
|               cb(_err); |  | ||||||
|               return; |  | ||||||
|           } |           } | ||||||
| 
 | 
 | ||||||
|             log(gl.debug, 'gl.approveDomains called with certs for', results.certs && results.certs.altnames || 'NONE', 'and options:'); |           log(gl.debug, 'gl.approveDomains called with certs for', certificate && certificate.altnames || 'NONE', 'and options:'); | ||||||
|             log(gl.debug, results.options); |           log(gl.debug, options); | ||||||
| 
 | 
 | ||||||
|             if (results.certs) { |           if (certificate) { | ||||||
|             log(gl.debug, 'gl renewing'); |             log(gl.debug, 'gl renewing'); | ||||||
|               return gl.core.certificates.renewAsync(results.options, results.certs).then( |             return gl.core.certificates.renewAsync(options, certificate).then( | ||||||
|               function (certs) { |               function (certs) { | ||||||
|                 // Workaround for https://github.com/nodejs/node/issues/22389
 |                 // Workaround for https://github.com/nodejs/node/issues/22389
 | ||||||
|                 gl._updateServernames(certs); |                 gl._updateServernames(certs); | ||||||
| @ -446,7 +437,7 @@ Greenlock.create = function (gl) { | |||||||
|           } |           } | ||||||
|           else { |           else { | ||||||
|             log(gl.debug, 'gl getting from disk or registering new'); |             log(gl.debug, 'gl getting from disk or registering new'); | ||||||
|               return gl.core.certificates.getAsync(results.options).then( |             return gl.core.certificates.getAsync(options).then( | ||||||
|               function (certs) { |               function (certs) { | ||||||
|                 // Workaround for https://github.com/nodejs/node/issues/22389
 |                 // Workaround for https://github.com/nodejs/node/issues/22389
 | ||||||
|                 gl._updateServernames(certs); |                 gl._updateServernames(certs); | ||||||
| @ -460,7 +451,39 @@ Greenlock.create = function (gl) { | |||||||
|               } |               } | ||||||
|             ); |             ); | ||||||
|           } |           } | ||||||
|           }); |         } | ||||||
|  |         function onRejected(_err) { | ||||||
|  |           if (false !== gl.logRejectedDomains) { | ||||||
|  |             console.error("[Error] approveDomains rejected tls sni '" + domain + "'"); | ||||||
|  |             console.error("[Error] (see https://git.coolaj86.com/coolaj86/greenlock.js/issues/11)"); | ||||||
|  |             if ('E_REJECT_SNI' !== _err.code) { | ||||||
|  |               console.error("[Error] This is the rejection message:"); | ||||||
|  |               console.error(_err.message); | ||||||
|  |             } | ||||||
|  |             console.error(""); | ||||||
|  |           } | ||||||
|  |           cb(_err); | ||||||
|  |         } | ||||||
|  |         function onMaybe(_err, results) { | ||||||
|  |           if (_err) { onRejected(_err); return; } | ||||||
|  |           onApproved(results); | ||||||
|  |         } | ||||||
|  | 
 | ||||||
|  |         if (certs) { | ||||||
|  |           opts.certificate = certs; | ||||||
|  |           //opts.subject = certs.subject;
 | ||||||
|  |           //opts.altnames = certs.altnames;
 | ||||||
|  |           opts.servernames = [certs.subject].concat(certs.altnames); | ||||||
|  |           opts.servername = opts.domain; | ||||||
|  |         } | ||||||
|  |         try { | ||||||
|  |           if (1 === gl.approveDomains.length) { | ||||||
|  |             return gl.approveDomains(opts).then(onApproved, onRejected); | ||||||
|  |           } else if (2 === gl.approveDomains.length) { | ||||||
|  |             gl.approveDomains(opts, onMaybe); | ||||||
|  |           } else { | ||||||
|  |             gl.approveDomains(opts, certs, onMaybe); | ||||||
|  |           } | ||||||
|         } catch(e) { |         } catch(e) { | ||||||
|           console.error("[ERROR] Something went wrong in approveDomains:"); |           console.error("[ERROR] Something went wrong in approveDomains:"); | ||||||
|           console.error(e); |           console.error(e); | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user