code: def modify_ip_prefixes(
          config,
          config_file,
          variable_name,
          dummy_ip_prefix,
          reconfigure_cmd,
          keep_changes,
          changes_counter,
          ip_version):
      log = logging.getLogger(PROGRAM_NAME)
      services = config.sections()
      services.remove('daemon')
      update_bird_conf = False
      try:
          ip_prefixes_in_bird = get_ip_prefixes_from_bird(config_file)
      except OSError as error:
          log.error("failed to open Bird configuration %s, this is a FATAL "
                    "error, thus exiting main program", error)
          sys.exit(1)
      _name = get_variable_name_from_bird(config_file)
      if _name is None:
          log.warning("failed to find variable name in %s, going to add it",
                      config_file)
          update_bird_conf = True
      elif _name != variable_name:
          log.warning("found incorrect variable name in %s, going to add the "
                      "correct one %s", _name, variable_name)
          update_bird_conf = True
      if dummy_ip_prefix not in ip_prefixes_in_bird:
          log.warning("dummy IP prefix %s is missing from bird configuration "
                      "%s, adding it", dummy_ip_prefix, config_file)
          ip_prefixes_in_bird.insert(0, dummy_ip_prefix)
          update_bird_conf = True
      ip_prefixes_with_check = get_ip_prefixes_from_config(
          config,
          services,
          ip_version)
      ip_prefixes_with_check.add(dummy_ip_prefix)
      ip_prefixes_without_check = set(ip_prefixes_in_bird).difference(
          ip_prefixes_with_check)
      if ip_prefixes_without_check:
          if config.getboolean('daemon', 'purge_ip_prefixes'):
              log.warning("removing IP prefix(es) %s from %s because they don't "
                          "have a service check configured",
                          ','.join(ip_prefixes_without_check),
                          config_file)
              ip_prefixes_in_bird[:] = (ip for ip in ip_prefixes_in_bird
                                        if ip not in ip_prefixes_without_check)
              update_bird_conf = True
          else:
              log.warning("found IP prefixes %s in %s without a service "
                          "check configured",
                          ','.join(ip_prefixes_without_check),
                          config_file)
      if update_bird_conf:
          if keep_changes:
              archive_bird_conf(config_file, changes_counter)
          tempname = write_temp_bird_conf(
              dummy_ip_prefix,
              config_file,
              variable_name,
              ip_prefixes_in_bird
          )
          try:
              os.rename(tempname, config_file)
          except OSError as error:
              msg = ("CRITICAL: failed to create Bird configuration {e}, "
                     "this is FATAL error, thus exiting main program"
                     .format(e=error))
              sys.exit("{m}".format(m=msg))
          else:
              log.info("Bird configuration for IPv%s is updated", ip_version)
              reconfigure_bird(reconfigure_cmd)