[lnkForumImage]
TotalShareware - Download Free Software

Confronta i prezzi di migliaia di prodotti.
Asp Forum
 Home | Login | Register | Search 


 

Forums >

comp.lang.ruby

Ruby milter and C code

barjunk

1/26/2008 11:29:00 PM

I've been looking at the code at:

http://ruby-asp.rubyforge.org/svn/trunk/ruby-sendmail-milte...

and although it doesn't work as presented, I was able to get it
working.

As I was going through the code I found a section like this:

pRbTSendmailMilter->xFilterName = STR2CSTR( filter );
pRbTSendmailMilter->xConnectString = STR2CSTR( conn );

and from what the 1.8.4 README.EXT file says is that these have been
deprecated. I'm
fairly new to C and I'm not exactly sure what this is doing. However,
it seems like I
should be able to just replace this with StringValueCStr.

Is there anything else that some of you more experienced C programmers
can see that might
also be a problem?

I wondered if the LHash stuff was needed with the newer version of
ruby as well.

Thanks for any advice.

Mike B.
1 Answer

barjunk

1/31/2008 6:09:00 PM

0

On Jan 26, 2:29 pm, barjunk <barj...@attglobal.net> wrote:
> I've been looking at the code at:
>
> http://ruby-asp.rubyforge.org/svn/trunk/ruby-sendmail-milte...
>
> and although it doesn't work as presented, I was able to get it
> working.
>
> As I was going through the code I found a section like this:
>
> pRbTSendmailMilter->xFilterName = STR2CSTR( filter );
> pRbTSendmailMilter->xConnectString = STR2CSTR( conn );
>
> and from what the 1.8.4 README.EXT file says is that these have been
> deprecated. I'm
> fairly new to C and I'm not exactly sure what this is doing. However,
> it seems like I
> should be able to just replace this with StringValueCStr.
>
> Is there anything else that some of you more experienced C programmers
> can see that might
> also be a problem?
>
> I wondered if the LHash stuff was needed with the newer version of
> ruby as well.
>
> Thanks for any advice.
>
> Mike B.

Another problem as occurred while trying to use this code. I've been
getting a stack error so decided to use rdebug to see what I could
find out. During that process, I got this:

Call #1 :: ruby_stack_check = 0 / ruby_stack_length = 2691
Call #2 :: ruby_stack_check = 1 / ruby_stack_length = 35706191
Tracing(1):./sample.rb:11 print "my_connect:\n"
my_connect:
Tracing(1):./sample.rb:12 print " + hostname: #{hostname}\n"
+ hostname: localhost
INTERNAL ERROR!!! stack level too deep
/usr/lib/ruby/gems/1.8/gems/ruby-debug-0.9.3/cli/ruby-debug/
processor.rb:73:in `print'
/usr/lib/ruby/gems/1.8/gems/ruby-debug-0.9.3/cli/ruby-debug/
processor.rb:60:in `__at_tracing'
(eval):5:in `at_tracing'
/usr/lib/ruby/1.8/thread.rb:135:in `synchronize'
(eval):3:in `at_tracing'
/usr/lib/ruby/gems/1.8/gems/ruby-debug-base-0.9.3/lib/ruby-
debug-base.rb:42:in `at_tracing'
./sample.rb:13:in `xxfi_connect'
./sample.rb:106
/usr/lib/ruby/gems/1.8/gems/ruby-debug-0.9.3/bin/rdebug:136
/usr/bin/rdebug:16 + callback completed.
Tracing(1):./sample.rb:15 Sendmail::Milter::SMFIS_CONTINUE
Call #3 :: ruby_stack_check = 1 / ruby_stack_length = 35706191


The interesting thing is that the program didn't stop...it continues
to run.

The function at hand is supposed to be a registered callback.

Any ideas on what I might do to figure this out?

Mike B.