El problema ocurre cuando queremos compilar programas con versiones antiguas que hacen en su código uso de este protocolo, este es el caso de querer compilar desde código SQUID2.7 sobre una Ubuntu 10.10, obtendremos un error similar a:
ssl_support.o: In function `sslCreateServerContext': /usr/src/proxy/squid-2.7.STABLE9/src/ssl_support.c:451: undefined reference to `SSLv2_server_method' ssl_support.o: In function `sslCreateClientContext': /usr/src/proxy/squid-2.7.STABLE9/src/ssl_support.c:614: undefined reference to `SSLv2_client_method' collect2: ld returned 1 exit status
La solución pasa por parchear el código o eliminar las partes que requieren de funciones sslv2 tal como se puede observar en el siguiente patch
--- /usr/src/proxy/squid-2.7.STABLE9/src/ssl_support.c.orig 2011-12-16 12:54:54.000000000 +0100
+++ /usr/src/proxy/squid-2.7.STABLE9/src/ssl_support.c 2011-12-16 12:55:15.000000000 +0100
@@ -446,10 +446,12 @@
ERR_clear_error();
debug(83, 1) ("Initialising SSL.\n");
switch (version) {
+#ifndef OPENSSL_NO_SSL2
case 2:
debug(83, 5) ("Using SSLv2.\n");
method = SSLv2_server_method();
break;
+#endif
case 3:
debug(83, 5) ("Using SSLv3.\n");
method = SSLv3_server_method();
@@ -609,10 +611,12 @@
ERR_clear_error();
debug(83, 1) ("Initialising SSL.\n");
switch (version) {
+#ifndef OPENSSL_NO_SSL2
case 2:
debug(83, 5) ("Using SSLv2.\n");
method = SSLv2_client_method();
break;
+#endif
case 3:
debug(83, 5) ("Using SSLv3.\n");
method = SSLv3_client_method();
Para aplicarlo podemos copiar el contenido anterior en un archivo y ejecutar: patch -p0 < parche.txt
comentarios:
Gracias. la modificacion anduvo. Probaste postear este parche en el bugzilla de Squid?
Publicar un comentario en la entrada