options.h
上传用户:tjfeida
上传日期:2013-03-10
资源大小:1917k
文件大小:7k
源码类别:

Ftp客户端

开发平台:

Visual C++

  1. /*****************************************************************************/
  2. /*  options.h - the global variables for the program                         */
  3. /*  Copyright (C) 1998-2002 Brian Masney <masneyb@gftp.org>                  */
  4. /*                                                                           */
  5. /*  This program is free software; you can redistribute it and/or modify     */
  6. /*  it under the terms of the GNU General Public License as published by     */
  7. /*  the Free Software Foundation; either version 2 of the License, or        */
  8. /*  (at your option) any later version.                                      */
  9. /*                                                                           */
  10. /*  This program is distributed in the hope that it will be useful,          */
  11. /*  but WITHOUT ANY WARRANTY; without even the implied warranty of           */
  12. /*  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the            */
  13. /*  GNU General Public License for more details.                             */
  14. /*                                                                           */
  15. /*  You should have received a copy of the GNU General Public License        */
  16. /*  along with this program; if not, write to the Free Software              */
  17. /*  Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111 USA      */
  18. /*****************************************************************************/
  19. /* $Id: options.h,v 1.5 2002/12/04 02:35:44 masneyb Exp $ */
  20. #include "gftp.h"
  21. supported_gftp_protocols gftp_protocols[] =
  22. {
  23.   {"FTP",  rfc959_init,  "ftp", 1},
  24.   {"HTTP",  rfc2068_init,  "http", 1},
  25.   {"Local",  local_init,  "file", 1},
  26.   {"SSH2", sshv2_init, "ssh2",  1},
  27.   {"Bookmark",  bookmark_init,  "bookmark",  0},
  28.   {"SSH",  ssh_init,  "ssh",  1},
  29.   {NULL,  NULL,  NULL, 0}
  30. };
  31. gftp_proxy_type proxy_type[] = {
  32.   {N_("none"), ""},
  33.   {N_("SITE command"), "USER %punPASS %ppnSITE %hhnUSER %hunPASS %hpn"},
  34.   {N_("user@host"), "USER %punPASS %ppnUSER %hu@%hhnPASS %hpn"},
  35.   {N_("user@host:port"), "USER %hu@%hh:%honPASS %hpn"},
  36.   {N_("AUTHENTICATE"), "USER %hu@%hhnPASS %hpnSITE AUTHENTICATE %punSITE RESPONSE %ppn"},
  37.   {N_("user@host port"), "USER %hu@%hh %honPASS %hpn"},
  38.   {N_("user@host NOAUTH"), "USER %hu@%hhnPASS %hpn"},
  39.   {N_("HTTP Proxy"), "http"},
  40.   {N_("Custom"), ""},
  41.   {NULL, NULL}
  42. };
  43. /* Most of these should be self explanatory */
  44. char version[] = "gFTP " VERSION,
  45.      *emailaddr = NULL, /* Email address for logging in
  46.                                            anonymously */
  47.      *default_protocol = NULL,
  48.      *edit_program = NULL,
  49.      *view_program = NULL,
  50.      *firewall_host = NULL,
  51.      *firewall_username = NULL,
  52.      *firewall_password = NULL,
  53.      *firewall_account = NULL,
  54.      *proxy_config = NULL,  /* The way to log into the proxy */
  55.      *http_proxy_host = NULL,
  56.      *http_proxy_username = NULL, 
  57.      *http_proxy_password = NULL,
  58.      *startup_directory = NULL,
  59.      *ssh_prog_name = NULL,
  60.      *ssh_extra_params = NULL,
  61.      **ssh_extra_params_list = NULL,
  62.      *ssh1_sftp_path = NULL,
  63.      *ssh2_sftp_path = NULL;
  64. int num_ssh_extra_params;
  65. FILE * logfd = NULL; /* Our fd to write logs to */
  66. double maxkbs = 0.00; /* Bandwidth throttling */
  67. GList * proxy_hosts = NULL,  /* Our local hosts that won't need to 
  68.                                            use the proxy */
  69.       * registered_exts = NULL, /* Registered file extensions */
  70.       * viewedit_processes = NULL,      /* View/Edit processes that are 
  71.                                            running */
  72.       * file_transfers = NULL, /* File transfers in progress */
  73.       * file_transfer_logs = NULL; /* Logs generated by other threads */
  74. gftp_bookmarks * bookmarks = NULL;
  75. GHashTable * bookmarks_htable = NULL,
  76.            * config_htable = NULL;
  77. int do_one_transfer_at_a_time = 1,  /* Only allow one transfer at a time. 
  78.                                            The other transfers will be queued */
  79.     start_file_transfers = 1,  /* Shall we start the file transfers? */
  80.     transfer_in_progress = 0,  /* Any transfers transferring files? */
  81.     passive_transfer = 1,  /* Are we sending PASV or PORT to the 
  82.    server */
  83.     sort_dirs_first = 1,  /* Put the dirs first when sorting */
  84.     show_hidden_files = 1,  /* Show hidden files */
  85.     refresh_files = 0,  /* Refresh the listbox after each file 
  86.                                            is done */
  87.     listbox_local_width = 302,  /* Width of the local listbox */
  88.     listbox_remote_width = 302,  /* Width of the remote listbox */
  89.     listbox_file_height = 265,  /* Height of the local/remote listbox */
  90.     transfer_height = 80,  /* Height of the transfer window */
  91.     log_height = 105,  /* Height of the logging window */
  92.     retries = 3,  /* Number of auto-retries */
  93.     sleep_time = 30,  /* Number of seconds to wait between 
  94.    retries */
  95.     network_timeout = 120,  /* Timeout on the read()s and write()s */
  96.     use_http11 = 1,  /* Use HTTP/1.1 or HTTP/1.0 */
  97.     listbox_dblclick_action = 0,  /* What happens when you double click in the
  98.    file listboxes. 0 = View, 1 = Edit,
  99.    2 = Download */
  100.     file_trans_column = 100,  /* The width of the File column in the 
  101.    listbox */
  102.     local_columns[6] = {0, 85, 75, 76, 120, 75}, /* The width of the local
  103.      file, size, user, group, date and attribs column */
  104.     remote_columns[6] = {0, 85, 75, 76, 120, 75}, /* The width of the remote
  105.      file, size, user, group, date and attribs column */
  106.     resolve_symlinks = 1,  /* Send LIST -L or LIST to the remote ftp 
  107.    server */
  108.     firewall_port = 21,  /* What port to connect to for ftp? */
  109.     http_proxy_port = 80, /* What port to connect to for http? */
  110.     overwrite_by_default = 0, /* Resume file transfers or set to
  111.                                            overwrite by default */
  112.     append_file_transfers = 1, /* Append new file transfers onto 
  113.                                            existing ones for the same 
  114.                                            hostname */
  115.     enable_old_ssh = 0, /* Enable older SSH protocol */
  116.     ssh_need_userpass = 0, /* Require a user/pass for SSH
  117.                                            connections */
  118.     ssh_use_askpass = 0, /* Use the ssh-askpass tool to
  119.    grab the password. I personally
  120.    don't like this, but some people
  121.    do */
  122.     sshv2_use_sftp_subsys = 0, /* Call ssh -s sftp. If you set this
  123.    it'll automatically use the askpass
  124.    utility above */
  125.     local_sortcol = 1,
  126.     local_sortasds = 1,
  127.     remote_sortcol = 1,
  128.     remote_sortasds = 1;
  129. guint max_log_window_size = 5000; /* Max size of the log window for the 
  130.                                            GTK port */
  131. GList * host_history = NULL,
  132.       * port_history = NULL,
  133.       * user_history = NULL,
  134.       * localhistory = NULL,
  135.       * remotehistory = NULL;
  136.       
  137. unsigned int host_len = 0, 
  138.              port_len = 0, 
  139.              user_len = 0,
  140.              localhistlen = 0,
  141.              remotehistlen = 0;
  142. volatile sig_atomic_t viewedit_process_done = 0;
  143. gftp_color send_color, recv_color, error_color, misc_color;