From 5a71d9c5b14aa749b532666b71b25ce2afcdc5bb Mon Sep 17 00:00:00 2001 From: Sven Moritz Hallberg Date: Sat, 9 Feb 2008 18:58:13 +0100 Subject: - add support for setting ops/voice according to OTR msgstate - add 'otr trust' user command - support non-otr messages during keygen - run otr messages through strip_html - interpret and tags in html messages - record max message size in prpl - add 'encrypted' flag to user_t - cosmetics --- lib/misc.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) (limited to 'lib') diff --git a/lib/misc.c b/lib/misc.c index 18d98f9e..a8df2354 100644 --- a/lib/misc.c +++ b/lib/misc.c @@ -142,6 +142,7 @@ void strip_html( char *in ) char *out = g_malloc( strlen( in ) + 1 ); char *s = out, *cs; int i, matched; + int taglen; memset( out, 0, strlen( in ) + 1 ); @@ -158,9 +159,18 @@ void strip_html( char *in ) while( *in && *in != '>' ) in ++; + taglen = in-cs-1; /* not <0 because the above loop runs at least once */ if( *in ) { - if( g_strncasecmp( cs+1, "br", 2) == 0 ) + if( g_strncasecmp( cs+1, "b", taglen) == 0 ) + *(s++) = '\x02'; + else if( g_strncasecmp( cs+1, "/b", taglen) == 0 ) + *(s++) = '\x02'; + else if( g_strncasecmp( cs+1, "i", taglen) == 0 ) + *(s++) = '\x1f'; + else if( g_strncasecmp( cs+1, "/i", taglen) == 0 ) + *(s++) = '\x1f'; + else if( g_strncasecmp( cs+1, "br", 2) == 0 ) *(s++) = '\n'; in ++; } -- cgit v1.2.3 From a161d33779bb56fabe6466f15a8ae98881f55520 Mon Sep 17 00:00:00 2001 From: Sven Moritz Hallberg Date: Thu, 14 Feb 2008 19:43:47 +0100 Subject: interpret ' --- lib/misc.c | 1 + 1 file changed, 1 insertion(+) (limited to 'lib') diff --git a/lib/misc.c b/lib/misc.c index a8df2354..ccb04d4c 100644 --- a/lib/misc.c +++ b/lib/misc.c @@ -111,6 +111,7 @@ static const htmlentity_t ent[] = { "lt", "<" }, { "gt", ">" }, { "amp", "&" }, + { "apos", "'" }, { "quot", "\"" }, { "aacute", "á" }, { "eacute", "é" }, -- cgit v1.2.3 From ba5add72f824504a21eb780cae638c3ea2166ba0 Mon Sep 17 00:00:00 2001 From: Sven Moritz Hallberg Date: Sun, 17 Feb 2008 02:39:39 +0100 Subject: explicitly initialize ssl in order to avoid gnutls and libotr fighting over the global state of libgcrypt --- lib/ssl_bogus.c | 4 ++++ lib/ssl_client.h | 3 +++ lib/ssl_gnutls.c | 11 ++++++++--- lib/ssl_nss.c | 12 +++++++++--- lib/ssl_openssl.c | 9 +++++++-- 5 files changed, 31 insertions(+), 8 deletions(-) (limited to 'lib') diff --git a/lib/ssl_bogus.c b/lib/ssl_bogus.c index 5bae3496..391e634a 100644 --- a/lib/ssl_bogus.c +++ b/lib/ssl_bogus.c @@ -27,6 +27,10 @@ int ssl_errno; +void ssl_init( void ) +{ +} + void *ssl_connect( char *host, int port, ssl_input_function func, gpointer data ) { return( NULL ); diff --git a/lib/ssl_client.h b/lib/ssl_client.h index dcbf9a01..44fd658c 100644 --- a/lib/ssl_client.h +++ b/lib/ssl_client.h @@ -46,6 +46,9 @@ extern int ssl_errno; typedef gboolean (*ssl_input_function)(gpointer, void*, b_input_condition); +/* Perform any global initialization the SSL library might need. */ +G_MODULE_EXPORT void ssl_init( void ); + /* Connect to host:port, call the given function when the connection is ready to be used for SSL traffic. This is all done asynchronously, no blocking I/O! (Except for the DNS lookups, for now...) */ diff --git a/lib/ssl_gnutls.c b/lib/ssl_gnutls.c index b964ab49..ae6f46a4 100644 --- a/lib/ssl_gnutls.c +++ b/lib/ssl_gnutls.c @@ -60,6 +60,13 @@ static gboolean ssl_starttls_real( gpointer data, gint source, b_input_condition static gboolean ssl_handshake( gpointer data, gint source, b_input_condition cond ); +void ssl_init( void ) +{ + gnutls_global_init(); + initialized = TRUE; + atexit( gnutls_global_deinit ); +} + void *ssl_connect( char *host, int port, ssl_input_function func, gpointer data ) { struct scd *conn = g_new0( struct scd, 1 ); @@ -121,9 +128,7 @@ static gboolean ssl_connected( gpointer data, gint source, b_input_condition con if( !initialized ) { - gnutls_global_init(); - initialized = TRUE; - atexit( gnutls_global_deinit ); + ssl_init(); } gnutls_certificate_allocate_credentials( &conn->xcred ); diff --git a/lib/ssl_nss.c b/lib/ssl_nss.c index 218b3a80..16560e63 100644 --- a/lib/ssl_nss.c +++ b/lib/ssl_nss.c @@ -90,6 +90,14 @@ static SECStatus nss_bad_cert (void *arg, PRFileDesc *socket) } +void ssl_init( void ) +{ + PR_Init( PR_SYSTEM_THREAD, PR_PRIORITY_NORMAL, 1); + NSS_NoDB_Init(NULL); + NSS_SetDomesticPolicy(); + initialized = TRUE; +} + void *ssl_connect( char *host, int port, ssl_input_function func, gpointer data ) { struct scd *conn = g_new0( struct scd, 1 ); @@ -106,9 +114,7 @@ void *ssl_connect( char *host, int port, ssl_input_function func, gpointer data if( !initialized ) { - PR_Init( PR_SYSTEM_THREAD, PR_PRIORITY_NORMAL, 1); - NSS_NoDB_Init(NULL); - NSS_SetDomesticPolicy(); + ssl_init(); } diff --git a/lib/ssl_openssl.c b/lib/ssl_openssl.c index b1ba1db9..e54b21ee 100644 --- a/lib/ssl_openssl.c +++ b/lib/ssl_openssl.c @@ -56,6 +56,12 @@ static gboolean ssl_starttls_real( gpointer data, gint source, b_input_condition static gboolean ssl_handshake( gpointer data, gint source, b_input_condition cond ); +void ssl_init( void ); +{ + initialized = TRUE; + SSLeay_add_ssl_algorithms(); +} + void *ssl_connect( char *host, int port, ssl_input_function func, gpointer data ) { struct scd *conn = g_new0( struct scd, 1 ); @@ -114,8 +120,7 @@ static gboolean ssl_connected( gpointer data, gint source, b_input_condition con if( !initialized ) { - initialized = TRUE; - SSLeay_add_ssl_algorithms(); + ssl_init(); } meth = TLSv1_client_method(); -- cgit v1.2.3 From 9730d7250bb9e938ca00b72efdd8e8b3c03b2753 Mon Sep 17 00:00:00 2001 From: Sven Moritz Hallberg Date: Wed, 16 Jul 2008 23:45:12 +0200 Subject: minor bugfixes --- lib/ssl_openssl.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'lib') diff --git a/lib/ssl_openssl.c b/lib/ssl_openssl.c index e54b21ee..0ec9865f 100644 --- a/lib/ssl_openssl.c +++ b/lib/ssl_openssl.c @@ -56,7 +56,7 @@ static gboolean ssl_starttls_real( gpointer data, gint source, b_input_condition static gboolean ssl_handshake( gpointer data, gint source, b_input_condition cond ); -void ssl_init( void ); +void ssl_init( void ) { initialized = TRUE; SSLeay_add_ssl_algorithms(); -- cgit v1.2.3 From 823de9d44f262ea2364ac8ec6a1e18e0f7dab658 Mon Sep 17 00:00:00 2001 From: Sven Moritz Hallberg Date: Thu, 12 Mar 2009 20:10:06 +0100 Subject: commit updates by ashish shukla --- lib/ssl_bogus.c | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'lib') diff --git a/lib/ssl_bogus.c b/lib/ssl_bogus.c index 6eea18c7..22226592 100644 --- a/lib/ssl_bogus.c +++ b/lib/ssl_bogus.c @@ -69,3 +69,8 @@ int ssl_pending( void *conn ) { return 0; } + +int ssl_pending( void *conn ) +{ + return 0; +} -- cgit v1.2.3