HI Jamie,
many thanks for you tweaking.

> I lied, it was 2 lines. ;-)
> 
> In Sablotron.xs:
>       char *foo = 0;

I've already fixed this problem (in little bit differnet way) inSablotron.xs

        
> I think the reason *foo needed to be set to '0' is due to the free call, (and
> setting it to something else, as I had done) resulted in it returning a
> bunch of binary stuff, leading to me thinking it wasn't returning the right
> stuff, when it was really trying to return "I don't have anything, because
> there was a permission denied error on the log file".
> 
> In sablot.cpp:
> 
> void doStart()
> {
>     situation.msgOutputFile("stderr","/tmp/sablot.log");
>     Log1(L_START, situation.timeStr());
> };
> 
Problem with sablot.log is (just my opinion) the obsolete one; Tom 
should remove this feature or make it in the more secure way.


 > If I could make a suggestion, is there a way to get the error string
 > after processing? This way, the xs file could call croak() on an
 > error, and possibly just return the processed string on success. (Kind
 > of like XML::Parser does)


This is global log and error processing problem. In the last days we 
spent some tome to implement robust log and error handling. We'll 
release new version of perl module as soon as possible. New version 
allows setting of "message handler", so all log and error message could 
be handled in your perl code.

Have a nice day


Pavel















--
Pavel Hlavnicka
Ginger Alliance Ltd.
Prague; Czech Republic


Reply via email to