fix: store IP on rediscover
This commit is contained in:
		
							parent
							
								
									73033354b5
								
							
						
					
					
						commit
						435110e61d
					
				
					 3 changed files with 10 additions and 9 deletions
				
			
		| 
						 | 
					@ -1,6 +1,6 @@
 | 
				
			||||||
cmake_minimum_required (VERSION 3.7)
 | 
					cmake_minimum_required (VERSION 3.7)
 | 
				
			||||||
project(core
 | 
					project(core
 | 
				
			||||||
        VERSION 0.2.16
 | 
					        VERSION 0.2.17
 | 
				
			||||||
        LANGUAGES C)
 | 
					        LANGUAGES C)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
add_executable(core src/main.c)
 | 
					add_executable(core src/main.c)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -228,10 +228,11 @@ api_v1_controllers_discover_POST(struct mg_connection *nc, struct http_message *
 | 
				
			||||||
                {
 | 
					                {
 | 
				
			||||||
                    if(uuid_compare(known_controllers[i]->uid, discovered_id) == 0)
 | 
					                    if(uuid_compare(known_controllers[i]->uid, discovered_id) == 0)
 | 
				
			||||||
                    {
 | 
					                    {
 | 
				
			||||||
                        LOGGER_DEBUG("rediscovered a known controller\n");
 | 
					                        LOGGER_DEBUG("rediscovered a known controller at %s\n", inet_ntoa(addr.sin_addr));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                        known_controllers[i]->active = 1;
 | 
					                        known_controllers[i]->active = 1;
 | 
				
			||||||
                        strncpy(known_controllers[i]->name, discovered_name, discovered_name_len);
 | 
					                        strncpy(known_controllers[i]->name, discovered_name, discovered_name_len);
 | 
				
			||||||
 | 
					                        strcpy(discovered_controller->ip, inet_ntoa(addr.sin_addr));
 | 
				
			||||||
                        known_controllers[i]->name[discovered_name_len] = '\0';
 | 
					                        known_controllers[i]->name[discovered_name_len] = '\0';
 | 
				
			||||||
                        known_controllers[i]->port = discovered_command_port;
 | 
					                        known_controllers[i]->port = discovered_command_port;
 | 
				
			||||||
                        known_controllers[i]->relay_count = discovered_relay_count;
 | 
					                        known_controllers[i]->relay_count = discovered_relay_count;
 | 
				
			||||||
| 
						 | 
					@ -251,7 +252,7 @@ api_v1_controllers_discover_POST(struct mg_connection *nc, struct http_message *
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            if(!found_discovered_in_list)
 | 
					            if(!found_discovered_in_list)
 | 
				
			||||||
            {
 | 
					            {
 | 
				
			||||||
                LOGGER_DEBUG("discovered a new controller\n");
 | 
					                LOGGER_DEBUG("discovered a new controller at %s\n", inet_ntoa(addr.sin_addr));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                controller_t *discovered_controller = malloc(sizeof(controller_t));
 | 
					                controller_t *discovered_controller = malloc(sizeof(controller_t));
 | 
				
			||||||
                discovered_controller->id = 0;
 | 
					                discovered_controller->id = 0;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										12
									
								
								src/status.c
									
										
									
									
									
								
							
							
						
						
									
										12
									
								
								src/status.c
									
										
									
									
									
								
							| 
						 | 
					@ -59,7 +59,7 @@ status_init()
 | 
				
			||||||
void
 | 
					void
 | 
				
			||||||
status_reload_entry(int relay_id)
 | 
					status_reload_entry(int relay_id)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    LOGGER_DEBUG("reloading relay status\n");
 | 
					    LOGGER_DEBUG("reloading relay %d\n", relay_id);
 | 
				
			||||||
    relay_t **relays = global_relay_status_list;
 | 
					    relay_t **relays = global_relay_status_list;
 | 
				
			||||||
    for(int i = 0; relays[i] != NULL; ++i)
 | 
					    for(int i = 0; relays[i] != NULL; ++i)
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
| 
						 | 
					@ -70,13 +70,13 @@ status_reload_entry(int relay_id)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        int is_on_backup = relays[i]->is_on;
 | 
					        int is_on_backup = relays[i]->is_on;
 | 
				
			||||||
        relay_t *updated_relay = relay_get_by_id(relay_id);
 | 
					        relay_t *updated_relay = relay_get_by_id(relay_id);
 | 
				
			||||||
 | 
					        updated_relay->is_on = is_on_backup;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        relay_free(relays[i]);
 | 
					        relay_free(relays[i]);
 | 
				
			||||||
        relays[i] = updated_relay;
 | 
					        relays[i] = updated_relay;
 | 
				
			||||||
        relays[i]->is_on = is_on_backup;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        invalidate_json_str_cache();
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
        cache_invalidate_relay(relay_id);
 | 
					        cache_invalidate_relay(relay_id);
 | 
				
			||||||
 | 
					        invalidate_json_str_cache();
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -91,11 +91,11 @@ status_update_entry(int relay_id, int is_on)
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
            continue;
 | 
					            continue;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        relays[i]->is_on = is_on;
 | 
					        relays[i]->is_on = is_on;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        invalidate_json_str_cache();
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        cache_invalidate_relay(relay_id);
 | 
					        cache_invalidate_relay(relay_id);
 | 
				
			||||||
 | 
					        invalidate_json_str_cache();
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue