def free(self, local_path):
    '''
      Stop synchronization of local_path
    '''
    config = self.get_config()
    folder = st_util.find_folder_with_path(local_path, config)
    self.delete_folder(local_path, config)
    pruned = st_util.prune_devices(folder, config)
    self.set_config(config)
    if pruned:
      self.restart()
    dir_config = self.adapter.get_dir_config(local_path)
    if not dir_config:
      raise custom_errors.FileNotInConfig(local_path)
    kodrive_config = self.adapter.get_config()
    for key in kodrive_config['directories']: 
      d = kodrive_config['directories'][key]
      if d['local_path'].rstrip('/') == local_path.rstrip('/'):
        del kodrive_config['directories'][key]
        break
    self.adapter.set_config(kodrive_config)
    if dir_config['is_shared'] and dir_config['server']:
      r_api_key = dir_config['api_key']
      r_device_id = dir_config['device_id']
      if dir_config['host']:
        host = dir_config['host']
      else:
        host = self.devid_to_ip(r_device_id, False)
      try:
        remote = SyncthingProxy(
          r_device_id, host, r_api_key,
          port=dir_config['port'] if 'port' in dir_config else None
        )
      except Exception as e:
        return True
      r_config = remote.get_config()
      r_folder = st_util.find_folder_with_path(
        dir_config['remote_path'], r_config
      )
      r_config = remote.get_config()
      self_devid = self.get_device_id()
      del_device = remote.delete_device_from_folder(
        dir_config['remote_path'], self_devid, r_config
      )
      pruned = st_util.prune_devices(r_folder, r_config)
      remote.set_config(r_config)
      if pruned:
        remote.restart()
    return True