Hello all, I am trying to convert a Web-based e-mail package ( MailMan with local modifications ) to run under mod_perl. The original author did a fantastic job of making the script mod_perl clean so we have only had to do a modicum of changes. Here is my problem. We run a site which uses Kerberos for authentication to our POP servers. We obtain a ticket granting ticket for the user and then we use the Authen::Krb4 package for obtaining a POP service ticket and authenticating the user to the POP server. This worked great using just plain old mod_cgi. When we ran this under mod_perl, it stopped working for some reason. Authen::Krb4 I believe is available through CPAN so I won't post it here. It is simply an XSUB extension to the Kerberos 4 C libraries. Some of the routines in Authen::Krb4 do work under mop_perl. It is the sendauth routine which does not (maybe this has to do with the socket?). I have read the first four chapters of the Eagle book, searched and read the guide, searched the mailing list archives and have even gone to Google (which usually ends up pointing me back to perl.apache.org). Can someone give me a clue as to why this may not be working? Info: ----- OS: Linux 2.2.14 mod_perl: 1.24 Apache: 1.3.9 configured with openssl 0.9.3 Configuration file: ------------------- ScriptAlias /cgi-bin /local/www/apache_1.3.9/cgi-bin Alias /cgi-perl /local/www/apache_1.3.9/cgi-bin <Location /cgi-perl> SetHandler perl-script PerlHandler Apache::PerlRun PerlModule Authen::Krb4 CGI FileHandle Socket Options +ExecCGI allow from all PerlSendHeader On </Location> Relevant code: use FileHandle; my($rServerSocket) = new FileHandle(); <---- This is done OUTSIDE of the subroutine which calls sendauth below .... use Authen::Krb4; ... # Attempt to open a socket to the POP3 server. my($protocol) = 0; $protocol = getprotobyname('tcp'); socket($rServerSocket,PF_INET,SOCK_STREAM,$protocol); my($remote_ip) = 0; $remote_ip = gethostbyname($mailman::strIncomingServer); ... $remote_sock = sockaddr_in(1109, $remote_ip); ... my($laddr)=0; my($faddr)=0; my($realm)=Authen::Krb4::realmofhost($mailman::strIncomingServer); my($phost)=Authen::Krb4::get_phost($mailman::strIncomingServer); my($service)='pop'; my($ticket,$credentials,$schedule)=Authen::Krb4::sendauth(0,$rServerSocket,$ service,$phost,$realm,5,$laddr,$faddr,"AUTHV0.1"); Many thanks in advance, Dave ---------------------------------- Dave Edsall Systems Software Academic Information Technologies Iowa State University