|
a/libupnpp/discovery.cxx |
|
b/libupnpp/discovery.cxx |
|
... |
|
... |
169 |
}
|
169 |
}
|
170 |
delete tsk;
|
170 |
delete tsk;
|
171 |
}
|
171 |
}
|
172 |
}
|
172 |
}
|
173 |
|
173 |
|
174 |
// This gets called for all libupnp asynchronous events, in a libupnp
|
174 |
// This gets called in a libupnp thread context for all asynchronous
|
175 |
// thread context.
|
175 |
// events which we asked for.
|
176 |
// Example: ContentDirectories appearing and disappearing from the network
|
176 |
// Example: ContentDirectories appearing and disappearing from the network
|
177 |
// We queue a task for our worker thread(s)
|
177 |
// We queue a task for our worker thread(s)
|
178 |
// It seems that this can get called by several threads. We have a
|
178 |
// It seems that this can get called by several threads. We have a
|
179 |
// mutex just for clarifying the message printing, the workqueue is
|
179 |
// mutex just for clarifying the message printing, the workqueue is
|
180 |
// mt-safe of course.
|
180 |
// mt-safe of course.
|
|
... |
|
... |
201 |
}
|
201 |
}
|
202 |
case UPNP_DISCOVERY_ADVERTISEMENT_BYEBYE:
|
202 |
case UPNP_DISCOVERY_ADVERTISEMENT_BYEBYE:
|
203 |
{
|
203 |
{
|
204 |
struct Upnp_Discovery *disco = (struct Upnp_Discovery *)evp;
|
204 |
struct Upnp_Discovery *disco = (struct Upnp_Discovery *)evp;
|
205 |
|
205 |
|
206 |
if (isMSDevice(disco->DeviceType) || isCDService(disco->ServiceType)) {
|
|
|
207 |
PLOGDEB("BYEBYE: %s\n", cluDiscoveryToStr(disco).c_str());
|
206 |
PLOGDEB("BYEBYE: %s\n", cluDiscoveryToStr(disco).c_str());
|
208 |
DiscoveredTask *tp = new DiscoveredTask(0, disco);
|
207 |
DiscoveredTask *tp = new DiscoveredTask(0, disco);
|
209 |
if (discoveredQueue.put(tp)) {
|
208 |
if (discoveredQueue.put(tp)) {
|
210 |
return UPNP_E_FINISH;
|
209 |
return UPNP_E_FINISH;
|
211 |
}
|
|
|
212 |
}
|
210 |
}
|
213 |
break;
|
211 |
break;
|
214 |
}
|
212 |
}
|
215 |
default:
|
213 |
default:
|
216 |
// Ignore other events for now
|
214 |
// Ignore other events for now
|
|
... |
|
... |
362 |
return true;
|
360 |
return true;
|
363 |
}
|
361 |
}
|
364 |
}
|
362 |
}
|
365 |
return false;
|
363 |
return false;
|
366 |
}
|
364 |
}
|
|
|
365 |
|
|
|
366 |
/* Local Variables: */
|
|
|
367 |
/* mode: c++ */
|
|
|
368 |
/* c-basic-offset: 4 */
|
|
|
369 |
/* tab-width: 4 */
|
|
|
370 |
/* indent-tabs-mode: t */
|
|
|
371 |
/* End: */
|