access.c
上传用户:ig0539
上传日期:2022-05-21
资源大小:181k
文件大小:1k
源码类别:

Ftp客户端

开发平台:

C/C++

  1. /*
  2.  * Part of Very Secure FTPd
  3.  * Licence: GPL v2
  4.  * Author: Chris Evans
  5.  * access.c
  6.  *
  7.  * Routines to do very very simple access control based on filenames.
  8.  */
  9. #include "access.h"
  10. #include "ls.h"
  11. #include "tunables.h"
  12. #include "str.h"
  13. int
  14. vsf_access_check_file(const struct mystr* p_filename_str)
  15. {
  16.   static struct mystr s_access_str;
  17.   if (!tunable_deny_file)
  18.   {
  19.     return 1;
  20.   }
  21.   if (str_isempty(&s_access_str))
  22.   {
  23.     str_alloc_text(&s_access_str, tunable_deny_file);
  24.   }
  25.   if (vsf_filename_passes_filter(p_filename_str, &s_access_str))
  26.   {
  27.     return 0;
  28.   }
  29.   else
  30.   {
  31.     struct str_locate_result loc_res =
  32.       str_locate_str(p_filename_str, &s_access_str);
  33.     if (loc_res.found)
  34.     {
  35.       return 0;
  36.     }
  37.   }
  38.   return 1;
  39. }
  40. int
  41. vsf_access_check_file_visible(const struct mystr* p_filename_str)
  42. {
  43.   static struct mystr s_access_str;
  44.   if (!tunable_hide_file)
  45.   {
  46.     return 1;
  47.   }
  48.   if (str_isempty(&s_access_str))
  49.   {
  50.     str_alloc_text(&s_access_str, tunable_hide_file);
  51.   }
  52.   if (vsf_filename_passes_filter(p_filename_str, &s_access_str))
  53.   {
  54.     return 0;
  55.   }
  56.   else
  57.   {
  58.     struct str_locate_result loc_res =
  59.       str_locate_str(p_filename_str, &s_access_str);
  60.     if (loc_res.found)
  61.     {
  62.       return 0;
  63.     }
  64.   }
  65.   return 1;
  66. }