亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? postlogin.c

?? linux下的輕量級的ftp服務器
?? C
?? 第 1 頁 / 共 4 頁
字號:
   * account ASCII linefeed conversions. At least this is what wu-ftpd does in   * version 2.6.1. Proftpd-1.2.0pre fails to do this.   * I will not do it because it is a potential I/O DoS.   */  static struct vsf_sysutil_statbuf* s_p_statbuf;  int retval;  resolve_tilde(&p_sess->ftp_arg_str, p_sess);  if (!vsf_access_check_file(&p_sess->ftp_arg_str))  {    vsf_cmdio_write(p_sess, FTP_NOPERM, "Permission denied.");    return;  }  retval = str_stat(&p_sess->ftp_arg_str, &s_p_statbuf);  if (retval != 0 || !vsf_sysutil_statbuf_is_regfile(s_p_statbuf))  {    vsf_cmdio_write(p_sess, FTP_FILEFAIL, "Could not get file size.");  }  else  {    static struct mystr s_size_res_str;    str_alloc_filesize_t(&s_size_res_str,                         vsf_sysutil_statbuf_get_size(s_p_statbuf));    vsf_cmdio_write_str(p_sess, FTP_SIZEOK, &s_size_res_str);  }}static voidhandle_site(struct vsf_session* p_sess){  static struct mystr s_site_args_str;  /* What SITE sub-command is it? */  str_split_char(&p_sess->ftp_arg_str, &s_site_args_str, ' ');  str_upper(&p_sess->ftp_arg_str);  if (tunable_write_enable &&      tunable_chmod_enable &&      str_equal_text(&p_sess->ftp_arg_str, "CHMOD"))  {    handle_site_chmod(p_sess, &s_site_args_str);  }  else if (str_equal_text(&p_sess->ftp_arg_str, "UMASK"))  {    handle_site_umask(p_sess, &s_site_args_str);  }  else if (str_equal_text(&p_sess->ftp_arg_str, "HELP"))  {    vsf_cmdio_write(p_sess, FTP_SITEHELP, "CHMOD UMASK HELP");  }  else  {    vsf_cmdio_write(p_sess, FTP_BADCMD, "Unknown SITE command.");  }}static voidhandle_site_chmod(struct vsf_session* p_sess, struct mystr* p_arg_str){  static struct mystr s_chmod_file_str;  unsigned int perms;  int retval;  if (str_isempty(p_arg_str))  {    vsf_cmdio_write(p_sess, FTP_BADCMD, "SITE CHMOD needs 2 arguments.");    return;  }  str_split_char(p_arg_str, &s_chmod_file_str, ' ');  if (str_isempty(&s_chmod_file_str))  {    vsf_cmdio_write(p_sess, FTP_BADCMD, "SITE CHMOD needs 2 arguments.");    return;  }  resolve_tilde(&s_chmod_file_str, p_sess);  vsf_log_start_entry(p_sess, kVSFLogEntryChmod);  str_copy(&p_sess->log_str, &s_chmod_file_str);  prepend_path_to_filename(&p_sess->log_str);  str_append_char(&p_sess->log_str, ' ');  str_append_str(&p_sess->log_str, p_arg_str);  if (!vsf_access_check_file(&s_chmod_file_str))  {    vsf_cmdio_write(p_sess, FTP_NOPERM, "Permission denied.");    return;  }  /* Don't worry - our chmod() implementation only allows 0 - 0777 */  perms = str_octal_to_uint(p_arg_str);  retval = str_chmod(&s_chmod_file_str, perms);  if (vsf_sysutil_retval_is_error(retval))  {    vsf_cmdio_write(p_sess, FTP_FILEFAIL, "SITE CHMOD command failed.");  }  else  {    vsf_log_do_log(p_sess, 1);    vsf_cmdio_write(p_sess, FTP_CHMODOK, "SITE CHMOD command ok.");  }}static voidhandle_site_umask(struct vsf_session* p_sess, struct mystr* p_arg_str){  static struct mystr s_umask_resp_str;  if (str_isempty(p_arg_str))  {    /* Empty arg => report current umask */    str_alloc_text(&s_umask_resp_str, "Your current UMASK is ");    str_append_text(&s_umask_resp_str,                    vsf_sysutil_uint_to_octal(vsf_sysutil_get_umask()));  }  else  {    /* Set current umask */    unsigned int new_umask = str_octal_to_uint(p_arg_str);    vsf_sysutil_set_umask(new_umask);    str_alloc_text(&s_umask_resp_str, "UMASK set to ");    str_append_text(&s_umask_resp_str,                    vsf_sysutil_uint_to_octal(vsf_sysutil_get_umask()));  }  vsf_cmdio_write_str(p_sess, FTP_UMASKOK, &s_umask_resp_str);}static voidhandle_appe(struct vsf_session* p_sess){  handle_upload_common(p_sess, 1, 0);}static voidhandle_mdtm(struct vsf_session* p_sess){  static struct mystr s_filename_str;  static struct vsf_sysutil_statbuf* s_p_statbuf;  int do_write = 0;  long modtime = 0;  struct str_locate_result loc = str_locate_char(&p_sess->ftp_arg_str, ' ');  int retval = str_stat(&p_sess->ftp_arg_str, &s_p_statbuf);  if (tunable_mdtm_write && retval != 0 && loc.found &&      vsf_sysutil_isdigit(str_get_char_at(&p_sess->ftp_arg_str, 0)))  {    if (loc.index == 8 || loc.index == 14 ||        (loc.index > 15 && str_get_char_at(&p_sess->ftp_arg_str, 14) == '.'))    {      do_write = 1;    }  }  if (do_write != 0)  {    str_split_char(&p_sess->ftp_arg_str, &s_filename_str, ' ');    modtime = vsf_sysutil_parse_time(str_getbuf(&p_sess->ftp_arg_str));    str_copy(&p_sess->ftp_arg_str, &s_filename_str);  }  resolve_tilde(&p_sess->ftp_arg_str, p_sess);  if (!vsf_access_check_file(&p_sess->ftp_arg_str))  {    vsf_cmdio_write(p_sess, FTP_NOPERM, "Permission denied.");    return;  }  if (do_write && tunable_write_enable &&      (tunable_anon_other_write_enable || !p_sess->is_anonymous))  {    retval = str_stat(&p_sess->ftp_arg_str, &s_p_statbuf);    if (retval != 0 || !vsf_sysutil_statbuf_is_regfile(s_p_statbuf))    {      vsf_cmdio_write(p_sess, FTP_FILEFAIL,                      "Could not set file modification time.");    }    else    {      retval = vsf_sysutil_setmodtime(        str_getbuf(&p_sess->ftp_arg_str), modtime, tunable_use_localtime);      if (retval != 0)      {        vsf_cmdio_write(p_sess, FTP_FILEFAIL,                        "Could not set file modification time.");      }      else      {        vsf_cmdio_write(p_sess, FTP_MDTMOK,                        "File modification time set.");      }    }  }  else  {    if (retval != 0 || !vsf_sysutil_statbuf_is_regfile(s_p_statbuf))    {      vsf_cmdio_write(p_sess, FTP_FILEFAIL,                      "Could not get file modification time.");    }    else    {      static struct mystr s_mdtm_res_str;      str_alloc_text(&s_mdtm_res_str,                     vsf_sysutil_statbuf_get_numeric_date(                       s_p_statbuf, tunable_use_localtime));      vsf_cmdio_write_str(p_sess, FTP_MDTMOK, &s_mdtm_res_str);    }  }}static voidhandle_eprt(struct vsf_session* p_sess){  static struct mystr s_part1_str;  static struct mystr s_part2_str;  int proto;  int port;  const unsigned char* p_raw_addr;  int is_ipv6 = vsf_sysutil_sockaddr_is_ipv6(p_sess->p_local_addr);  port_cleanup(p_sess);  pasv_cleanup(p_sess);  str_copy(&s_part1_str, &p_sess->ftp_arg_str);  str_split_char(&s_part1_str, &s_part2_str, '|');  if (!str_isempty(&s_part1_str))  {    goto bad_eprt;  }  /* Split out the protocol and check it */  str_split_char(&s_part2_str, &s_part1_str, '|');  proto = str_atoi(&s_part2_str);  if (proto < 1 || proto > 2 || (!is_ipv6 && proto == 2))  {    vsf_cmdio_write(p_sess, FTP_BADCMD, "Bad EPRT protocol.");    return;  }  /* Split out address and parse it */  str_split_char(&s_part1_str, &s_part2_str, '|');  if (proto == 2)  {    p_raw_addr = vsf_sysutil_parse_ipv6(&s_part1_str);  }  else  {    p_raw_addr = vsf_sysutil_parse_ipv4(&s_part1_str);  }  if (!p_raw_addr)  {    goto bad_eprt;  }  /* Split out port and parse it */  str_split_char(&s_part2_str, &s_part1_str, '|');  if (!str_isempty(&s_part1_str) || str_isempty(&s_part2_str))  {    goto bad_eprt;  }  port = str_atoi(&s_part2_str);  if (port < 0 || port > 65535)  {    goto bad_eprt;  }  vsf_sysutil_sockaddr_clone(&p_sess->p_port_sockaddr, p_sess->p_local_addr);  if (proto == 2)  {    vsf_sysutil_sockaddr_set_ipv6addr(p_sess->p_port_sockaddr, p_raw_addr);  }  else  {    vsf_sysutil_sockaddr_set_ipv4addr(p_sess->p_port_sockaddr, p_raw_addr);  }  vsf_sysutil_sockaddr_set_port(p_sess->p_port_sockaddr, (unsigned short) port);  /* SECURITY:   * 1) Reject requests not connecting to the control socket IP   * 2) Reject connects to privileged ports   */  if (!tunable_port_promiscuous)  {    if (!vsf_sysutil_sockaddr_addr_equal(p_sess->p_remote_addr,                                         p_sess->p_port_sockaddr) ||        vsf_sysutil_is_port_reserved(port))    {      vsf_cmdio_write(p_sess, FTP_BADCMD, "Illegal EPRT command.");      port_cleanup(p_sess);      return;    }  }  vsf_cmdio_write(p_sess, FTP_EPRTOK,                  "EPRT command successful. Consider using EPSV.");  return;bad_eprt:  vsf_cmdio_write(p_sess, FTP_BADCMD, "Bad EPRT command.");}/* XXX - add AUTH etc. */static voidhandle_help(struct vsf_session* p_sess){  vsf_cmdio_write_hyphen(p_sess, FTP_HELP,                         "The following commands are recognized.");  vsf_cmdio_write_raw(p_sess," ABOR ACCT ALLO APPE CDUP CWD  DELE EPRT EPSV FEAT HELP LIST MDTM MKD\r\n");  vsf_cmdio_write_raw(p_sess," MODE NLST NOOP OPTS PASS PASV PORT PWD  QUIT REIN REST RETR RMD  RNFR\r\n");  vsf_cmdio_write_raw(p_sess," RNTO SITE SIZE SMNT STAT STOR STOU STRU SYST TYPE USER XCUP XCWD XMKD\r\n");  vsf_cmdio_write_raw(p_sess," XPWD XRMD\r\n");  vsf_cmdio_write(p_sess, FTP_HELP, "Help OK.");}static voidhandle_stou(struct vsf_session* p_sess){  handle_upload_common(p_sess, 0, 1);}static voidget_unique_filename(struct mystr* p_outstr, const struct mystr* p_base_str){  /* Use silly wu-ftpd algorithm for compatibility. It has races of course, if   * two sessions are using the same file prefix at the same time.   */  static struct vsf_sysutil_statbuf* s_p_statbuf;  unsigned int suffix = 1;  int retval;  while (1)  {    str_copy(p_outstr, p_base_str);    str_append_char(p_outstr, '.');    str_append_ulong(p_outstr, suffix);    retval = str_stat(p_outstr, &s_p_statbuf);    if (vsf_sysutil_retval_is_error(retval))    {      return;    }    ++suffix;  }}static voidhandle_stat(struct vsf_session* p_sess){  vsf_cmdio_write_hyphen(p_sess, FTP_STATOK, "FTP server status:");  vsf_cmdio_write_raw(p_sess, "     Connected to ");  vsf_cmdio_write_raw(p_sess, str_getbuf(&p_sess->remote_ip_str));  vsf_cmdio_write_raw(p_sess, "\r\n");  vsf_cmdio_write_raw(p_sess, "     Logged in as ");  vsf_cmdio_write_raw(p_sess, str_getbuf(&p_sess->user_str));  vsf_cmdio_write_raw(p_sess, "\r\n");  vsf_cmdio_write_raw(p_sess, "     TYPE: ");  if (p_sess->is_ascii)  {    vsf_cmdio_write_raw(p_sess, "ASCII\r\n");  }  else  {    vsf_cmdio_write_raw(p_sess, "BINARY\r\n");  }  if (p_sess->bw_rate_max == 0)  {    vsf_cmdio_write_raw(p_sess, "     No session bandwidth limit\r\n");  }  else  {    vsf_cmdio_write_raw(p_sess, "     Session bandwidth limit in byte/s is ");    vsf_cmdio_write_raw(p_sess, vsf_sysutil_ulong_to_str(p_sess->bw_rate_max));    vsf_cmdio_write_raw(p_sess, "\r\n");  }  if (tunable_idle_session_timeout == 0)  {    vsf_cmdio_write_raw(p_sess, "     No session timeout\r\n");  }  else  {    vsf_cmdio_write_raw(p_sess, "     Session timeout in seconds is ");    vsf_cmdio_write_raw(p_sess,      vsf_sysutil_ulong_to_str(tunable_idle_session_timeout));    vsf_cmdio_write_raw(p_sess, "\r\n");  }  if (p_sess->control_use_ssl)  {    vsf_cmdio_write_raw(p_sess, "     Control connection is encrypted\r\n");   }  else  {    vsf_cmdio_write_raw(p_sess, "     Control connection is plain text\r\n");   }  if (p_sess->data_use_ssl)  {    vsf_cmdio_write_raw(p_sess, "     Data connections will be encrypted\r\n");   }  else  {    vsf_cmdio_write_raw(p_sess, "     Data connections will be plain text\r\n");  }  if (p_sess->num_clients > 0)  {    vsf_cmdio_write_raw(p_sess, "     At session startup, client count was ");    vsf_cmdio_write_raw(p_sess, vsf_sysutil_ulong_to_str(p_sess->num_clients));    vsf_cmdio_write_raw(p_sess, "\r\n");  }  vsf_cmdio_write_raw(p_sess,    "     vsFTPd " VSF_VERSION " - secure, fast, stable\r\n");  vsf_cmdio_write(p_sess, FTP_STATOK, "End of status");}static voidhandle_stat_file(struct vsf_session* p_sess){  handle_dir_common(p_sess, 1, 1);}static intdata_transfer_checks_ok(struct vsf_session* p_sess){  if (!pasv_active(p_sess) && !port_active(p_sess))  {    vsf_cmdio_write(p_sess, FTP_BADSENDCONN, "Use PORT or PASV first.");    return 0;  }  if (tunable_ssl_enable && !p_sess->data_use_ssl &&      ((tunable_force_local_data_ssl && !p_sess->is_anonymous) ||       (tunable_force_anon_data_ssl && p_sess->is_anonymous)))  {    vsf_cmdio_write(      p_sess, FTP_NEEDENCRYPT, "Data connections must be encrypted.");    return 0;  }  return 1;}static voidresolve_tilde(struct mystr* p_str, struct vsf_session* p_sess){  unsigned int len = str_getlen(p_str);  if (len > 0 && str_get_char_at(p_str, 0) == '~')  {    static struct mystr s_rhs_str;    if (len == 1 || str_get_char_at(p_str, 1) == '/')    {      str_split_char(p_str, &s_rhs_str, '~');      str_copy(p_str, &p_sess->home_str);      str_append_str(p_str, &s_rhs_str);    }    else if (tunable_tilde_user_enable && len > 1)    {      static struct mystr s_user_str;      struct vsf_sysutil_user* p_user;      str_copy(&s_rhs_str, p_str);      str_split_char(&s_rhs_str, &s_user_str, '~');      str_split_char(&s_user_str, &s_rhs_str, '/');      p_user = str_getpwnam(&s_user_str);      if (p_user != 0)      {        str_alloc_text(p_str, vsf_sysutil_user_get_homedir(p_user));        if (!str_isempty(&s_rhs_str))        {          str_append_char(p_str, '/');          str_append_str(p_str, &s_rhs_str);        }      }    }  }}static void handle_logged_in_user(struct vsf_session* p_sess){  if (p_sess->is_anonymous)  {    vsf_cmdio_write(p_sess, FTP_LOGINERR, "Can't change from guest user.");  }  else if (str_equal(&p_sess->user_str, &p_sess->ftp_arg_str))  {    vsf_cmdio_write(p_sess, FTP_GIVEPWORD, "Any password will do.");  }  else  {    vsf_cmdio_write(p_sess, FTP_LOGINERR, "Can't change to another user.");  }}static void handle_logged_in_pass(struct vsf_session* p_sess){  vsf_cmdio_write(p_sess, FTP_LOGINOK, "Already logged in.");}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩视频在线你懂得| 国产一二精品视频| 中文字幕一区二区三区不卡在线| 欧美老人xxxx18| 欧美日韩在线播放三区四区| 日本韩国一区二区三区视频| 色先锋aa成人| 欧美无人高清视频在线观看| 欧美视频在线不卡| 欧美日本在线播放| 欧美一区二区三区系列电影| 日韩精品一区二区三区老鸭窝| 日韩欧美电影一区| 国产性做久久久久久| 国产精品毛片无遮挡高清| 中文字幕欧美区| 亚洲精品伦理在线| 亚洲综合另类小说| 麻豆精品精品国产自在97香蕉| 精品综合免费视频观看| 国产尤物一区二区在线| 成人av网站免费| 欧美在线观看禁18| 91.com视频| 欧美激情资源网| 一区二区三区小说| 日韩成人一级片| 国产精品1区2区| 在线观看欧美精品| 精品日韩欧美一区二区| 中文无字幕一区二区三区| 亚洲男同1069视频| 毛片av一区二区| www.视频一区| 欧美一区二区三区日韩视频| 国产欧美日韩在线视频| 亚洲一区二区欧美| 国产麻豆成人传媒免费观看| 91国偷自产一区二区三区观看| 久久久精品蜜桃| 亚洲精品高清在线观看| 久久av老司机精品网站导航| 2020国产精品自拍| 岛国一区二区三区| 蜜桃av噜噜一区| 国产不卡在线一区| 欧美视频一区在线观看| 久久精品亚洲精品国产欧美| 亚洲一区成人在线| 成人一级片在线观看| 欧美日本韩国一区| 椎名由奈av一区二区三区| 美女脱光内衣内裤视频久久影院| 91丨porny丨在线| 2021久久国产精品不只是精品| 午夜精品久久久久久久99樱桃| 成人黄色网址在线观看| 亚洲精品一线二线三线无人区| 亚洲午夜激情av| 91免费看片在线观看| 国产婷婷色一区二区三区四区| 蜜臀av一级做a爰片久久| 91小视频在线观看| 中文字幕欧美三区| 国产成人精品一区二| 精品影院一区二区久久久| 欧美自拍丝袜亚洲| 一区二区中文字幕在线| 国产精品 欧美精品| 精品少妇一区二区三区| 蜜臀久久99精品久久久久宅男| 欧美色网一区二区| 亚洲综合成人在线| 91色.com| 亚洲宅男天堂在线观看无病毒| 色综合久久中文字幕综合网| 最新中文字幕一区二区三区 | 国产精品视频一二三| 国产一区啦啦啦在线观看| 欧美成人伊人久久综合网| 紧缚捆绑精品一区二区| 欧美精品一区二区三区在线| 老司机一区二区| 精品国产亚洲在线| 国产精品羞羞答答xxdd| 国产精品久久久久毛片软件| 91亚洲精品久久久蜜桃| 亚洲三级在线免费观看| 国产免费久久精品| 国产高清久久久久| 国产精品少妇自拍| jizzjizzjizz欧美| 一区二区欧美国产| 在线不卡免费av| 久久99精品视频| 国产视频一区二区在线观看| www.成人网.com| 亚洲欧美激情视频在线观看一区二区三区| 99re在线视频这里只有精品| 亚洲午夜影视影院在线观看| 91精品国产色综合久久| 激情都市一区二区| 自拍偷拍亚洲欧美日韩| 欧美日韩亚洲综合在线| 激情另类小说区图片区视频区| 国产欧美精品一区aⅴ影院| 91久久精品一区二区二区| 日韩精品一卡二卡三卡四卡无卡| 久久精品国产秦先生| 亚洲视频一区二区在线| 97久久精品人人做人人爽| 亚洲精品成人精品456| 欧美精品久久一区| 国产成人在线视频播放| 亚洲成人动漫在线观看| 欧美精品一区二区三区视频| 色狠狠av一区二区三区| 裸体一区二区三区| 亚洲免费三区一区二区| 久久综合色之久久综合| 色老汉一区二区三区| 国产呦萝稀缺另类资源| 亚洲在线视频一区| 国产欧美一区二区精品性色超碰| 久久99国产精品久久99| 一区二区视频免费在线观看| 日韩久久精品一区| 欧美私模裸体表演在线观看| 成人性视频网站| 久久丁香综合五月国产三级网站| 一区二区三区四区激情| 中文一区在线播放| 久久亚洲捆绑美女| 91麻豆精品91久久久久久清纯| 色综合视频在线观看| 国产高清亚洲一区| 韩国毛片一区二区三区| 日韩制服丝袜av| 亚洲一区日韩精品中文字幕| 一色屋精品亚洲香蕉网站| www一区二区| 日韩欧美你懂的| 在线观看91精品国产麻豆| 欧美天堂一区二区三区| 国产精品中文字幕一区二区三区| 免费欧美在线视频| 青青草成人在线观看| 午夜精品影院在线观看| 亚洲国产精品精华液网站| 亚洲免费av网站| 亚洲激情在线播放| 亚洲欧美乱综合| 亚洲男人的天堂av| 亚洲欧美国产三级| 亚洲在线免费播放| 午夜久久久影院| 视频一区视频二区中文字幕| 蜜芽一区二区三区| 蜜臀久久久久久久| 麻豆高清免费国产一区| 日本成人在线电影网| 日本视频免费一区| 精品综合免费视频观看| 国产成人免费视频一区| 春色校园综合激情亚洲| 99综合电影在线视频| 色婷婷久久久亚洲一区二区三区 | 五月综合激情婷婷六月色窝| 国产精品久久久久婷婷二区次| 自拍偷拍国产亚洲| 亚洲国产精品麻豆| 麻豆成人久久精品二区三区小说| 久99久精品视频免费观看| 国产成人激情av| 91精彩视频在线观看| 91麻豆精品91久久久久同性| 久久先锋影音av鲁色资源网| 中文字幕国产一区| 亚洲精品乱码久久久久久久久| 亚洲最新视频在线观看| 久久国产综合精品| 99re视频这里只有精品| 欧美日韩一区中文字幕| 久久噜噜亚洲综合| 亚洲日本丝袜连裤袜办公室| 三级欧美在线一区| 国产一区二区视频在线播放| 成人涩涩免费视频| 色综合色综合色综合| 日韩免费高清av| 国产精品国产三级国产aⅴ无密码| 亚洲国产一区视频| 国产福利精品导航| 欧美午夜在线一二页| 国产女人aaa级久久久级 | 欧美日韩视频在线一区二区| 久久综合九色综合欧美98| 一区二区三区av电影| 国产成人免费网站| 91精品国产综合久久福利软件|