/ Zope / Apsis / Pound Mailing List / Archive / 2009 / 2009-09 / Mac OSX Regex Problem / Solution

[ << ] [ >> ]

[ Mass errors / "Manhart, Alexander" ... ] [ Pound: "X-Forwarded-For" should be ... ]

Mac OSX Regex Problem / Solution
Zack Steinkamp <Zack_Steinkamp(at)symantec.com>
2009-09-04 02:08:38 [ FULL ]
I had been running pound without problem on my Mac with OS 10.4 and  
10.5.

After upgrading to 10.6, I rebuilt pound for reasons unconnected to  
the upgrade.

Post-rebuild, pound would not run -- I would get the following error:

     line 10: Unknown Listener address ""

Line 10 in my config file was a typical "Address 0.0.0.0" line.

In looking at the source code, it seemed that the regex that matches  
the "Address" line succeeded, but lin + matches[1] was ending up with  
the null string.  After digging further, I saw that the start and end  
offset for matches[1] were both -1.  Offsets for matches[0] were  
ridiculously large numbers.

I wrote a little C program, copying the relevant lines from config.c,  
compiled it ("gcc test.c") and ran it, and it worked perfectly.  There  
had to be a difference.

The difference was that pound's configure script was finding  
libpcreposix on my system.  Its inclination is to add that to the link  
line if it is present and responds to a call.

The problem is that after upgrading to OS 10.6, pound no longer found  
pcreposix.h, and instead was including regex.h.

There is a vast difference in certain #defines for flags between  
pcreposix.h and regex.h.  The net effect is that regexp.h's flags were  
being passed to function calls in libpcreposix.

After removing -lpcreposix from the Makefile and running "sudo make  
install" it all worked properly.


I'd suggest requiring the presence of pcreposix.h before including  
libpcreposix.  Seems that it would take a fair amount of heavy lifting  
in the configure script to do so.


Thanks!
-zs

MailBoxer