Diff for /loncom/xml/lontexconvert.pm between versions 1.104 and 1.105

version 1.104, 2010/06/10 15:54:06 version 1.105, 2011/02/10 19:28:29
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 => 'https(443)',  
                                        Proto    => 'tcp');  
     } else {  
         $socket = IO::Socket::INET->new(PeerAddr => $hostname,  
                                         PeerPort => 'http(80)',                                          PeerPort => 'http(80)',
                                         Proto    => 'tcp');                                          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 528  Header Line 515  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.104  
changed lines
  Added in v.1.105


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