diff options
author | joe <joe@61a7d7f5-40b7-0310-9c16-bb0ea8cb1845> | 2004-10-02 19:38:59 +0000 |
---|---|---|
committer | joe <joe@61a7d7f5-40b7-0310-9c16-bb0ea8cb1845> | 2004-10-02 19:38:59 +0000 |
commit | 3283fd5d9bdc734fed8276dd4675833e02670cfe (patch) | |
tree | 51e55a698b4d698ff8835cd383661c964865897a /src/ne_session.c | |
parent | 08c4265e806d73805c51fa67b64aa33861740679 (diff) | |
download | neon-3283fd5d9bdc734fed8276dd4675833e02670cfe.tar.gz |
Merge trunk up to current neon CVS HEAD.
git-svn-id: http://svn.webdav.org/repos/projects/neon/trunk@256 61a7d7f5-40b7-0310-9c16-bb0ea8cb1845
Diffstat (limited to 'src/ne_session.c')
-rw-r--r-- | src/ne_session.c | 37 |
1 files changed, 22 insertions, 15 deletions
diff --git a/src/ne_session.c b/src/ne_session.c index 04b777e..49f1634 100644 --- a/src/ne_session.c +++ b/src/ne_session.c @@ -1,6 +1,6 @@ /* HTTP session handling - Copyright (C) 1999-2003, Joe Orton <joe@manyfish.co.uk> + Copyright (C) 1999-2004, Joe Orton <joe@manyfish.co.uk> Portions are: Copyright (C) 1999-2000 Tommi Komulainen <Tommi.Komulainen@iki.fi> @@ -33,6 +33,10 @@ #include <errno.h> #endif +#ifdef NE_HAVE_IDNA +#include <idna.h> +#endif + #include "ne_session.h" #include "ne_alloc.h" #include "ne_utils.h" @@ -84,7 +88,7 @@ void ne_session_destroy(ne_session *sess) ne_close_connection(sess); } -#ifdef NEON_SSL +#ifdef NE_HAVE_SSL if (sess->ssl_context) ne_ssl_context_destroy(sess->ssl_context); @@ -118,6 +122,14 @@ static void set_hostport(struct host_info *host, unsigned int defaultport) static void set_hostinfo(struct host_info *info, const char *hostname, unsigned int port) { +#ifdef NE_HAVE_IDNA + char *ihost; + +#define FLAGS IDNA_USE_STD3_ASCII_RULES + if (idna_to_ascii_8z(hostname, &ihost, FLAGS) == IDNA_SUCCESS) + info->hostname = ihost; + else /* fall back to use provided hostname string */ +#endif info->hostname = ne_strdup(hostname); info->port = port; } @@ -139,7 +151,7 @@ ne_session *ne_session_create(const char *scheme, set_hostinfo(&sess->server, hostname, port); set_hostport(&sess->server, sess->use_ssl?443:80); -#ifdef NEON_SSL +#ifdef NE_HAVE_SSL if (sess->use_ssl) { sess->ssl_context = ne_ssl_context_create(); } @@ -147,8 +159,6 @@ ne_session *ne_session_create(const char *scheme, sess->scheme = ne_strdup(scheme); - /* Default expect-100 to OFF. */ - sess->expect100_works = -1; return sess; } @@ -160,6 +170,12 @@ void ne_session_proxy(ne_session *sess, const char *hostname, set_hostinfo(&sess->proxy, hostname, port); } +void ne_set_addrlist(ne_session *sess, const ne_inet_addr **addrs, size_t n) +{ + sess->addrlist = addrs; + sess->numaddrs = n; +} + void ne_set_error(ne_session *sess, const char *format, ...) { va_list params; @@ -184,15 +200,6 @@ void ne_set_status(ne_session *sess, sess->notify_ud = userdata; } -void ne_set_expect100(ne_session *sess, int use_expect100) -{ - if (use_expect100) { - sess->expect100_works = 1; - } else { - sess->expect100_works = -1; - } -} - void ne_set_persist(ne_session *sess, int persist) { sess->no_persist = !persist; @@ -268,7 +275,7 @@ void ne_ssl_provide_clicert(ne_session *sess, void ne_ssl_trust_cert(ne_session *sess, const ne_ssl_certificate *cert) { -#ifdef NEON_SSL +#ifdef NE_HAVE_SSL ne_ssl_ctx_trustcert(sess->ssl_context, cert); #endif } |