mirror of https://git.48k.eu/ogserver
				
				
				
			#997 Use stale check flag in schedule/update
Commitmastere68fefeintroduced 'check_stale' flag to better distinguish real scheduled actions that do not execute if they are stale from immediate actions that we want them to be logged in the action queue (by creating a decoy schedule for the exact moment they are processed, meaning that we ignore if the are stale). Add this feature into schedule update too, in order to avoid executing stale commands that were not meant to, ie. real scheduled commands. Followse68fefe("Set stale check flag when processing schedule/create")
							parent
							
								
									e7e80cdde6
								
							
						
					
					
						commit
						8b7b5f33a1
					
				
							
								
								
									
										20
									
								
								src/rest.c
								
								
								
								
							
							
						
						
									
										20
									
								
								src/rest.c
								
								
								
								
							|  | @ -3593,6 +3593,7 @@ static int og_cmd_schedule_create(json_t *element, struct og_msg_params *params) | |||
| static int og_cmd_schedule_update(json_t *element, struct og_msg_params *params) | ||||
| { | ||||
| 	struct og_dbi *dbi; | ||||
| 	bool when = false; | ||||
| 	const char *key; | ||||
| 	json_t *value; | ||||
| 	int err = 0; | ||||
|  | @ -3610,13 +3611,30 @@ static int og_cmd_schedule_update(json_t *element, struct og_msg_params *params) | |||
| 		} else if (!strcmp(key, "name")) { | ||||
| 			err = og_json_parse_string(value, ¶ms->name); | ||||
| 			params->flags |= OG_REST_PARAM_NAME; | ||||
| 		} else if (!strcmp(key, "when")) | ||||
| 		} else if (!strcmp(key, "when")) { | ||||
| 			err = og_json_parse_time_params(value, params); | ||||
| 			when = true; | ||||
| 		} | ||||
| 
 | ||||
| 		if (err < 0) | ||||
| 			return err; | ||||
| 	} | ||||
| 
 | ||||
| 	if (!when) { | ||||
| 		params->time.check_stale = false; | ||||
| 		og_schedule_time_now(¶ms->time); | ||||
| 		params->flags |= OG_REST_PARAM_TIME_YEARS | | ||||
| 				 OG_REST_PARAM_TIME_MONTHS | | ||||
| 				 OG_REST_PARAM_TIME_WEEKS | | ||||
| 				 OG_REST_PARAM_TIME_WEEK_DAYS | | ||||
| 				 OG_REST_PARAM_TIME_DAYS | | ||||
| 				 OG_REST_PARAM_TIME_HOURS | | ||||
| 				 OG_REST_PARAM_TIME_AM_PM | | ||||
| 				 OG_REST_PARAM_TIME_MINUTES; | ||||
| 	} else { | ||||
| 		params->time.check_stale = true; | ||||
| 	} | ||||
| 
 | ||||
| 	if (!og_msg_params_validate(params, OG_REST_PARAM_ID | | ||||
| 					    OG_REST_PARAM_TASK | | ||||
| 					    OG_REST_PARAM_NAME | | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue