Ignore:
Timestamp:
Jan 9, 2017, 11:09:38 AM (2 years ago)
Author:
jrpelegrina
Message:

Update new version: 3.15.02

File:
1 edited

Legend:

Unmodified
Added
Removed
  • filezilla/trunk/fuentes/src/putty/proxy.c

    r130 r3185  
    363363}
    364364
     365static char *dns_log_msg(const char *host, int addressfamily,
     366                         const char *reason)
     367{
     368    return dupprintf("Looking up host \"%s\"%s for %s", host,
     369                     (addressfamily == ADDRTYPE_IPV4 ? " (IPv4)" :
     370                      addressfamily == ADDRTYPE_IPV6 ? " (IPv6)" :
     371                      ""), reason);
     372}
     373
    365374SockAddr name_lookup(const char *host, int port, char **canonicalname,
    366                      Conf *conf, int addressfamily)
    367 {
     375                     Conf *conf, int addressfamily, void *frontend,
     376                     const char *reason)
     377{
     378    char *logmsg;
    368379    if (conf_get_int(conf, CONF_proxy_type) != PROXY_NONE &&
    369380        do_proxy_dns(conf) &&
    370381        proxy_for_destination(NULL, host, port, conf)) {
     382
     383        if (frontend) {
     384            logmsg = dupprintf("Leaving host lookup to proxy of \"%s\""
     385                               " (for %s)", host, reason);
     386            logevent(frontend, logmsg);
     387            sfree(logmsg);
     388        }
     389
    371390        *canonicalname = dupstr(host);
    372391        return sk_nonamelookup(host);
    373     }
    374 
    375     return sk_namelookup(host, canonicalname, addressfamily);
     392    } else {
     393        if (frontend) {
     394            logmsg = dns_log_msg(host, addressfamily, reason);
     395            logevent(frontend, logmsg);
     396            sfree(logmsg);
     397        }
     398
     399        return sk_namelookup(host, canonicalname, addressfamily);
     400    }
    376401}
    377402
     
    408433        SockAddr proxy_addr;
    409434        char *proxy_canonical_name;
     435        const char *proxy_type;
    410436        Socket sret;
    411437        int type;
     
    440466        if (type == PROXY_HTTP) {
    441467            ret->negotiate = proxy_http_negotiate;
     468            proxy_type = "HTTP";
    442469        } else if (type == PROXY_SOCKS4) {
    443470            ret->negotiate = proxy_socks4_negotiate;
     471            proxy_type = "SOCKS 4";
    444472        } else if (type == PROXY_SOCKS5) {
    445473            ret->negotiate = proxy_socks5_negotiate;
     474            proxy_type = "SOCKS 5";
    446475        } else if (type == PROXY_TELNET) {
    447476            ret->negotiate = proxy_telnet_negotiate;
     477            proxy_type = "Telnet";
    448478        } else {
    449479            ret->error = "Proxy error: Unknown proxy method";
    450480            return (Socket) ret;
    451481        }
     482
     483        {
     484            char *logmsg = dupprintf("Will use %s proxy at %s:%d to connect"
     485                                      " to %s:%d", proxy_type,
     486                                      conf_get_str(conf, CONF_proxy_host),
     487                                      conf_get_int(conf, CONF_proxy_port),
     488                                      hostname, port);
     489            plug_log(plug, 2, NULL, 0, logmsg, 0);
     490            sfree(logmsg);
     491        }
    452492
    453493        /* create the proxy plug to map calls from the actual
     
    456496        pplug->fn = &plug_fn_table;
    457497        pplug->proxy_socket = ret;
     498
     499        {
     500            char *logmsg = dns_log_msg(conf_get_str(conf, CONF_proxy_host),
     501                                       conf_get_int(conf, CONF_addressfamily),
     502                                       "proxy");
     503            plug_log(plug, 2, NULL, 0, logmsg, 0);
     504            sfree(logmsg);
     505        }
    458506
    459507        /* look-up proxy */
     
    468516        }
    469517        sfree(proxy_canonical_name);
     518
     519        {
     520            char addrbuf[256], *logmsg;
     521            sk_getaddr(addr, addrbuf, lenof(addrbuf));
     522            logmsg = dupprintf("Connecting to %s proxy at %s port %d",
     523                               proxy_type, addrbuf,
     524                               conf_get_int(conf, CONF_proxy_port));
     525            plug_log(plug, 2, NULL, 0, logmsg, 0);
     526            sfree(logmsg);
     527        }
    470528
    471529        /* create the actual socket we will be using,
     
    14551513                                              p->conf);
    14561514
     1515        {
     1516            /*
     1517             * Re-escape control chars in the command, for logging.
     1518             */
     1519            char *reescaped = snewn(4*strlen(formatted_cmd) + 1, char);
     1520            const char *in;
     1521            char *out;
     1522            char *logmsg;
     1523
     1524            for (in = formatted_cmd, out = reescaped; *in; in++) {
     1525                if (*in == '\n') {
     1526                    *out++ = '\\'; *out++ = 'n';
     1527                } else if (*in == '\r') {
     1528                    *out++ = '\\'; *out++ = 'r';
     1529                } else if (*in == '\t') {
     1530                    *out++ = '\\'; *out++ = 't';
     1531                } else if (*in == '\\') {
     1532                    *out++ = '\\'; *out++ = '\\';
     1533                } else if ((unsigned)(((unsigned char)*in) - 0x20) <
     1534                           (0x7F-0x20)) {
     1535                    *out++ = *in;
     1536                } else {
     1537                    out += sprintf(out, "\\x%02X", (unsigned)*in & 0xFF);
     1538                }
     1539            }
     1540            *out = '\0';
     1541
     1542            logmsg = dupprintf("Sending Telnet proxy command: %s", reescaped);
     1543            plug_log(p->plug, 2, NULL, 0, logmsg, 0);
     1544            sfree(logmsg);
     1545            sfree(reescaped);
     1546        }
     1547
    14571548        sk_write(p->sub_socket, formatted_cmd, strlen(formatted_cmd));
    14581549        sfree(formatted_cmd);
Note: See TracChangeset for help on using the changeset viewer.