Update of /cvsroot/playerstage/code/player/libplayersd
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv7578
Modified Files:
playersd_mdns.c
Log Message:
Index: playersd_mdns.c
===================================================================
RCS file: /cvsroot/playerstage/code/player/libplayersd/playersd_mdns.c,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -d -r1.1 -r1.2
*** playersd_mdns.c 25 Sep 2007 19:59:05 -0000 1.1
--- playersd_mdns.c 25 Sep 2007 20:41:08 -0000 1.2
***************
*** 152,155 ****
--- 152,156 ----
player_sd_mdns_t* mdns = (player_sd_mdns_t*)(sd->sdRef);
player_sd_mdns_dev_t* dev;
+ char nameBuf[PLAYER_SD_NAME_MAXLEN];
// Find a spot for this device
***************
*** 195,231 ****
}
! if((sdErr = DNSServiceRegister(&(dev->regRef),
! 0,
! 0,
! name,
! PLAYER_SD_SERVICENAME,
! NULL,
! NULL,
! addr.robot,
! TXTRecordGetLength(&(dev->txtRecord)),
! TXTRecordGetBytesPtr(&(dev->txtRecord)),
! registerCB,
! (void*)dev)) != kDNSServiceErr_NoError)
! {
! PLAYER_ERROR1("DNSServiceRegister returned error: %d", sdErr);
! return(-1);
! }
! while(!dev->valid && !dev->fail)
{
! if((sdErr = DNSServiceProcessResult(dev->regRef)) !=
kDNSServiceErr_NoError)
{
! PLAYER_ERROR1("DNSServiceProcessResult returned error: %d", sdErr);
! return(-1);
}
}
! if(dev->fail)
{
! PLAYER_ERROR1("Registration of %s failed", name);
return(-1);
}
else
{
PLAYER_MSG1(2,"Registration of %s successful", name);
return(0);
--- 196,237 ----
}
! memset(nameBuf,0,sizeof(nameBuf));
! strncpy(nameBuf,name,sizeof(nameBuf)-1);
! sdErr = kDNSServiceErr_NameConflict;
! while(sdErr == kDNSServiceErr_NameConflict)
{
! sdErr = DNSServiceRegister(&(dev->regRef),
! 0,
! 0,
! nameBuf,
! PLAYER_SD_SERVICENAME,
! NULL,
! NULL,
! addr.robot,
! TXTRecordGetLength(&(dev->txtRecord)),
! TXTRecordGetBytesPtr(&(dev->txtRecord)),
! registerCB,
! (void*)dev);
!
! if(sdErr == kDNSServiceErr_NameConflict)
{
! // Pick a new name
! memset(nameBuf,0,sizeof(nameBuf));
! snprintf(nameBuf,sizeof(nameBuf),"%s (%d)",
! name,dev->nameIdx++);
}
}
! if(sdErr != kDNSServiceErr_NoError)
{
! PLAYER_ERROR1("DNSServiceRegister returned error: %d", sdErr);
return(-1);
}
else
{
+ if(strcmp(nameBuf,name))
+ PLAYER_WARN2("Changing service name of %s to %s\n",
+ name,nameBuf);
PLAYER_MSG1(2,"Registration of %s successful", name);
return(0);
***************
*** 242,248 ****
void *context)
{
DNSServiceErrorType sdErr;
player_sd_mdns_dev_t* dev = (player_sd_mdns_dev_t*)context;
! char nameBuf[PLAYER_SD_NAME_MAXLEN];
if(errorCode == kDNSServiceErr_NoError)
--- 248,260 ----
void *context)
{
+ // It seems that Avahi returns the NameConflict immediately from
+ // DNSServiceRegister(), and that mDNSResponder never complains about it,
+ // even in the callback (!). However, we have to keep this callback
+ // defined, because Avahi will abort if we pass NULL.
+ #if 0
DNSServiceErrorType sdErr;
player_sd_mdns_dev_t* dev = (player_sd_mdns_dev_t*)context;
!
! puts("registerCB");
if(errorCode == kDNSServiceErr_NoError)
***************
*** 286,288 ****
--- 298,301 ----
dev->fail = 1;
}
+ #endif
}
-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2005.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
Playerstage-commit mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/playerstage-commit