Exemple #1
0
FskErr KprZeroconfServiceInfoNew(KprZeroconfServiceInfo *it, const char* type, const char* name, const char* host, const char* ip, UInt32 port, const UInt32 interfaceIndex, char* txt)
{
    FskErr err = kFskErrNone;
    KprZeroconfServiceInfo self = NULL;

    bailIfError(FskMemPtrNewClear(sizeof(KprZeroconfServiceInfoRecord), it));
    self = *it;
    self->type = FskStrDoCopy(type);
    bailIfNULL(self->type);
    self->name = FskStrDoCopy(name);
    bailIfNULL(self->name);
    if (host) {
        self->host = FskStrDoCopy(host);
        bailIfNULL(self->host);
    }
    if (ip) {
        self->ip = FskStrDoCopy(ip);
        bailIfNULL(self->ip);
    }
    self->port = port;
    self->interfaceIndex = interfaceIndex;
    if (txt) {
        self->txt = FskStrDoCopy(txt);
        bailIfNULL(self->txt);
    }
    FskInstrumentedItemNew(self, NULL, &KprZeroconfServiceInfoInstrumentation);
bail:
    if (err)
        KprZeroconfServiceInfoDispose(self);
    return err;
}
void KprZeroconfBrowserServiceDown(KprZeroconfBrowser self, KprZeroconfServiceInfo service)
{
	if (!self) self = KprZeroconfBrowserFind(NULL, service->type);
	if (!self) return;
	FskInstrumentedItemPrintfDebug(self, "%p - KprZeroconfBrowserServiceDown %s %s - %p %p", self, service->type, service->name, KprShellGetThread(gShell), FskThreadGetCurrent());
	if (self->serviceDownCallback)
		(*self->serviceDownCallback)(self, service);
	KprZeroconfServiceInfoDispose(service);
}