Diff for /loncom/xml/lontexconvert.pm between versions 1.98 and 1.98.2.1

version 1.98, 2009/08/12 20:43:25 version 1.98.2.1, 2011/02/10 20:07:00
Line 49  use lib '/home/httpd/lib/perl/'; Line 49  use lib '/home/httpd/lib/perl/';
 use LONCAPA;  use LONCAPA;
 use URI::Escape;  use URI::Escape;
 use IO::Socket::INET;  use IO::Socket::INET;
 use IO::Socket::SSL;  
   
 # ====================================================================== Header  # ====================================================================== Header
   
Line 248  sub mimetex_valign { Line 247  sub mimetex_valign {
     my $valign = 0;      my $valign = 0;
     my $lonhost = $Apache::lonnet::perlvar{'lonHostID'};      my $lonhost = $Apache::lonnet::perlvar{'lonHostID'};
     my $hostname = &Apache::lonnet::hostname($lonhost);      my $hostname = &Apache::lonnet::hostname($lonhost);
     my $protocol = $Apache::lonnet::protocol{$lonhost};  
     my $path = '/cgi-bin/mimetex.cgi?'.$esc_texstring;      my $path = '/cgi-bin/mimetex.cgi?'.$esc_texstring;
     my $socket;      my $socket;
     &Apache::lonxml::start_alarm();      &Apache::lonxml::start_alarm();
     if ($protocol eq 'https') {      my $socket = IO::Socket::INET->new(PeerAddr => $hostname,
         $socket = IO::Socket::SSL->new(PeerAddr => $hostname,                                         PeerPort => 'http(80)',
                                        PeerPort => 'https(443)',  
                                        Proto    => 'tcp');                                         Proto    => 'tcp');
     } else {  
         $socket = IO::Socket::INET->new(PeerAddr => $hostname,  
                                         PeerPort => 'http(80)',  
                                         Proto    => 'tcp');  
     }  
     if ($socket) {      if ($socket) {
         my $headreq = "HEAD $path HTTP/1.0\r\n\r\n";          my $headreq = "HEAD $path HTTP/1.0\r\n\r\n";
         print $socket $headreq;          print $socket $headreq;
Line 269  sub mimetex_valign { Line 261  sub mimetex_valign {
                 $valign = $1;                  $valign = $1;
             }              }
         }          }
         if ($protocol eq 'https') {          $socket->close();
             $socket->close(SSL_no_shutdown => 1,  
                            SSL_ctx_free => 1);  
         } else {  
             $socket->close();  
         }  
     }      }
     &Apache::lonxml::end_alarm();      &Apache::lonxml::end_alarm();
     return $valign;      return $valign;
Line 514  Header Line 501  Header
   
 =item init_math_support()  =item init_math_support()
   
   =item mimetex_valign()
   
    Makes a HEAD call to /cgi-bin/mimetex.cgi via IO:: to retrieve the
    vertical alignment, before the subsequent call to mimetex_converted()
    which generates the <img> tag and the corresponding image.
   
    Input: 1.  $esc_texstring (escaped TeX to be rendered by mimetex).
    Output: 1. $valign - number of pixels: positive or negative integer
               which will be included in <img> tag for mimetex image to
               support vertical alignment of image within a line of text.
   
    If a server is running SSL, and Apache rewrite rules are in place
    to rewrite requests for http to https, modification will most likely
    be needed for pass through for HEAD requests for /cgi-bin/mimetex.cgi.
   
    Example rewrite rules which rewrite all http traffic to https,
    except HEAD requests for /cgi-bin/mimetex.cgi are:
   
    <IfModule mod_rewrite.c>
        RewriteEngine On
        RewriteLogLevel 0
   
        RewriteCond %{HTTPS} off
        RewriteCond %{HTTP:Host} (.*)
        RewriteCond %{REQUEST_METHOD} !HEAD
        RewriteRule ^/(.*) https://%1/$1 [R=301,L]
   
        RewriteCond %{HTTPS} off
        RewriteCond %{HTTP:Host} (.*)
        RewriteCond %{REQUEST_METHOD} HEAD
        RewriteCond %{REQUEST_URI} !^/cgi-bin/mimetex.cgi
        RewriteRule ^/(.*) https://%1/$1 [R=301,L]
    </IfModule>
   
 =item mimetex_converted()  =item mimetex_converted()
   

Removed from v.1.98  
changed lines
  Added in v.1.98.2.1


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>