On 10/05/11 01:40 PM, Matteo Sisti Sette wrote:
On 05/10/2011 06:56 PM, Martin wrote:

I don't have any trouble here with [udpsend] and debian lenny.

I don't have any trouble with [udpsend] either. It's [netsend 1] that can't broadcast (neither in Pd Vanilla 0.42.5 nor Pd Extended 0.42.5)

Any time you get permission denied it's up to you to set the
permissions. (If a program could do that, why have permissions at all?)

That sounds very reasonable, but then how comes that [udpsend] can broadcast packets and [netsend 1] can't (on the same system, same machine, I've tried both right now)?

My guess is that either
A) [netsend 1] is doing something wrong, trying to do something that is not really necessary and that requires some permissions that the program doesn't have B) it is printing a wrong error message and the failure is not really due to a denied permission.


OK I see now. [udpsend] has this in it right after the socket is created:


/* Based on zmoelnig's patch 2221504:
Enable sending of broadcast messages (if hostname is a broadcast address)*/
#ifdef SO_BROADCAST
if( 0 != setsockopt(sockfd, SOL_SOCKET, SO_BROADCAST, (const void *)&broadcast, sizeof(broadcast)))
    {
        udpsend_sock_err(x, "couldn't switch to broadcast mode");
    }
#endif /* SO_BROADCAST */

...and broadcast is just an int:
    int                 broadcast = 1;/* nonzero is true */

I guess if something like that were to be added to the netsend_connect function it would work.

Martin


_______________________________________________
[email protected] mailing list
UNSUBSCRIBE and account-management -> 
http://lists.puredata.info/listinfo/pd-list

Reply via email to