Sign in Join

Live chat for Free Pascal, Lazarus, Delphi and every Pascal programmer.

Mailing lists / fpc-pascal / 2005-09

SO_RCVTIMEO

4 messages · 3 people ·

Reply by email Subscribe to this list Your subscription

Read-only archive. Use j and k to move between messages.

Paul Davidson

Trying to get SetSocketOptions for SO_RCVTIMEO and SO_SNDTIMEO to work with Darwin (FreeBSD).

type
   p : pointer;
   t : TimeVal;
t.tv_sec := mSec div 1000;
t.tv_usec := ( mSec mod 1000 ) * 1000;
p := @t;
if SetSocketOptions( fSocket, SOL_SOCKET, SO_SNDTIMEO, p, SizeOf( t ) )
 0 etc

returns "Math argument out of domain of func", i.e. EDOM error.

Reference http://www.rocketaware.com/man/man2/getsockopt.2.htm Different OS's use different types. MS uses pointer to integer, while others use a timeval structure.

An suggestions?

P D

Reply by email

Marco van de Voort
to Paul Davidson
Show quoted text 20 lines
Trying to get SetSocketOptions for SO_RCVTIMEO and SO_SNDTIMEO to work with Darwin (FreeBSD). type p : pointer; t : TimeVal; t.tv_sec := mSec div 1000; t.tv_usec := ( mSec mod 1000 ) * 1000; p := @t; if SetSocketOptions( fSocket, SOL_SOCKET, SO_SNDTIMEO, p, SizeOf( t ) ) 0 etc returns "Math argument out of domain of func", i.e. EDOM error. Reference http://www.rocketaware.com/man/man2/getsockopt.2.htm Different OS's use different types. MS uses pointer to integer, while others use a timeval structure. An suggestions?

google "freebsd sol_socket so_sndtimeo"

yields:

http://66.249.93.104/search?q=cache:1LP6r0fqaU4J:dbforums.com/arch/186/2003/1/654712+sol_socket+freebsd+so_sndtimeo&hl=en

Reply by email

Anton Tichawa
to Paul Davidson: Trying to get SetSocketOptions for SO_RCVTIMEO and SO_SNDTIMEO to work with Darwin…
Paul Davidson wrote 13 lines
Trying to get SetSocketOptions for SO_RCVTIMEO and SO_SNDTIMEO to work with Darwin (FreeBSD). type p : pointer; t : TimeVal; t.tv_sec := mSec div 1000; t.tv_usec := ( mSec mod 1000 ) * 1000; p := @t; if SetSocketOptions( fSocket, SOL_SOCKET, SO_SNDTIMEO, p, SizeOf( t ) ) 0 etc

According to my docs, SetSocketOptions is declared

function SetSocketOptions(
  Sock: LongInt;
  Level: LongInt;
  OptName: LongInt;
  const OptVal;
  optlen: LongInt
):LongInt;

So, I think you should pass p^ (the data pointed to by p) rather than p.

HTH,

Anton.

Reply by email

Paul Davidson
to Marco van de Voort: google "freebsd sol_socket so_sndtimeo" yields:…

Thanks, Marco, Anton. Select it is!

Marco van de Voort wrote 33 lines
> Trying to get SetSocketOptions for SO_RCVTIMEO and SO_SNDTIMEO to work > with Darwin (FreeBSD). > > type > p : pointer; > t : TimeVal; > > t.tv_sec := mSec div 1000; > t.tv_usec := ( mSec mod 1000 ) * 1000; > p := @t; > if SetSocketOptions( fSocket, SOL_SOCKET, SO_SNDTIMEO, p, SizeOf( t ) > ) > 0 etc > > returns "Math argument out of domain of func", i.e. EDOM error. > > Reference http://www.rocketaware.com/man/man2/getsockopt.2.htm > Different OS's use different types. MS uses pointer to integer, while > others use a timeval structure. > > An suggestions? google "freebsd sol_socket so_sndtimeo" yields: http://66.249.93.104/search?q=cache:1LP6r0fqaU4J:dbforums.com/arch/ 186/2003/1/654712+sol_socket+freebsd+so_sndtimeo&hl=en _______________________________________________ fpc-pascal maillist - http://lists.freepascal.org/mailman/listinfo/fpc-pascal

P Davidson
Corax Networks Inc.
http://CoraxNetworks.com

Reply by email