Skip to content
Snippets Groups Projects
  1. Nov 16, 2016
    • George Joseph's avatar
      file.c/__ast_file_read_dirs: Fix issues on filesystems without d_type · 3017f09f
      George Joseph authored
      One of the code paths in __ast_file_read_dirs will only get executed if
      the OS doesn't support dirent->d_type OR if the filesystem the
      particular file is on doesn't support it.  So, while standard Linux
      systems support the field, some filesystems like XFS do not.  In this
      case, we need to call stat() to determine whether the directory entry
      is a file or directory so we append the filename to the supplied
      directory path and call stat.  We forgot to truncate path back to just
      the directory afterwards though so we were passing a complete file name
      to the callback in the dir_name parameter instead of just the directory
      name.
      
      The logic has been re-written to only create a full_path if we need to
      call stat() or if we need to descend into another directory.
      
      Change-Id: I54e4228bd8355fad65200c6df3ec4c9c8a98dfba
      3017f09f
  2. Nov 04, 2016
    • Kevin Harwell's avatar
      stasis_recording/stored: remove calls to deprecated readdir_r function. · 70d5f90e
      Kevin Harwell authored
      The readdir_r function has been deprecated and should no longer be used. This
      patch removes the readdir_r dependency (replaced it with readdir) and also moves
      the directory search code to a more centralized spot (file.c)
      
      Also removed a strict dependency on the dirent structure's d_type field as it
      is not portable. The code now checks to see if the value is available. If so,
      it tries to use it, but defaults back to using the stats function if necessary.
      
      Lastly, for most implementations of readdir it *should* be thread-safe to make
      concurrent calls to it as long as different directory streams are specified.
      glibc falls into this category. However, since it is possible that there exist
      some implementations that are not safe, locking has been added for those other
      than glibc.
      
      ASTERISK-26412
      ASTERISK-26509 #close
      
      Change-Id: Id8f54689b1e2873e82a09d0d0d2faf41964e80ba
      70d5f90e
Loading