Пример #1
0
static FskErr KprWebSocketEndpointSendRawFrame(KprWebSocketEndpoint self, UInt8 opcode, void *payload, UInt32 length)
{
	FskErr err = kFskErrNone;
	void *frame = NULL;
	UInt32 frameLength;
	
	if (self->closeWasSent) return kFskErrBadState;
	if (self->writer == NULL) return kFskErrBadState;

	bailIfError(KprWebSocketEndpointCreateFrame(true, opcode, self->doMask, payload, length, &frame, &frameLength));
	KprSocketWriterSendBytes(self->writer, frame, frameLength);
	
bail:
	if (frame) FskMemPtrDispose(frame);
	return err;
}
Пример #2
0
static FskErr KprWebSocketEndpointSendRawFrame(KprWebSocketEndpoint self, UInt8 opcode, void *payload, UInt32 length)
{
	FskErr err = kFskErrNone;
	void *frame = NULL;
	UInt32 frameLength;

	if (self->state == kKprWebSocketStateConnecting) return kFskErrBadState;
	if (self->closeWasSent || self->writer == NULL) {
		CALLBACK(errorCallback)(self, kFskErrConnectionClosed, "endpoint closed", self->refcon);
		return kFskErrNone;
	}

	bailIfError(KprWebSocketEndpointCreateFrame(true, opcode, self->doMask, payload, length, &frame, &frameLength));
	KprSocketWriterSendBytes(self->writer, frame, frameLength);
	
bail:
	if (frame) FskMemPtrDispose(frame);
	return err;
}