Hi avifile coders,

in avifile0.7-0.7.22/lib/aviread/AsfNetworkInputStream.cpp
you do this :

    int r = connect(m_iSocket, (sockaddr*)&sa, sizeof(sa));
    if (r == -1 && errno == EINPROGRESS)
    {
        <snip>
    }
    fcntl(m_iSocket, F_SETFL, oflg);
    //printf("ENDLOOP %d  %d\n", r, m_iSocket);
    if (r <= 0)
    {
        AVM_WRITE("ASF network reader", "Warning: connection failed ( %s )\n", 
strerror(errno));
    <snip>

This is wrong if connect returns 0 (I suspect you think it will always
return -1 and errno set to EINPROGRESS because you are in non blocking
mode, and so and immediate connection is impossible).

Because of my specific configuration here at school, I redirect
connect to my own function, which will always connect (it sets
the socket into blocking mode then does a special connect into
another machine, which will act as a "proxy"), so it can return 0 here.

You should add :
    if (r == 0) r = 1;
right after the connect line for your code to work fine.

Take care of yourself,
C�dric.
-- 
main(){int i,j;{printf("\n      Who did you say ? Sierpinski ?      \n");}
for(i=0;i<80;i++){for(j=0;j<80;j++)printf("%c",i&j?'.':' ');printf("\n");}
printf("\n   Life is a beach - George Sand (1804-1876)  \n\n"); return 0;}


_______________________________________________
Avifile mailing list
[EMAIL PROTECTED]
http://prak.org/mailman/listinfo/avifile

Reply via email to