Esempio n. 1
0
 void KprZeroconfDiscoverServerCallback(KprZeroconfBrowser self, KprZeroconfServiceInfo service, Boolean alive)
 {
 #define kKPRZeroconfKinomaDiscoverURL "xkpr://%s/discover"
 #define kKPRZeroconfKinomaDiscoverJSON "{\"id\":\"%s\",\"uuid\":\"%s\",\"url\":\"http://%s:%lu/\",\"protocol\":\"zeroconf\"}"
 #define kKPRZeroconfKinomaForgetURL "xkpr://%s/forget"
 #define kKPRZeroconfKinomaForgetJSON "{\"id\":\"%s\",\"uuid\":\"%s\",\"protocol\":\"zeroconf\"}"
 	FskErr err = kFskErrNone;
 	char id[256];
 	char url[1024];
 	char json[2048];
 	UInt32 size;
 	KprMessage message = NULL;
 	char* authority = NULL;
 	bailIfError(KprZeroconfServiceNewAuthority(service->type, &authority));
	if (alive) {
		snprintf(url, sizeof(url), kKPRZeroconfKinomaDiscoverURL, self->authority);
		snprintf(json, sizeof(json), kKPRZeroconfKinomaDiscoverJSON, authority, service->name, service->ip, service->port);
	}
	else {
		snprintf(url, sizeof(url), kKPRZeroconfKinomaForgetURL, self->authority);
		snprintf(json, sizeof(json), kKPRZeroconfKinomaForgetJSON, authority, service->name);
	}
 	size = FskStrLen(json);
 	bailIfError(KprMessageNew(&message, url));
 	bailIfError(KprMessageSetRequestBody(message, json, size));
 	FskStrNumToStr(size, id, sizeof(id));
 	bailIfError(KprMessageSetRequestHeader(message, kFskStrContentLength, id));
 	bailIfError(KprMessageSetRequestHeader(message, kFskStrContentType, "application/json"));
 	KprMessageInvoke(message, NULL, NULL, NULL);
  	FskMemPtrDispose(authority);
	return;
 bail:
	KprMessageDispose(message);
  	FskMemPtrDispose(authority);
 }
Esempio n. 2
0
void KPRLibrarySniffPodcast(xsMachine *the)
{
    KprMessage message;
    KprFunctionTarget target;
    xsThrowIfFskErr(KprMessageNew(&message, xsToString(xsArg(1))));
    xsThrowIfFskErr(KprMessageSetRequestHeader(message, "Range", "bytes=0-4095"));
    xsThrowIfFskErr(KprFunctionTargetNew(&target, the, &xsArg(2)));
    xsThrowIfFskErr(KprMessageInvoke(message, KPRLibrarySniffPodcastComplete, KprFunctionTargetDispose, target));
}
Esempio n. 3
0
FskErr KprLibrarySessionRedirect(KprLibrarySession session)
{
    FskErr err = kFskErrNone;
    KprMessage message;
    bailIfError(KprMessageNew(&message, session->url));
    KprMessageInvoke(message, KprLibrarySessionRedirectCallback, NULL, session->request);
    err = kFskErrNeedMoreTime;
bail:
    return err;
}
Esempio n. 4
0
void KprNetworkInterfaceRemove(int ip)
{
	char ipString[16];
	char buffer[64];
	KprMessage message = NULL;
	FskNetIPandPortToString(ip, 0, ipString);
	FskDebugStr("ADD INTERFACE %s", ipString);
	sprintf(buffer, "xkpr:///network/interface/remove?ip=%s", ipString);
	KprMessageNew(&message, buffer);
	if (message) KprMessageNotify(message);
}
Esempio n. 5
0
void KPR_Message(xsMachine* the)
{
	xsStringValue url = NULL;
	KprMessage self = NULL;
	xsTry {
		xsThrowIfFskErr(KprMessageURL(xsGetContext(the), xsToString(xsArg(0)), &url));
		xsThrowIfFskErr(KprMessageNew(&self, url));
		xsSetHostData(xsThis, self);
		FskInstrumentedItemSendMessageDebug(self, kprInstrumentedMessageConstruct, self);
		self->usage++; // host
		FskMemPtrDispose(url);
	}
	xsCatch {
		FskMemPtrDispose(url);
		xsThrow(xsException);
	}
}