Kaydet (Commit) d3cbcbad authored tarafından Siqi LIU's avatar Siqi LIU

restore old implementation of autodiscovery to keep android app happy ^^

Change-Id: I33d856c5654cedb0d6bf437bf4653fac8830369c
üst 81f08fc3
...@@ -45,18 +45,13 @@ using namespace osl; ...@@ -45,18 +45,13 @@ using namespace osl;
using namespace rtl; using namespace rtl;
using namespace sd; using namespace sd;
void SAL_CALL DiscoveryService::run()
{
}
DiscoveryService::DiscoveryService() DiscoveryService::DiscoveryService()
{ {
#ifdef MACOSX #ifdef MACOSX
OSXNetworkService * service = [[OSXNetworkService alloc] init]; OSXNetworkService * service = [[OSXNetworkService alloc] init];
[service publishImpressRemoteServiceOnLocalNetworkWithName: @""]; [service publishImpressRemoteServiceOnLocalNetworkWithName: @""];
#endif #endif
/* // #else
mSocket = socket( AF_INET, SOCK_DGRAM, IPPROTO_UDP ); mSocket = socket( AF_INET, SOCK_DGRAM, IPPROTO_UDP );
sockaddr_in aAddr; sockaddr_in aAddr;
...@@ -79,9 +74,9 @@ DiscoveryService::DiscoveryService() ...@@ -79,9 +74,9 @@ DiscoveryService::DiscoveryService()
multicastRequest.imr_interface.s_addr = htonl(INADDR_ANY); multicastRequest.imr_interface.s_addr = htonl(INADDR_ANY);
rc = setsockopt( mSocket, IPPROTO_IP, IP_ADD_MEMBERSHIP, rc = setsockopt( mSocket, IPPROTO_IP, IP_ADD_MEMBERSHIP,
#ifdef WNT #ifdef WNT
(const char*) (const char*)
#endif #endif
&multicastRequest, sizeof(multicastRequest)); &multicastRequest, sizeof(multicastRequest));
if (rc) if (rc)
...@@ -89,43 +84,47 @@ DiscoveryService::DiscoveryService() ...@@ -89,43 +84,47 @@ DiscoveryService::DiscoveryService()
SAL_WARN("sd", "DiscoveryService: setsockopt failed: " << errno); SAL_WARN("sd", "DiscoveryService: setsockopt failed: " << errno);
return; // would be better to throw, but unsure if caller handles that return; // would be better to throw, but unsure if caller handles that
} }
*/ // #endif
} }
DiscoveryService::~DiscoveryService() DiscoveryService::~DiscoveryService()
{ {
// #ifdef WNT // #ifndef MACOSX
// closesocket( mSocket ); #ifdef WNT
// #else closesocket( mSocket );
// close( mSocket ); #else
close( mSocket );
#endif
// #endif
}
void SAL_CALL DiscoveryService::run()
{
// #ifndef MACOSX
char aBuffer[BUFFER_SIZE];
while ( true )
{
memset( aBuffer, 0, sizeof(char) * BUFFER_SIZE );
sockaddr_in aAddr;
socklen_t aLen = sizeof( aAddr );
recvfrom( mSocket, aBuffer, BUFFER_SIZE, 0, (sockaddr*) &aAddr, &aLen );
OString aString( aBuffer, strlen( "LOREMOTE_SEARCH" ) );
if ( aString == "LOREMOTE_SEARCH" )
{
OStringBuffer aStringBuffer("LOREMOTE_ADVERTISE\n");
aStringBuffer.append( OUStringToOString(
osl::SocketAddr::getLocalHostname(), RTL_TEXTENCODING_UTF8 ) )
.append( "\n\n" );
if ( sendto( mSocket, aStringBuffer.getStr(),
aStringBuffer.getLength(), 0, (sockaddr*) &aAddr,
sizeof(aAddr) ) <= 0 )
{
// Read error or closed socket -- we are done.
return;
}
}
}
// #endif // #endif
// }
// void SAL_CALL DiscoveryService::run()
// {
// char aBuffer[BUFFER_SIZE];
// while ( true )
// {
// memset( aBuffer, 0, sizeof(char) * BUFFER_SIZE );
// sockaddr_in aAddr;
// socklen_t aLen = sizeof( aAddr );
// recvfrom( mSocket, aBuffer, BUFFER_SIZE, 0, (sockaddr*) &aAddr, &aLen );
// OString aString( aBuffer, strlen( "LOREMOTE_SEARCH" ) );
// if ( aString == "LOREMOTE_SEARCH" )
// {
// OStringBuffer aStringBuffer("LOREMOTE_ADVERTISE\n");
// aStringBuffer.append( OUStringToOString(
// osl::SocketAddr::getLocalHostname(), RTL_TEXTENCODING_UTF8 ) )
// .append( "\n\n" );
// if ( sendto( mSocket, aStringBuffer.getStr(),
// aStringBuffer.getLength(), 0, (sockaddr*) &aAddr,
// sizeof(aAddr) ) <= 0 )
// {
// // Read error or closed socket -- we are done.
// return;
// }
// }
// }
} }
DiscoveryService *sd::DiscoveryService::spService = NULL; DiscoveryService *sd::DiscoveryService::spService = NULL;
......
...@@ -47,8 +47,8 @@ namespace sd ...@@ -47,8 +47,8 @@ namespace sd
static DiscoveryService *spService; static DiscoveryService *spService;
virtual void SAL_CALL run(); virtual void SAL_CALL run();
// osl::DatagramSocket mSocket; // osl::DatagramSocket mSocket;
// int mSocket; int mSocket;
}; };
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment