<html><head><meta http-equiv="Content-Type" content="text/html charset=iso-8859-1"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div apple-content-edited="true"><span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: Helvetica; font-style: normal; font-variant: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: -webkit-auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; border-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; font-size: medium; "><div>Hi phk,</div></span></div><div><br></div><div><blockquote type="cite">In message <<a href="mailto:A1FE9D80-4D75-4450-AB9B-96C55E914973@lavandeira.net">A1FE9D80-4D75-4450-AB9B-96C55E914973@lavandeira.net</a>>, Javi Lavandei<br>ra writes:<br><br>Can you check the manual pages and see if it mentions how long timeouts<br>you can specify to setsockopt(SO_SNDTIMEO) ?<br><br><blockquote type="cite">Child (7681) died signal=6<br>Child (7681) Panic message: Assert error in VCA_Prep(), cache_acceptor.c line 185:<br> Condition(VTCP_Check(setsockopt(sp->fd, 0xffff, 0x1005, &tv_sndtimeo, sizeof tv_sndtimeo))) not true.</blockquote></blockquote><br></div><div>Let's see if this helps:</div><div><br></div><div>From setsockopt()'s manpage:</div><div><div><br></div><div>[...]</div><div>     Most socket-level options utilize an int parameter for option_value.  For setsockopt(), the</div><div>     parameter should be non-zero to enable a boolean option, or zero if the option is to be dis-</div><div>     abled.  SO_LINGER uses a struct linger parameter, defined in <sys/socket.h>, which specifies</div><div>     the desired state of the option and the linger interval (see below).  SO_SNDTIMEO and</div><div>     SO_RCVTIMEO use a struct timeval parameter, defined in <sys/time.h>.</div><div>[...]</div><div><div>     SO_SNDTIMEO is an option to set a timeout value for output operations.  It accepts a struct</div><div>     timeval parameter with the number of seconds and microseconds used to limit waits for output</div><div>     operations to complete.  If a send operation has blocked for this much time, it returns with a</div><div>     partial count or with the error EWOULDBLOCK if no data were sent.  In the current implementa-</div><div>     tion, this timer is restarted each time additional data are delivered to the protocol, imply-</div><div>     ing that the limit applies to output portions ranging in size from the low-water mark to the</div><div>     high-water mark for output.</div></div><div>[...]</div><div><br></div><div>And I can see this in the header files:</div><div><br></div><div>/usr/include/sys/_structs.h:</div><div><br></div>#define _STRUCT_TIMEVAL         struct timeval</div><div>_STRUCT_TIMEVAL</div><div>{</div><div><span class="Apple-tab-span" style="white-space:pre">     </span>__darwin_time_t<span class="Apple-tab-span" style="white-space:pre">             </span>tv_sec;<span class="Apple-tab-span" style="white-space:pre">     </span>/* seconds */</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>__darwin_suseconds_t <span class="Apple-tab-span" style="white-space:pre">       </span>tv_usec;<span class="Apple-tab-span" style="white-space:pre">    </span>/* and microseconds */</div><div>}; <div><br></div><div>/usr/include/sys/types.h:</div><div><span class="Apple-tab-span" style="white-space: pre; ">        </span></div></div><div><div>typedef __darwin_time_t         time_t;</div></div><div><div>typedef __darwin_suseconds_t    suseconds_t;</div></div><div><br></div><div><div>/usr/include/sys/_types.h:</div></div><div><br></div><div>typedef __int32_t<span class="Apple-tab-span" style="white-space:pre"> </span>__darwin_suseconds_t;<span class="Apple-tab-span" style="white-space:pre">       </span>/* [???] microseconds */</div><div><br></div><div>Hope it helps.</div><div><br></div><div><div>--</div>Javi Lavandeira <div>Twitter: @javilm</div><div><b><br></b></div><div><b>Blog:</b> <a href="http://www.lavandeira.net/blog/">http://www.lavandeira.net/blog/</a></div><div><b>Email and hosting:</b> <a href="http://www.lavandeira.net/services/">http://www.lavandeira.net/services/</a></div></div><div><br></div></body></html>