<p>I found it on openbsd. Putting the closing brace in, fixed the compile. I dont think it was specific to openbsd. I did find a few openbsd specific things today, of which more anon.<br>
</p>
<div class="gmail_quote">On May 8, 2012 7:22 PM, &quot;Ken Rice&quot; &lt;<a href="mailto:krice@freeswitch.org">krice@freeswitch.org</a>&gt; wrote:<br type="attribution"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">




<div>
<font face="Monaco, Courier New"><span style="font-size:11pt">What platform is this on? You need to be specific when reporting these types of errors....<br>
<br>
<br>
On 5/8/12 4:49 PM, &quot;Ted Walther&quot; &lt;<a href="http://tederific@gmail.com" target="_blank">tederific@gmail.com</a>&gt; wrote:<br>
<br>
</span></font><blockquote><font face="Monaco, Courier New"><span style="font-size:11pt">Compiling mod_spandsp_modem.c ...<br>
cc1: warnings being treated as errors<br>
mod_spandsp_modem.c: In function &#39;modem_init&#39;:<br>
mod_spandsp_modem.c:380: warning: ISO C90 forbids mixed declarations and code<br>
mod_spandsp_modem.c:398: error: invalid storage class for function &#39;channel_on_init&#39;<br>
mod_spandsp_modem.c:399: error: invalid storage class for function &#39;channel_on_hangup&#39;<br>
mod_spandsp_modem.c:400: error: invalid storage class for function &#39;channel_on_destroy&#39;<br>
mod_spandsp_modem.c:401: error: invalid storage class for function &#39;channel_on_routing&#39;<br>
mod_spandsp_modem.c:402: error: invalid storage class for function &#39;channel_on_exchange_media&#39;<br>
mod_spandsp_modem.c:403: error: invalid storage class for function &#39;channel_on_soft_execute&#39;<br>
mod_spandsp_modem.c:407: error: invalid storage class for function &#39;channel_outgoing_channel&#39;<br>
mod_spandsp_modem.c:408: error: invalid storage class for function &#39;channel_read_frame&#39;<br>
mod_spandsp_modem.c:409: error: invalid storage class for function &#39;channel_write_frame&#39;<br>
mod_spandsp_modem.c:410: error: invalid storage class for function &#39;channel_kill_channel&#39;<br>
mod_spandsp_modem.c:419: warning: ISO C forbids nested functions<br>
mod_spandsp_modem.c:419: error: invalid storage class for function &#39;channel_on_init&#39;<br>
mod_spandsp_modem.c: In function &#39;channel_on_init&#39;:<br>
mod_spandsp_modem.c:445: warning: implicit declaration of function &#39;ioctl&#39;<br>
mod_spandsp_modem.c: In function &#39;modem_init&#39;:<br>
mod_spandsp_modem.c:489: warning: ISO C forbids nested functions<br>
mod_spandsp_modem.c:489: error: invalid storage class for function &#39;channel_on_routing&#39;<br>
mod_spandsp_modem.c:503: warning: ISO C forbids nested functions<br>
mod_spandsp_modem.c:503: error: invalid storage class for function &#39;channel_on_execute&#39;<br>
mod_spandsp_modem.c:519: warning: ISO C forbids nested functions<br>
mod_spandsp_modem.c:519: error: invalid storage class for function &#39;channel_on_destroy&#39;<br>
mod_spandsp_modem.c:543: warning: ISO C forbids nested functions<br>
mod_spandsp_modem.c:543: error: invalid storage class for function &#39;channel_on_hangup&#39;<br>
mod_spandsp_modem.c:560: warning: ISO C forbids nested functions<br>
mod_spandsp_modem.c:560: error: invalid storage class for function &#39;channel_kill_channel&#39;<br>
mod_spandsp_modem.c:586: warning: ISO C forbids nested functions<br>
mod_spandsp_modem.c:586: error: invalid storage class for function &#39;channel_on_soft_execute&#39;<br>
mod_spandsp_modem.c:592: warning: ISO C forbids nested functions<br>
mod_spandsp_modem.c:592: error: invalid storage class for function &#39;channel_on_exchange_media&#39;<br>
mod_spandsp_modem.c:608: warning: ISO C forbids nested functions<br>
mod_spandsp_modem.c:608: error: invalid storage class for function &#39;channel_on_reset&#39;<br>
<br>
It looks to me like the error is here:<br>
<br>
#if USE_OPENPTY<br>
    if (openpty(&amp;modem-&gt;master, &amp;modem-&gt;slave, NULL, NULL, NULL)) {<br>
<br>
        if (modem-&gt;master &lt; 0) {<br>
                switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, &quot;Fatal error: failed to initialize pty\n&quot;);<br>
                status = SWITCH_STATUS_FALSE;<br>
                goto end;<br>
    }<br>
