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

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

?? prelogin.c

?? linux下的輕量級的ftp服務器
?? C
字號:
/* * Part of Very Secure FTPd * Licence: GPL v2 * Author: Chris Evans * prelogin.c * * Code to parse the FTP protocol prior to a successful login. */#include "prelogin.h"#include "ftpcmdio.h"#include "ftpcodes.h"#include "str.h"#include "vsftpver.h"#include "tunables.h"#include "oneprocess.h"#include "twoprocess.h"#include "sysdeputil.h"#include "sysutil.h"#include "session.h"#include "banner.h"#include "logging.h"#include "ssl.h"#include "features.h"#include "defs.h"#include "opts.h"/* Functions used */static void emit_greeting(struct vsf_session* p_sess);static void parse_username_password(struct vsf_session* p_sess);static void handle_user_command(struct vsf_session* p_sess);static void handle_pass_command(struct vsf_session* p_sess);voidinit_connection(struct vsf_session* p_sess){  if (tunable_setproctitle_enable)  {    vsf_sysutil_setproctitle("not logged in");  }  /* Before we talk to the remote, make sure an alarm is set up in case   * writing the initial greetings should block.   */  vsf_cmdio_set_alarm(p_sess);  emit_greeting(p_sess);  parse_username_password(p_sess);}static voidemit_greeting(struct vsf_session* p_sess){  struct mystr str_log_line = INIT_MYSTR;  /* Check for client limits (standalone mode only) */  if (tunable_max_clients > 0 &&      p_sess->num_clients > tunable_max_clients)  {    str_alloc_text(&str_log_line, "Connection refused: too many sessions.");    vsf_log_line(p_sess, kVSFLogEntryConnection, &str_log_line);    vsf_cmdio_write_exit(p_sess, FTP_TOO_MANY_USERS,      "There are too many connected users, please try later.");  }  if (tunable_max_per_ip > 0 &&      p_sess->num_this_ip > tunable_max_per_ip)  {    str_alloc_text(&str_log_line,                   "Connection refused: too many sessions for this address.");    vsf_log_line(p_sess, kVSFLogEntryConnection, &str_log_line);    vsf_cmdio_write_exit(p_sess, FTP_IP_LIMIT,      "There are too many connections from your internet address.");  }  if (!p_sess->tcp_wrapper_ok)  {    str_alloc_text(&str_log_line,                   "Connection refused: tcp_wrappers denial.");    vsf_log_line(p_sess, kVSFLogEntryConnection, &str_log_line);    vsf_cmdio_write_exit(p_sess, FTP_IP_DENY, "Service not available.");  }  vsf_log_line(p_sess, kVSFLogEntryConnection, &str_log_line);  if (!str_isempty(&p_sess->banner_str))  {    vsf_banner_write(p_sess, &p_sess->banner_str, FTP_GREET);    str_free(&p_sess->banner_str);    vsf_cmdio_write(p_sess, FTP_GREET, "");  }  else if (tunable_ftpd_banner == 0)  {    vsf_cmdio_write(p_sess, FTP_GREET, "(vsFTPd " VSF_VERSION                     ")");  }  else  {    vsf_cmdio_write(p_sess, FTP_GREET, tunable_ftpd_banner);  }}static voidparse_username_password(struct vsf_session* p_sess){  while (1)  {    vsf_cmdio_get_cmd_and_arg(p_sess, &p_sess->ftp_cmd_str,                              &p_sess->ftp_arg_str, 1);    if (str_equal_text(&p_sess->ftp_cmd_str, "USER"))    {      handle_user_command(p_sess);    }    else if (str_equal_text(&p_sess->ftp_cmd_str, "PASS"))    {      handle_pass_command(p_sess);    }    else if (str_equal_text(&p_sess->ftp_cmd_str, "QUIT"))    {      vsf_cmdio_write(p_sess, FTP_GOODBYE, "Goodbye.");      vsf_sysutil_exit(0);    }    else if (str_equal_text(&p_sess->ftp_cmd_str, "FEAT"))    {      handle_feat(p_sess);    }    else if (str_equal_text(&p_sess->ftp_cmd_str, "OPTS"))    {      handle_opts(p_sess);    }    else if (tunable_ssl_enable && str_equal_text(&p_sess->ftp_cmd_str, "AUTH"))    {      handle_auth(p_sess);    }    else if (tunable_ssl_enable && str_equal_text(&p_sess->ftp_cmd_str, "PBSZ"))    {      handle_pbsz(p_sess);    }    else if (tunable_ssl_enable && str_equal_text(&p_sess->ftp_cmd_str, "PROT"))    {      handle_prot(p_sess);    }    else    {      vsf_cmdio_write(p_sess, FTP_LOGINERR,                      "Please login with USER and PASS.");    }  }}static voidhandle_user_command(struct vsf_session* p_sess){  /* SECURITY: If we're in anonymous only-mode, immediately reject   * non-anonymous usernames in the hope we save passwords going plaintext   * over the network   */  int is_anon = 1;  str_copy(&p_sess->user_str, &p_sess->ftp_arg_str);  str_upper(&p_sess->ftp_arg_str);  if (!str_equal_text(&p_sess->ftp_arg_str, "FTP") &&      !str_equal_text(&p_sess->ftp_arg_str, "ANONYMOUS"))  {    is_anon = 0;  }  if (!tunable_local_enable && !is_anon)  {    vsf_cmdio_write(      p_sess, FTP_LOGINERR, "This FTP server is anonymous only.");    str_empty(&p_sess->user_str);    return;  }  if (is_anon && p_sess->control_use_ssl && !tunable_allow_anon_ssl &&      !tunable_force_anon_logins_ssl)  {    vsf_cmdio_write(      p_sess, FTP_LOGINERR, "Anonymous sessions may not use encryption.");    str_empty(&p_sess->user_str);    return;  }  if (tunable_ssl_enable && !is_anon && !p_sess->control_use_ssl &&      tunable_force_local_logins_ssl)  {    vsf_cmdio_write(      p_sess, FTP_LOGINERR, "Non-anonymous sessions must use encryption.");    str_empty(&p_sess->user_str);    return;  }  if (tunable_ssl_enable && is_anon && !p_sess->control_use_ssl &&      tunable_force_anon_logins_ssl)  {     vsf_cmdio_write(      p_sess, FTP_LOGINERR, "Anonymous sessions must use encryption.");    str_empty(&p_sess->user_str);    return;  }  if (tunable_userlist_enable)  {    int located = str_contains_line(&p_sess->userlist_str, &p_sess->user_str);    if ((located && tunable_userlist_deny) ||        (!located && !tunable_userlist_deny))    {      vsf_cmdio_write(p_sess, FTP_LOGINERR, "Permission denied.");      str_empty(&p_sess->user_str);      return;    }  }  if (is_anon && tunable_no_anon_password)  {    /* Fake a password */    str_alloc_text(&p_sess->ftp_arg_str, "<no password>");    handle_pass_command(p_sess);  }  else  {    vsf_cmdio_write(p_sess, FTP_GIVEPWORD, "Please specify the password.");  }}static voidhandle_pass_command(struct vsf_session* p_sess){  if (str_isempty(&p_sess->user_str))  {    vsf_cmdio_write(p_sess, FTP_NEEDUSER, "Login with USER first.");    return;  }  /* These login calls never return if successful */  if (tunable_one_process_model)  {    vsf_one_process_login(p_sess, &p_sess->ftp_arg_str);  }  else  {    vsf_two_process_login(p_sess, &p_sess->ftp_arg_str);  }  vsf_cmdio_write(p_sess, FTP_LOGINERR, "Login incorrect.");  if (++p_sess->login_fails >= tunable_max_login_fails)  {    vsf_sysutil_exit(0);  }  str_empty(&p_sess->user_str);  /* FALLTHRU if login fails */}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久精品国产色蜜蜜麻豆| 亚洲福利一区二区| 日韩欧美自拍偷拍| 欧美精品乱码久久久久久| 99久久国产综合色|国产精品| 国产一区二区伦理片| 精品一区二区三区av| 激情久久五月天| 久久成人久久鬼色| 国产一区二区三区四| 国产成人精品aa毛片| av不卡免费电影| 色综合色综合色综合色综合色综合 | 成人高清免费在线播放| 不卡视频免费播放| 91网址在线看| 精品视频免费看| 日韩欧美国产一二三区| 2024国产精品| 中文字幕不卡一区| 亚洲综合一区二区精品导航| 亚洲成人黄色影院| 麻豆精品一区二区av白丝在线| 国内精品写真在线观看| 成人性生交大合| 欧美性欧美巨大黑白大战| 这里只有精品免费| 久久久亚洲精华液精华液精华液 | 91日韩一区二区三区| 91同城在线观看| 91.com视频| 久久久精品黄色| 亚洲一级片在线观看| 久久99精品久久久久久国产越南 | 欧美一激情一区二区三区| 精品少妇一区二区三区免费观看 | 午夜亚洲国产au精品一区二区| 麻豆成人在线观看| 不卡一区二区在线| 欧美成人video| 亚洲女与黑人做爰| 精品中文字幕一区二区| 色综合久久综合网97色综合| 在线综合视频播放| 亚洲视频资源在线| 激情文学综合插| 欧美视频自拍偷拍| 亚洲国产精品v| 青青草成人在线观看| 北条麻妃国产九九精品视频| 欧美精品丝袜中出| 亚洲视频一区在线观看| 狠狠色狠狠色合久久伊人| 欧美熟乱第一页| 亚洲日本一区二区| 国产成人精品1024| 26uuu国产电影一区二区| 午夜电影一区二区三区| 色综合久久综合网97色综合| 精品成a人在线观看| 亚洲成av人片一区二区三区| 国产·精品毛片| 精品国产乱码久久久久久老虎 | 精品国产伦一区二区三区免费| 亚洲福利一区二区| 色综合色狠狠天天综合色| 中文字幕中文在线不卡住| 国产福利一区在线| 2023国产精品| 国产精品自拍在线| www国产亚洲精品久久麻豆| 久久精品二区亚洲w码| 欧美一区三区四区| 天堂影院一区二区| 欧美日韩午夜在线| 午夜av一区二区三区| 欧美日韩在线一区二区| 亚洲成人资源网| 欧美福利视频一区| 日韩不卡在线观看日韩不卡视频| 在线观看91精品国产入口| 亚洲一区二区欧美激情| 欧美专区日韩专区| 视频一区免费在线观看| 欧美一级在线免费| 麻豆一区二区三| 精品sm捆绑视频| 国产成人av在线影院| 亚洲欧美偷拍卡通变态| 在线精品视频一区二区| 日韩不卡一区二区| 精品国产青草久久久久福利| 福利一区福利二区| 亚洲欧美日韩成人高清在线一区| 色美美综合视频| 亚洲国产精品久久人人爱| 日韩欧美精品在线| 成人综合在线网站| 亚洲第一精品在线| 精品国产乱码久久久久久久久| 国产盗摄精品一区二区三区在线| 亚洲同性同志一二三专区| 欧美午夜电影一区| 狠狠色丁香久久婷婷综合丁香| 国产人成亚洲第一网站在线播放| 99精品视频在线免费观看| 亚洲愉拍自拍另类高清精品| 日韩亚洲欧美高清| 成人av电影在线观看| 午夜影院久久久| 久久精品一区蜜桃臀影院| 91福利在线导航| 狠狠色狠狠色综合系列| 夜夜亚洲天天久久| 亚洲精品在线观看视频| 91麻豆精东视频| 精品一区二区三区在线播放| 亚洲欧洲韩国日本视频| 在线播放日韩导航| 成人a级免费电影| 美女视频网站久久| 专区另类欧美日韩| 欧美成人激情免费网| 色婷婷综合久久久久中文| 国产综合色精品一区二区三区| 亚洲女同一区二区| 久久美女高清视频| 欧美视频日韩视频在线观看| 国产精品99久久久| 玖玖九九国产精品| 一区二区三区四区亚洲| 欧美韩国日本不卡| 日韩一区二区麻豆国产| 在线影院国内精品| 成人免费福利片| 国产伦精一区二区三区| 蜜桃av噜噜一区二区三区小说| 一区二区高清免费观看影视大全| 久久久久久麻豆| 91精品国产一区二区三区| 色婷婷精品大在线视频| 成人激情黄色小说| 国产91丝袜在线18| 国产91色综合久久免费分享| 久久99精品久久久久久国产越南| 日韩精品高清不卡| 亚洲国产一区视频| 亚洲国产综合色| 一卡二卡欧美日韩| 一区二区三区在线观看视频| 亚洲免费观看在线观看| 中文字幕中文在线不卡住| 中文一区一区三区高中清不卡| 国产无遮挡一区二区三区毛片日本| 在线观看91av| 日韩精品一区二区三区视频| 日韩免费看的电影| 精品入口麻豆88视频| 精品剧情在线观看| 久久精品夜夜夜夜久久| 国产午夜精品一区二区| 欧美国产禁国产网站cc| 国产精品女同互慰在线看| 国产精品久久免费看| 亚洲日本一区二区三区| 亚洲综合在线视频| 亚洲成在人线在线播放| 日本不卡在线视频| 日本不卡在线视频| 精品亚洲porn| 成人一道本在线| 91小视频在线观看| 欧美日韩一级片在线观看| 91精品国产综合久久香蕉的特点 | 欧美精品一区二区蜜臀亚洲| 久久色.com| 亚洲人成网站色在线观看| 午夜精彩视频在线观看不卡| 青青国产91久久久久久| 福利91精品一区二区三区| 一本久久a久久精品亚洲| 欧美日韩一本到| 久久久久久久久久看片| 亚洲免费毛片网站| 久99久精品视频免费观看| 成人国产免费视频| 在线不卡a资源高清| 国产三级精品视频| 亚洲一区二区精品3399| 国产美女久久久久| 91福利视频久久久久| 久久久久久久综合| 亚洲成a人片在线观看中文| 国产麻豆欧美日韩一区| 在线视频你懂得一区| 久久久亚洲高清| 亚洲国产成人av网| 成人av在线影院| 欧美videos大乳护士334| 亚洲图片欧美激情|