@@ -263,13 +263,14 @@ typedef struct {
263263 md_acme_order_t * order ;
264264 md_acme_t * acme ;
265265 const char * name ;
266+ const char * profile ;
266267 apr_array_header_t * domains ;
267268 md_result_t * result ;
268269} order_ctx_t ;
269270
270- #define ORDER_CTX_INIT (ctx , p , o , a , n , d , r ) \
271+ #define ORDER_CTX_INIT (ctx , p , o , a , n , d , pf , r ) \
271272 (ctx)->p = (p); (ctx)->order = (o); (ctx)->acme = (a); \
272- (ctx)->name = (n); (ctx)->domains = d; (ctx)->result = r
273+ (ctx)->name = (n); (ctx)->domains = d; (ctx)->profile = pf; (ctx)-> result = r
273274
274275static apr_status_t identifier_to_json (void * value , md_json_t * json , apr_pool_t * p , void * baton )
275276{
@@ -289,6 +290,8 @@ static apr_status_t on_init_order_register(md_acme_req_t *req, void *baton)
289290
290291 jpayload = md_json_create (req -> p );
291292 md_json_seta (ctx -> domains , identifier_to_json , NULL , jpayload , "identifiers" , NULL );
293+ if (ctx -> profile )
294+ md_json_sets (ctx -> profile , jpayload , "profile" , NULL );
292295
293296 return md_acme_req_body_init (req , jpayload );
294297}
@@ -321,13 +324,14 @@ static apr_status_t on_order_upd(md_acme_t *acme, apr_pool_t *p, const apr_table
321324}
322325
323326apr_status_t md_acme_order_register (md_acme_order_t * * porder , md_acme_t * acme , apr_pool_t * p ,
324- const char * name , apr_array_header_t * domains )
327+ const char * name , apr_array_header_t * domains ,
328+ const char * profile )
325329{
326330 order_ctx_t ctx ;
327331 apr_status_t rv ;
328332
329333 assert (MD_ACME_VERSION_MAJOR (acme -> version ) > 1 );
330- ORDER_CTX_INIT (& ctx , p , NULL , acme , name , domains , NULL );
334+ ORDER_CTX_INIT (& ctx , p , NULL , acme , name , domains , profile , NULL );
331335 rv = md_acme_POST (acme , acme -> api .v2 .new_order , on_init_order_register , on_order_upd , NULL , NULL , & ctx );
332336 * porder = (APR_SUCCESS == rv )? ctx .order : NULL ;
333337 return rv ;
@@ -340,7 +344,7 @@ apr_status_t md_acme_order_update(md_acme_order_t *order, md_acme_t *acme,
340344 apr_status_t rv ;
341345
342346 assert (MD_ACME_VERSION_MAJOR (acme -> version ) > 1 );
343- ORDER_CTX_INIT (& ctx , p , order , acme , NULL , NULL , result );
347+ ORDER_CTX_INIT (& ctx , p , order , acme , NULL , NULL , NULL , result );
344348 rv = md_acme_GET (acme , order -> url , NULL , on_order_upd , NULL , NULL , & ctx );
345349 if (APR_SUCCESS != rv && APR_SUCCESS != acme -> last -> status ) {
346350 md_result_dup (result , acme -> last );
@@ -380,7 +384,7 @@ apr_status_t md_acme_order_await_ready(md_acme_order_t *order, md_acme_t *acme,
380384 apr_status_t rv ;
381385
382386 assert (MD_ACME_VERSION_MAJOR (acme -> version ) > 1 );
383- ORDER_CTX_INIT (& ctx , p , order , acme , md -> name , NULL , result );
387+ ORDER_CTX_INIT (& ctx , p , order , acme , md -> name , NULL , NULL , result );
384388
385389 md_result_activity_setn (result , "Waiting for order to become ready" );
386390 rv = md_util_try (await_ready , & ctx , 0 , timeout , 0 , 0 , 1 );
@@ -423,7 +427,7 @@ apr_status_t md_acme_order_await_valid(md_acme_order_t *order, md_acme_t *acme,
423427 apr_status_t rv ;
424428
425429 assert (MD_ACME_VERSION_MAJOR (acme -> version ) > 1 );
426- ORDER_CTX_INIT (& ctx , p , order , acme , md -> name , NULL , result );
430+ ORDER_CTX_INIT (& ctx , p , order , acme , md -> name , NULL , NULL , result );
427431
428432 md_result_activity_setn (result , "Waiting for finalized order to become valid" );
429433 rv = md_util_try (await_valid , & ctx , 0 , timeout , 0 , 0 , 1 );
@@ -552,7 +556,7 @@ apr_status_t md_acme_order_monitor_authzs(md_acme_order_t *order, md_acme_t *acm
552556 order_ctx_t ctx ;
553557 apr_status_t rv ;
554558
555- ORDER_CTX_INIT (& ctx , p , order , acme , md -> name , NULL , result );
559+ ORDER_CTX_INIT (& ctx , p , order , acme , md -> name , NULL , NULL , result );
556560
557561 md_result_activity_printf (result , "Monitoring challenge status for %s" , md -> name );
558562 rv = md_util_try (check_challenges , & ctx , 0 , timeout , 0 , 0 , 1 );
0 commit comments