<br>
        modem-&gt;stty = ttyname(modem-&gt;slave);<br>
#else<br>
<br>
<br>
I traced to the bottom of the function, and didn&#39;t see a matching close brace.  I believe it is the if(modem-&gt;master &lt; 0){ statement that is missing the closing } after the goto end; statement.<br>
<br>
Can a more knowledgeable developer confirm that this is correct.<br>
<br>
Ted<br>
<br>
<hr align="CENTER" size="3" width="95%"></span></font><font><font face="Consolas, Courier New, Courier"><span style="font-size:10pt">_________________________________________________________________________<br>
Professional FreeSWITCH Consulting Services:<br>
<a href="http://consulting@freeswitch.org" target="_blank">consulting@freeswitch.org</a><br>
<a href="http://www.freeswitchsolutions.com" target="_blank">http://www.freeswitchsolutions.com</a><br>
<br>
FreeSWITCH-powered IP PBX: The CudaTel Communication Server<br>
<a href="http://www.cudatel.com" target="_blank">http://www.cudatel.com</a><br>
<br>
Official FreeSWITCH Sites<br>
<a href="http://www.freeswitch.org" target="_blank">http://www.freeswitch.org</a><br>
<a href="http://wiki.freeswitch.org" target="_blank">http://wiki.freeswitch.org</a><br>
<a href="http://www.cluecon.com" target="_blank">http://www.cluecon.com</a><br>
<br>
FreeSWITCH-dev mailing list<br>
<a href="http://FreeSWITCH-dev@lists.freeswitch.org" target="_blank">FreeSWITCH-dev@lists.freeswitch.org</a><br>
<a href="http://lists.freeswitch.org/mailman/listinfo/freeswitch-dev" target="_blank">http://lists.freeswitch.org/mailman/listinfo/freeswitch-dev</a><br>
UNSUBSCRIBE:<a href="http://lists.freeswitch.org/mailman/options/freeswitch-dev" target="_blank">http://lists.freeswitch.org/mailman/options/freeswitch-dev</a><br>
<a href="http://www.freeswitch.org" target="_blank">http://www.freeswitch.org</a><br>
</span></font></font></blockquote>
</div>


<br>_________________________________________________________________________<br>
Professional FreeSWITCH Consulting Services:<br>
<a href="mailto:consulting@freeswitch.org">consulting@freeswitch.org</a><br>
<a href="http://www.freeswitchsolutions.com" target="_blank">http://www.freeswitchsolutions.com</a><br>
<br>
FreeSWITCH-powered IP PBX: The CudaTel Communication Server<br>
<a href="http://www.cudatel.com" target="_blank">http://www.cudatel.com</a><br>
<br>
Official FreeSWITCH Sites<br>
<a href="http://www.freeswitch.org" target="_blank">http://www.freeswitch.org</a><br>
<a href="http://wiki.freeswitch.org" target="_blank">http://wiki.freeswitch.org</a><br>
<a href="http://www.cluecon.com" target="_blank">http://www.cluecon.com</a><br>
<br>
FreeSWITCH-dev mailing list<br>
<a href="mailto:FreeSWITCH-dev@lists.freeswitch.org">FreeSWITCH-dev@lists.freeswitch.org</a><br>
<a href="http://lists.freeswitch.org/mailman/listinfo/freeswitch-dev" target="_blank">http://lists.freeswitch.org/mailman/listinfo/freeswitch-dev</a><br>
UNSUBSCRIBE:<a href="http://lists.freeswitch.org/mailman/options/freeswitch-dev" target="_blank">http://lists.freeswitch.org/mailman/options/freeswitch-dev</a><br>
<a href="http://www.freeswitch.org" target="_blank">http://www.freeswitch.org</a><br>
<br></blockquote></div>