Example #1
0
FskErr KprSocketConnect(KprSocket self, const char *host, int port)
{
	FskErr err = kFskErrNone;
	long flags = 0;

	if (self->mode != kKprSocketModeUndefined) return kFskErrBadState;

	self->host = FskStrDoCopy(host);
	bailIfNULL(self->host);

	self->port = port;
	self->mode = kKprSocketModeTCP;
	if (self->secure) {
		FskSSLOption ssl;

		flags |= kConnectFlagsSSLConnection;

		FskNetSSLOptionInitialize(self->host, self->port, flags, kFskNetSocketDefaultPriority, &ssl);

		ssl.protocolVersion = self->tlsProtocolVersion;
		ssl.applicationProtocols = self->applicationProtocols;
		bailIfError(FskNetConnectToSecureHost(&ssl, self->certs, KprSocketOnConnect, self));
	} else {
		bailIfError(FskNetConnectToHost((char *) self->host, self->port, false, KprSocketOnConnect, self, flags, NULL, "KprSocketTCP"));
	}

bail:
	if (err) {
		KprSocketCleanup(self);
	}
	return err;
}
Example #2
0
FskErr KprMQTTClientReconnect(KprMQTTClient self)
{
	FskErr err = kFskErrNone;
	long flags = 0;

	if (self->state != kKprMQTTStateDisconnected || self->host == NULL) {
		return kFskErrBadState;
	}

	self->state = kKprMQTTStateConnecting;
	bailIfError(FskNetConnectToHost(self->host, self->port, false, KprMQTTClientOnConnect, self, flags, NULL, "MQTT"));

bail:
	if (err) KprMQTTClientForceClose(self);
	return err;
}
static void KprWebSocketEndpointStartConnect(KprWebSocketEndpoint self)
{
	FskErr err = kFskErrNone;
	int port = 80;
	long flags = 0;
	
	if (self->parts->port) port = self->parts->port;
	
	if (self->isSecure) {
		if (port == 80) port = 443;
		flags |= kConnectFlagsSSLConnection;
	}
	
	bailIfError(FskNetConnectToHost(self->parts->host, port, false, KprWebSocketEndpointConnectCallback, self, flags, NULL, "WebSocket"));
	
bail:
	if (err) {
		FskDebugStr("ERROR: %d\n", err);
		CALLBACK(errorCallback)(self, err, "cannot start connection", self->refcon);
	}
}