Speedify SDK for Desktop/Embedded 17.2.1
Loading...
Searching...
No Matches
types.h
Go to the documentation of this file.
1// Copyright 2019, Connectify, Inc. All Rights Reserved
2#pragma once
3
4#include "sdkdefines.h"
5#include <stdbool.h>
6#include <stdint.h>
7#include <time.h>
8#include "../cJSON.h"
9
10#ifdef _WIN32
11#include <ws2tcpip.h>
12#else
13#include <netinet/ip.h>
14#include <arpa/inet.h>
15#endif
16
30
31
35
36
40
44
45
62
65SpeedifySDK_EXTERN typedef struct {
68 uint16_t major;
71 uint16_t minor;
74 uint16_t bugfix;
77 uint16_t build;
81SpeedifySDK_EXPORT const char* SpeedifySDK_Version_toString(SpeedifySDK_Version state);
82
83
117SpeedifySDK_EXPORT const char* SpeedifySDK_State_toString(SpeedifySDK_State state);
118
156
157
213
223
236
237
238
255
275
279#define AA_ACTIVATE_OR_PURCHASE_LICENCE AA_ACTIVATE_OR_PURCHASE_LICENSE
280
284
287SpeedifySDK_EXTERN typedef struct {
299 int64_t bytesUsed;
302 bool isTeam;
308 int32_t minutesUsed;
314 struct tm dataPeriodEnd;
317 struct tm subscriptionEndDate;
322
323
342
377
404
407SpeedifySDK_EXTERN typedef struct {
413 int64_t usageDaily;
430
444/* \brief String representation of a SpeedifySDK_ConnectionDirectionalMode
445 * @since 14.8.7 */
447
458
521
522
539
555SpeedifySDK_EXPORT const char* SpeedifySDK_BondingMode_toString(SpeedifySDK_BondingMode priority);
556
584SpeedifySDK_EXPORT const char* SpeedifySDK_TransportMode_toString(SpeedifySDK_TransportMode priority);
585
632SpeedifySDK_EXPORT const char* SpeedifySDK_TcpCca_toString(SpeedifySDK_TcpCca cca);
633
649SpeedifySDK_EXPORT const char* SpeedifySDK_PortProtocol_toString(SpeedifySDK_PortProtocol portProto);
650
655SpeedifySDK_EXTERN typedef struct {
660
663SpeedifySDK_EXTERN typedef struct {
669 uint16_t port;
672 uint16_t portRangeEnd;
674
678
679
682SpeedifySDK_EXTERN typedef struct {
690
693SpeedifySDK_EXTERN typedef struct {
701
704SpeedifySDK_EXTERN typedef struct {
712
715SpeedifySDK_EXTERN typedef struct {
721 uint16_t sockets;
723
726SpeedifySDK_EXTERN typedef struct {
729 int32_t upload;
732 int32_t download;
734
752SpeedifySDK_EXPORT const char* SpeedifySDK_Driver_toString(SpeedifySDK_Driver driver);
753
756SpeedifySDK_EXTERN typedef struct {
782 uint16_t portsCount;
841 uint32_t maxRedundant;
862 uint32_t fixedDelay;
877
879
883
937
1085
1088SpeedifySDK_EXTERN typedef struct {
1091 uint64_t time;
1094 uint16_t count;
1104
1107SpeedifySDK_EXTERN typedef struct {
1110 uint64_t packetsIn;
1113 uint64_t packetsOut;
1116 uint64_t bytesIn;
1119 uint64_t bytesOut;
1122 uint64_t bufferWaits;
1125 uint64_t packetWaits;
1128 uint64_t readQueue;
1133
1136SpeedifySDK_EXTERN typedef struct {
1139 uint64_t packetsIn;
1142 uint64_t packetsOut;
1145 uint64_t bytesIn;
1148 uint64_t bytesOut;
1151 uint64_t retries;
1153
1156SpeedifySDK_EXTERN typedef struct {
1159 uint64_t detections;
1162 uint64_t successes;
1164
1167SpeedifySDK_EXTERN typedef struct {
1182 uint64_t uniqueSaves;
1184
1187SpeedifySDK_EXTERN typedef struct {
1190 uint8_t dscp;
1196 uint64_t bytesSent;
1199 double sendBps;
1216
1227
1297
1308
1309
1387SpeedifySDK_EXPORT const char* SpeedifySDK_ErrorType_toString(SpeedifySDK_ErrorType error);
1388
1391SpeedifySDK_EXTERN typedef enum {
1401SpeedifySDK_EXPORT const char* SpeedifySDK_ProxyMatchMode_toString(SpeedifySDK_ProxyMatchMode matchMode);
1402
1406
1429
1476
1477
1481
1513
1529SpeedifySDK_EXPORT const char* SpeedifySDK_FirewallMode_toString(SpeedifySDK_FirewallMode matchMode);
1530
1534
1569
1570
1573SpeedifySDK_EXTERN typedef enum {
1584 SH_GOOD
1589
1663
1664
1694
1695
1696
1756
1774
1775
1792SpeedifySDK_EXPORT const char* SpeedifySDK_LogLevel_toString(SpeedifySDK_LogLevel level);
1793
1796SpeedifySDK_EXTERN typedef struct {
1802 int32_t fileSize;
1814 int32_t totalFiles;
1822
1823
1826SpeedifySDK_EXTERN typedef struct {
1838
1892
1900SpeedifySDK_EXPORT const char*
1902
1905SpeedifySDK_EXTERN typedef enum {
1909
1913
1960
1970
1973SpeedifySDK_EXTERN typedef enum {
1984
1998
2002
2016
2020
2053
2067
2071
2106
2110
2113SpeedifySDK_EXTERN typedef struct {
2116 uint64_t bytesToday;
2125 uint64_t bytesTotal;
2127
2128
2145
2174
2175
2191SpeedifySDK_EXPORT const char* SpeedifySDK_DSCPReplication_toString(SpeedifySDK_DSCPReplication replication);
2192
2195SpeedifySDK_EXTERN typedef uint8_t SpeedifySDK_DscpValue;
2196
2212SpeedifySDK_EXPORT const char* SpeedifySDK_DSCPPriority_toString(SpeedifySDK_DSCPPriority priority);
2213
2230
2247
2261
2264SpeedifySDK_EXTERN typedef enum {
2277SpeedifySDK_EXPORT const char* SpeedifySDK_DeviceRole_toString(SpeedifySDK_DeviceRole role);
2278
2293
2296SpeedifySDK_EXTERN typedef struct {
2305 uint64_t lastSeen;
#define SPEEDIFYSDK_MAX_IP_STRING_LENGTH
IP string length.
Definition sdkdefines.h:51
#define SPEEDIFYSDK_MAX_DSCP_QUEUE_LENGTH
Maximum number of DSCP queues.
Definition sdkdefines.h:184
#define SPEEDIFYSDK_MAX_ISP_ACTION_ID
Maximum length of an ISP-stats action id string.
Definition sdkdefines.h:220
#define SPEEDIFYSDK_MAX_DOWNSTREAM_SUBNETS
Maximum number of subnets supported.
Definition sdkdefines.h:48
#define SPEEDIFYSDK_MAX_FIREWALL_PORTS
Maximum number of ports returned.
Definition sdkdefines.h:84
#define SPEEDIFYSDK_MAX_DATE_TIME_LENGTH
Maximum length of the date and time string.
Definition sdkdefines.h:205
#define SPEEDIFYSDK_MAX_STATS_PERIODS
Maximum number of stat periods requested.
Definition sdkdefines.h:105
#define SPEEDIFYSDK_MAX_WATCHLIST_DOMAINS
Maximum number of domains in a watchlist item.
Definition sdkdefines.h:93
#define SPEEDIFYSDK_MAX_EXTENDED_DISCONNECT_REASON_LENGTH
Maximum length of the caller-supplied extended disconnect reason string.
Definition sdkdefines.h:214
#define SPEEDIFYSDK_MAX_PROXY_PORTS
Maximum number of ports returned.
Definition sdkdefines.h:75
#define SPEEDIFYSDK_MAX_IP_COUNT
Maximum number of IPs on a server.
Definition sdkdefines.h:60
#define SPEEDIFYSDK_MAX_STREAM_RESOLUTION_LENGTH
Maximum streaming resolution length.
Definition sdkdefines.h:138
#define SPEEDIFYSDK_MAX_DATACENTER_LENGTH
Length of the data center field.
Definition sdkdefines.h:167
#define SPEEDIFYSDK_MAX_STREAMING_PORTS
Maximum number of ports returned.
Definition sdkdefines.h:129
#define SPEEDIFYSDK_MAX_NETWORKSHARING_DISPLAY_NAME_LENGTH
Maxmimum size a device's display name for pair and share discovery and advertisement.
Definition sdkdefines.h:148
#define SPEEDIFYSDK_MAX_WATCHLIST_TITLE
Maximum title length of domain watchlist item.
Definition sdkdefines.h:90
#define SPEEDIFYSDK_MAX_STREAMING_IPS
Maximum number of IPs returned.
Definition sdkdefines.h:126
#define SPEEDIFYSDK_MAX_PEP_DSCP_VALUES
Maximum number of DSCP values returned.
Definition sdkdefines.h:202
#define SPEEDIFYSDK_MAX_ERROR_STRING
Length of an error message.
Definition sdkdefines.h:12
#define SPEEDIFYSDK_MAX_DEVICE_UUID_LENGTH
Length of the device UUID field.
Definition sdkdefines.h:211
#define SPEEDIFYSDK_MAX_DNS_COUNT
Maximum number of DNS addresses to configure.
Definition sdkdefines.h:63
#define SPEEDIFYSDK_MAX_PACKET_POOL_NAME_LENGTH
Maximum length of the packet pool size string.
Definition sdkdefines.h:181
#define SPEEDIFYSDK_MAX_DNS_STRING_LENGTH
DNS string length.
Definition sdkdefines.h:54
#define SPEEDIFYSDK_NETWORKSHARING_PEER_UUID_LENGTH
Length of the peer UUID field.
Definition sdkdefines.h:157
#define SPEEDIFYSDK_MAX_APP_NAME_LENGTH
Maximum SDK App name length.
Definition sdkdefines.h:141
#define SPEEDIFYSDK_MAX_LANGUAGE_LEN
Language id length.
Definition sdkdefines.h:132
#define SPEEDIFYSDK_MAX_DISPLAY_NAME_LEN
Length of the server display-name override field, in bytes. Display names are limited to 64 Unicode c...
Definition sdkdefines.h:172
#define SPEEDIFYSDK_MAX_APP_STRING_LENGTH
Application path or name length, in bytes.
Definition sdkdefines.h:24
#define SPEEDIFYSDK_MAX_EMAIL
Email length.
Definition sdkdefines.h:36
#define SPEEDIFYSDK_MAX_STREAMS
Maximum number of streams returns in a stats result.
Definition sdkdefines.h:96
#define SPEEDIFYSDK_MAX_ISP_TYPE
ISP type string length.
Definition sdkdefines.h:42
#define SPEEDIFYSDK_MAX_WATCHLIST_ITEMS
Maximum number of domain watchlist items.
Definition sdkdefines.h:87
#define SPEEDIFYSDK_MAX_ADAPTER_NAME
Adapter name length.
Definition sdkdefines.h:39
#define SPEEDIFYSDK_MAX_FIREWALL_DOMAINS
Maximum number of domains returned.
Definition sdkdefines.h:78
#define SPEEDIFYSDK_MAX_STREAM_NAME_LEN
Maximum length of SpeedifySDK_StreamStats name field.
Definition sdkdefines.h:99
#define SPEEDIFYSDK_MAX_PROTOCOL_LENGTH
Length of the protocol field.
Definition sdkdefines.h:178
#define SPEEDIFYSDK_MAX_PROXY_DOMAINS
Maximum number of domains returned.
Definition sdkdefines.h:69
#define SPEEDIFYSDK_MAX_DOMAIN_LENGTH
Maximum length of domain to proxy.
Definition sdkdefines.h:66
#define SPEEDIFYSDK_MAX_SYSTEMDATA_STRING_LENGTH
Maximum length of system data string fields.
Definition sdkdefines.h:208
#define SPEEDIFYSDK_MAX_ADAPTERS
Simultaneous adapters supported.
Definition sdkdefines.h:15
#define SPEEDIFYSDK_MAX_CITY_LEN
City id.
Definition sdkdefines.h:30
#define SPEEDIFYSDK_MAX_PROXY_IPS
Maximum number of IPs returned.
Definition sdkdefines.h:72
#define SPEEDIFYSDK_MAX_FIREWALL_IPS
Maximum number of IPs returned.
Definition sdkdefines.h:81
#define SPEEDIFYSDK_MAX_HOSTNAME_LENGTH
Length of the hostname field.
Definition sdkdefines.h:175
#define SPEEDIFYSDK_MAX_FORWARD_PORTS
Forwarded ports supported.
Definition sdkdefines.h:45
#define SPEEDIFYSDK_MAX_STREAMING_DOMAINS
Maximum number of domains returned.
Definition sdkdefines.h:123
#define SPEEDIFYSDK_MAX_COUNTRY_LEN
Country id length.
Definition sdkdefines.h:27
#define SPEEDIFYSDK_MAX_NETWORKSHARING_CONNECT_CODE_LENGTH
Maxmimum size of network sharing connect code.
Definition sdkdefines.h:151
#define SPEEDIFYSDK_MAX_DIRECTORY_DOMAIN
Length of directory server domain.
Definition sdkdefines.h:57
const char * SpeedifySDK_ServerInformation_GetCityName(SpeedifySDK_ServerInformation server)
String representation of a SpeedifySDK_ServerInformation's city.
const char * SpeedifySDK_State_toString(SpeedifySDK_State state)
String representation of a SpeedifySDK_State.
SpeedifySDK_DisconnectReason
Reason for a disconnect.
Definition types.h:1699
SpeedifySDK_TransportMode
Transport Protocol modes.
Definition types.h:559
const char * SpeedifySDK_ConnectionPriority_toString(SpeedifySDK_ConnectionPriority priority)
String representation of a SpeedifySDK_ConnectionPriority.
SpeedifySDK_ProtocolPortPair SpeedifySDK_FirewallPort
A firewall port.
Definition types.h:1533
SpeedifySDK_NetworkType
Type of network adapter.
Definition types.h:345
const char * SpeedifySDK_ServerInformation_GetCountryName(SpeedifySDK_ServerInformation server)
String representation of a SpeedifySDK_ServerInformation's country.
const char * SpeedifySDK_ServerInformation_toString(SpeedifySDK_ServerInformation server)
String representation of a SpeedifySDK_ServerInformation.
SpeedifySDK_ErrorType
Type classification for errors.
Definition types.h:1312
const char * SpeedifySDK_TcpCca_toString(SpeedifySDK_TcpCca cca)
String representation of a SpeedifySDK_TcpCca.
char SpeedifySDK_IPAddressString[SPEEDIFYSDK_MAX_IP_STRING_LENGTH]
String representation of an IP address.
Definition types.h:26
SpeedifySDK_StreamHealth
Stream health indicator.
Definition types.h:1573
const char * SpeedifySDK_ConnectionState_toString(SpeedifySDK_ConnectionState state)
String representation of a SpeedifySDK_ConnectionState.
const char * SpeedifySDK_ServerInformationDetailed_toString(SpeedifySDK_ServerInformationDetailed server)
String representation of a SpeedifySDK_ServerInformationDetailed.
SpeedifySDK_ProtocolPortPair SpeedifySDK_LocalProxyPort
A proxied port.
Definition types.h:1405
const char * SpeedifySDK_LogLevel_toString(SpeedifySDK_LogLevel level)
SpeedifySDK_TcpCca
Kernel TCP congestion control algorithm preference for transport sockets.
Definition types.h:590
SpeedifySDK_AccountAction
Actions that should be taken on an account.
Definition types.h:258
SpeedifySDK_BondingMode
Mode of the VPN tunnel.
Definition types.h:542
SpeedifySDK_ProtocolPortPair SpeedifySDK_ForwardedPort
A forwarded port.
Definition types.h:677
SpeedifySDK_PortProtocol
Protocol for ports.
Definition types.h:636
const char * SpeedifySDK_Version_toString(SpeedifySDK_Version state)
String representation of a SpeedifySDK_Version.
SpeedifySDK_ProtocolPortPair SpeedifySDK_StreamingPort
A streaming port.
Definition types.h:1480
const char * SpeedifySDK_ServerInformationDetailed_GetCountryName(SpeedifySDK_ServerInformationDetailed server)
String representation of a SpeedifySDK_ServerInformationDetailed's country.
const char * SpeedifySDK_AutoConnectMethod_toString(SpeedifySDK_AutoConnectMethod method)
String representation of a SpeedifySDK_AutoConnectMethod.
SpeedifySDK_ServerInformation SpeedifySDK_ServerInformationDetailed
Information about a.
Definition types.h:212
const char * SpeedifySDK_NetworkType_toString(SpeedifySDK_NetworkType type)
String representation of a SpeedifySDK_NetworkType.
SpeedifySDK_ConnectionDirectionalMode
Directional mode of a connection.
Definition types.h:433
char SpeedifySDK_HostnameString[SPEEDIFYSDK_MAX_HOSTNAME_LENGTH]
String representation of an IP address.
Definition types.h:882
const char * SpeedifySDK_ServerInformationDetailed_GetCityName(SpeedifySDK_ServerInformationDetailed server)
String representation of a SpeedifySDK_ServerInformationDetailed's city.
const char * SpeedifySDK_ConnectionDirectionalMode_toString(SpeedifySDK_ConnectionDirectionalMode mode)
void SpeedifySDK_InitializeCreateSettings(SpeedifySDK_CreateSettings *settings)
Initialize an SpeedifySDK_CreateSettings object to defaults.
const char * SpeedifySDK_FirewallMode_toString(SpeedifySDK_FirewallMode matchMode)
String representation of a SpeedifySDK_ProxyMatchMode.
const char * SpeedifySDK_ErrorType_toString(SpeedifySDK_ErrorType error)
String representation of a SpeedifySDK_ErrorType.
SpeedifySDK_FirewallMode
How firewall treats matches.
Definition types.h:1516
SpeedifySDK_State
State of the VPN.
Definition types.h:86
char SpeedifySDK_DNSAddressString[SPEEDIFYSDK_MAX_DNS_STRING_LENGTH]
String representation of a DNS address.
Definition types.h:29
SpeedifySDK_ConnectionPriority
How a connection should be combined.
Definition types.h:380
SpeedifySDK_AutoConnectMethod
Methods for automatic server selection.
Definition types.h:121
const char * SpeedifySDK_Driver_toString(SpeedifySDK_Driver driver)
String representation of a SpeedifySDK_Driver.
SpeedifySDK_ConnectionState
State of Speedify on a given connection (network adapter).
Definition types.h:328
const char * SpeedifySDK_DisconnectReason_toString(SpeedifySDK_DisconnectReason reason)
SpeedifySDK_ProxyMatchMode
How local proxy treats matches.
Definition types.h:1391
char SpeedifySDK_AppNameString[SPEEDIFYSDK_MAX_APP_NAME_LENGTH]
String representation of a SDK App name.
Definition types.h:39
const char * SpeedifySDK_AccountAction_toString(SpeedifySDK_AccountAction action)
String representation of a SpeedifySDK_AccountAction.
const char * SpeedifySDK_TransportMode_toString(SpeedifySDK_TransportMode priority)
String representation of a SpeedifySDK_TransportMode.
const char * SpeedifySDK_BondingMode_toString(SpeedifySDK_BondingMode priority)
String representation of a SpeedifySDK_BondingMode.
SpeedifySDK_SafeBrowsingError
Safe browsing errors.
Definition types.h:1841
SpeedifySDK_LogLevel
Log levels in the SDK.
Definition types.h:1778
SpeedifySDK_Driver
Windows tunnel-adapter driver selection.
Definition types.h:745
char SpeedifySDK_DateTimeString[SPEEDIFYSDK_MAX_DATE_TIME_LENGTH]
String representation of a date and time.
Definition types.h:43
const char * SpeedifySDK_AccountPaymentType_toString(SpeedifySDK_AccountPaymentType paymentType)
String representation of a SpeedifySDK_AccountPaymentType.
const char * SpeedifySDK_PortProtocol_toString(SpeedifySDK_PortProtocol portProto)
String representation of a SpeedifySDK_PortProtocol.
const char * SpeedifySDK_ProxyMatchMode_toString(SpeedifySDK_ProxyMatchMode matchMode)
String representation of a SpeedifySDK_ProxyMatchMode.
const char * SpeedifySDK_StreamHealth_toString(SpeedifySDK_StreamHealth health)
String representation of a SpeedifySDK_StreamHealth.
SpeedifySDK_AccountPaymentType
Information on an account's payment type.
Definition types.h:241
char SpeedifySDK_DomainString[SPEEDIFYSDK_MAX_DOMAIN_LENGTH]
String representation of a domain or hostname.
Definition types.h:34
@ DR_UPDATE
Software update.
Definition types.h:1714
@ DR_SETTINGCHANGERECONNECT
Automatic reconnect from setting change.
Definition types.h:1738
@ DR_CONNECTIVITY
No network connectivity.
Definition types.h:1705
@ DR_REBOOT
Device reboot.
Definition types.h:1711
@ DR_NONE
Nothing to report.
Definition types.h:1753
@ DR_TORRENT
Automatic disconnect from torrent activity.
Definition types.h:1726
@ DR_OVERQUOTA
Account out of data.
Definition types.h:1747
@ DR_UNKNOWN
Unknown reason.
Definition types.h:1702
@ DR_TUNNELTIMEOUT
VPN tunnel blocked.
Definition types.h:1744
@ DR_USERINITIATED
User initiated.
Definition types.h:1723
@ DR_SERVICESTOP
Daemon stopped cleanly.
Definition types.h:1729
@ DR_SAFENETWORK
On a safe network, determined by safe browsing.
Definition types.h:1750
@ DR_DNSTIMEOUT
DNS timeout.
Definition types.h:1741
@ DR_SLEEP
Device sleep.
Definition types.h:1720
@ DR_STARTTIMEOUT
Timeout initializing the connection.
Definition types.h:1732
@ DR_INACTIVETIMEOUT
Tunnel timeout.
Definition types.h:1735
@ DR_AIRPLANE
Airplane mode activated, or no networks available.
Definition types.h:1708
@ DR_CRASH
Daemon crash.
Definition types.h:1717
@ TMODE_PROXY
Proxy-only. This is not valid for SpeedifySDK_SetConnectionTransportMode.
Definition types.h:577
@ TMODE_SHARE
shared traffic. This is not valid for SpeedifySDK_SetConnectionTransportMode.
Definition types.h:580
@ TMODE_AUTO
Intelligently choose between available protocols.
Definition types.h:568
@ TMODE_TCP
Always use TCP.
Definition types.h:562
@ TMODE_UDP
Always use UDP.
Definition types.h:565
@ TMODE_MULTITCP
Always use Multi TCP.
Definition types.h:574
@ TMODE_HTTPS
Always use websocket.
Definition types.h:571
@ NETWORKTYPE_ETHERNET
Ethernet.
Definition types.h:351
@ NETWORKTYPE_VPN
VPN.
Definition types.h:357
@ NETWORKTYPE_NETWORKSHARE_CLIENT
Network Share Client.
Definition types.h:366
@ NETWORKTYPE_BLUETOOTH
Bluetooth.
Definition types.h:363
@ NETWORKTYPE_LOOPBACK
Loopback.
Definition types.h:360
@ NETWORKTYPE_WIFI
Wi-Fi.
Definition types.h:348
@ NETWORKTYPE_CELLULAR
Cellular.
Definition types.h:354
@ NETWORKTYPE_UNKNOWN
Unknown.
Definition types.h:372
@ NETWORKTYPE_NETWORKSHARE_HOST
Network Share Host.
Definition types.h:369
@ ET_SDK_CALLBACK_REQUIRED
A callback is required for this call.
Definition types.h:1366
@ ET_SDK_ASYNC
Result is an async call SDK. Not an error.
Definition types.h:1354
@ ET_SDK_SETTING_LOCKED_TEAM
Setting locked by server configuration.
Definition types.h:1379
@ ET_VPN_ADAPTER
Error opening or configuring the VPN adapter.
Definition types.h:1339
@ ET_NETWORK
Network related error.
Definition types.h:1318
@ ET_RATELIMITED
Too many requests are being made by this device.
Definition types.h:1333
@ ET_SDK_TIMEOUT
Timeout waiting for result.
Definition types.h:1360
@ ET_CREDENTIAL
Invalid credentials.
Definition types.h:1324
@ ET_SDK_NO_CONNECTION
No connection to the Speedify daemon.
Definition types.h:1372
@ ET_DIRECTORY
Directory list was empty.
Definition types.h:1327
@ ET_SDK_PLATFORM_NO_SUPPORT
Platform does not support this call.
Definition types.h:1369
@ ET_SDK_SYNC_FROM_ASYNC
Synchronous call used from within asynchronous callback. Not supported.
Definition types.h:1375
@ ET_SDK_INVALID_ARGUMENT
An invalid argument was supplied.
Definition types.h:1363
@ ET_TOKEN_EXPIRED
The provided OAUTH token is expired.
Definition types.h:1336
@ ET_DEVICE_LIMIT
The device limit has been reached.
Definition types.h:1342
@ ET_LOCK_ACCOUNT
Setting locked by account configuration.
Definition types.h:1348
@ ET_INVALID_ARGUMENT
An invalid argument was supplied.
Definition types.h:1351
@ ET_SERVER
An error occurred on the server.
Definition types.h:1321
@ ET_OK
No error.
Definition types.h:1315
@ ET_ACCOUNT
An issue with the account being used.
Definition types.h:1330
@ ET_LOCK_TEAM
Setting locked by server configuration.
Definition types.h:1345
@ ET_SDK_ERROR
An error in the SDK.
Definition types.h:1357
@ ET_SDK_SETTING_LOCKED_ACCOUNT
Setting locked by account configuration.
Definition types.h:1383
@ SH_STOPPED
Stream has stopped.
Definition types.h:1578
@ SH_POOR
Stream may be encountering errors.
Definition types.h:1581
@ SH_GOOD
Stream is in good health.
Definition types.h:1584
@ CCA_BBR
Explicitly request BBR. On platforms or kernels where BBR is unavailable, a per-socket warning is log...
Definition types.h:597
@ CCA_HYBLA
Hybla. Tuned for high-RTT paths such as satellite.
Definition types.h:616
@ CCA_BBR3
BBRv3 under the literal name "bbr3". BBRv3 trees generally register BBRv3 as CCA_BBR.
Definition types.h:607
@ CCA_AUTO
Let Speedify pick (today: BBR where available, otherwise system default).
Definition types.h:592
@ CCA_HTCP
H-TCP. Tuned for high-bandwidth long-delay paths.
Definition types.h:613
@ CCA_WESTWOOD
TCP Westwood+. Tuned for lossy wireless links.
Definition types.h:628
@ CCA_BBR1
BBRv1 under the literal name "bbr1". Mainline registers BBRv1 as CCA_BBR.
Definition types.h:600
@ CCA_VEGAS
Vegas. Delay-based.
Definition types.h:625
@ CCA_ILLINOIS
Illinois. Tuned for high bandwidth-delay products.
Definition types.h:619
@ CCA_SYSTEM
Do not call setsockopt(TCP_CONGESTION) — keep the kernel default.
Definition types.h:594
@ CCA_RENO
The classic, generally available Reno TCP CCA.
Definition types.h:622
@ CCA_BBR2
BBRv2, as "bbr2".
Definition types.h:603
@ CCA_CUBIC
The CUBIC TCP CCA.
Definition types.h:610
@ AA_ACTIVATE
No saved credentials/not previously activated. Activate the account.
Definition types.h:270
@ AA_NONE
No action needed.
Definition types.h:261
@ AA_ACTIVATE_OR_PURCHASE_LICENSE
Current account does not have a license usable on this device. Activate or purchase a license.
Definition types.h:273
@ AA_RETRY_LOGIN
A (possibly temporary) error occurred. Retry login.
Definition types.h:264
@ AA_CONNECT_INTERNET_AND_RETRY_LOGIN
Connect to the internet and retry login.
Definition types.h:267
@ BMODE_SPEED
Combine for speed.
Definition types.h:545
@ BMODE_STREAMING
Optimize for streaming.
Definition types.h:551
@ BMODE_REDUNDANT
Combine for reliability.
Definition types.h:548
@ PPROTO_ICMP
ICMP.
Definition types.h:645
@ PPROTO_TCP
TCP.
Definition types.h:639
@ PPROTO_UDP
UDP.
Definition types.h:642
@ CDM_STRICT_OFF
Always off.
Definition types.h:439
@ CDM_BACKUP_OFF
Off when not needed.
Definition types.h:442
@ CDM_ON
Always on.
Definition types.h:436
@ FWM_DENYLIST
Matches are dropped, all others are allowed through the VPN.
Definition types.h:1525
@ FWM_ALLOWLIST
Matches are allowed through the VPN, all others are dropped.
Definition types.h:1522
@ FWM_OFF
Firewall is disabled.
Definition types.h:1519
@ STATE_CONNECTING
Transitional state as we connect to speed server.
Definition types.h:101
@ STATE_DISCONNECTING
Transitional state as we disconnect from speed server.
Definition types.h:104
@ STATE_AUTO_CONNECTING
Transitional state as system automatically connects us to speed server.
Definition types.h:98
@ STATE_LOGGED_IN
Fully authenticated, but not using a speed server. Ready to connect()
Definition types.h:95
@ STATE_CONNECTED
Really connected to a speed server.
Definition types.h:107
@ STATE_UNKNOWN
Unable to connect to the local Speedify daemon.
Definition types.h:113
@ STATE_LOGGED_OUT
Completely disconnected and unathenticated. Need to login() to do anything.
Definition types.h:89
@ STATE_LOGGING_IN
Transitional state as we log in.
Definition types.h:92
@ STATE_OVERLIMIT
All available adapters are overlimit, VPN still in connected state.
Definition types.h:110
@ CP_ALWAYS
Always use this connection.
Definition types.h:385
@ CP_BACKUP
Use this connection if others are unavailable.
Definition types.h:393
@ CP_AUTOMATIC
Let Speedify manage the priority.
Definition types.h:399
@ CP_NEVER
Never use this connection.
Definition types.h:396
@ CP_SECONDARY
Use this connection if others are full.
Definition types.h:390
@ ACM_CLOSEST
Closest public or private server to user.
Definition types.h:124
@ ACM_BYSETTING
Connect by automatic connection method.
Definition types.h:139
@ ACM_CLOSESTPRIVATE
Closest private server to user.
Definition types.h:127
@ ACM_P2P
Server that supports P2P/BitTorrent.
Definition types.h:136
@ ACM_PROXY
Local-proxy only connection.
Definition types.h:148
@ ACM_IGNORELAST
Connect using the current selection setting, but choose a different server instance than the one last...
Definition types.h:151
@ ACM_COUNTRYCITYSERVER
By specific country/city/server.
Definition types.h:142
@ ACM_CLOSESTPUBLIC
Closest public server to user.
Definition types.h:130
@ ACM_LAST
Last server connected to.
Definition types.h:133
@ ACM_EXACT
By exact specific country/city/server.
Definition types.h:145
@ CSTATE_DISCONNECTED
Disconnected.
Definition types.h:331
@ CSTATE_CONNECTING
Connecting.
Definition types.h:334
@ CSTATE_CONNECTED
Connected.
Definition types.h:337
@ PMM_DENYLIST
Domains and IP Addresses matched are sent over the VPN, all others are sent over the proxy.
Definition types.h:1397
@ PMM_ALLOWLIST
Domains and IP Addresses matched are sent over the proxy, all others are sent over the VPN.
Definition types.h:1394
@ CUJO_ERR_BAD_FUNCTION_ARGUMENT
Definition types.h:1855
@ CUJO_ERR_PARSE_ERROR
Definition types.h:1856
@ CUJO_ERR_NOT_CONFIGURED
Definition types.h:1845
@ CUJO_ERR_CURL_INIT_FAILURE
Definition types.h:1858
@ CUJO_ERR_CURL_EASY_INIT_FAILURE
Definition types.h:1860
@ CUJO_ERR_NO_ENDPOINT_URL
Definition types.h:1844
@ CUJO_ERR_CURL_HEADER_APPEND_FAILURE
Definition types.h:1862
@ CUJO_ERR_CURL
Definition types.h:1853
@ CUJO_ERR_TIMED_OUT
Fail open error.
Definition types.h:1848
@ CUJO_ERR_INTERRUPTED_EVENT_LOOP
Definition types.h:1876
@ CUJO_OK
Definition types.h:1842
@ CUJO_ERR_JSON_SET_FAILURE
Definition types.h:1864
@ CUJO_ERR_NO_MEMORY
Definition types.h:1854
@ CUJO_ERR_HTTP_STATUS
Definition types.h:1851
@ CUJO_ERR_ALREADY_IN_PROGRESS
Definition types.h:1868
@ CUJO_ERR_INVALID_NSP_TOKEN
Definition types.h:1870
@ CUJO_ERR_RETRIABLE_SERVER_ERROR
Definition types.h:1849
@ CUJO_ERR_ON_PROTECTED_NETWORK
Definition types.h:1872
@ CUJO_ERR_ASYNC_INIT_FAILURE
Definition types.h:1874
@ CUJO_ERR_UV_LOOP_INIT_FAILURE
Definition types.h:1866
@ LL_INFO
Info.
Definition types.h:1784
@ LL_ERROR
Error.
Definition types.h:1790
@ LL_WARN
Warning.
Definition types.h:1787
@ LL_VERBOSE
Verbose.
Definition types.h:1781
@ SpeedifySDK_Driver_Tun
Definition types.h:747
@ SpeedifySDK_Driver_Auto
Definition types.h:746
@ SpeedifySDK_Driver_Tap
Definition types.h:748
@ APT_FREE
Free/unpaid.
Definition types.h:244
@ APT_MONTHLY
Paid, monthly contract.
Definition types.h:247
@ APT_YEARLY
Paid, yearly contract.
Definition types.h:250
Data on an account.
Definition types.h:287
SpeedifySDK_AccountAction action
If any actions should be taken on this account.
Definition types.h:320
SpeedifySDK_AccountPaymentType paymentType
Payment status of this account.
Definition types.h:311
int64_t bytesAvailable
Bytes allowed per data period (typically a month) for this account. -1 for unlimited.
Definition types.h:296
int32_t minutesAvailable
Minutes allowed per data period (typically a month) for this account. -1 for unlimited.
Definition types.h:305
int64_t bytesUsed
Bytes used this data period (typically a month) for this account.
Definition types.h:299
bool isAutoAccount
If this account is an automatically generated account.
Definition types.h:293
int32_t minutesUsed
Minutes used this data period (typically a month) for this account.
Definition types.h:308
bool isTeam
If this user is a teams member.
Definition types.h:302
Information about a network adapter.
Definition types.h:462
SpeedifySDK_ConnectionState state
State of the connection over this adapter.
Definition types.h:474
int64_t rateLimitUploadBps
Upload speed limit, in bits per second. Or zero if unlimited.
Definition types.h:499
int64_t rateLimitDownloadBps
Download speed limit, in bits per second. Or zero if unlimited.
Definition types.h:496
int64_t rateLimit
Upload speed limit, in bits per second. Or zero if unlimited. This is provided for backwards compatib...
Definition types.h:493
SpeedifySDK_NetworkType type
Type of the adapter.
Definition types.h:480
SpeedifySDK_AdapterUsageData dataUsage
Data usage and limit information for this adapter.
Definition types.h:502
bool offline
If this adapter is currently offline.
Definition types.h:477
SpeedifySDK_ConnectionPriority workingPriority
Effective priority of connections over this adapter.
Definition types.h:505
SpeedifySDK_ConnectionDirectionalSettings directionalSettings
Connection direction settings.
Definition types.h:519
SpeedifySDK_ConnectionPriority priority
Priority of connections over this adapter.
Definition types.h:483
cJSON ** ispStats
JSON object containing ISP data, if available The cJSON is valid until the next AdapterData update is...
Definition types.h:516
Information about the data usage and limits of a network adapter.
Definition types.h:407
int64_t usageMonthlyResetDay
Day of the month to reset monthly usage on. 0 for last 30 days.
Definition types.h:419
int64_t usageDaily
Bytes used over this adapter today.
Definition types.h:413
int64_t usageMonthly
Bytes used over this adapter in current month period.
Definition types.h:410
int64_t usageDailyBoost
Extra Bytes allowed over this adapter today. This value resets to 0 every day.
Definition types.h:425
int64_t overlimitRatelimit
Rate limit used when this adapter hits a daily or monthly limit. If 0, this adapter is no longer used...
Definition types.h:428
int64_t usageMonthlyLimit
Bytes allowed over this adapter in current month period. 0 for unlimited.
Definition types.h:416
int64_t usageDailyLimit
Bytes allowed over this adapter in a single day. 0 for unlimited.
Definition types.h:422
Contains stats regarding the captive portal.
Definition types.h:1156
uint64_t successes
Successful captive portal logins.
Definition types.h:1162
uint64_t detections
Captive portal detections.
Definition types.h:1159
Directional settings for a connection.
Definition types.h:450
SpeedifySDK_ConnectionDirectionalMode upload
Upload mode.
Definition types.h:453
SpeedifySDK_ConnectionDirectionalMode download
Download mode.
Definition types.h:456
A grouping of ConnectionStats.
Definition types.h:1088
uint16_t count
how many connections are in this group
Definition types.h:1094
bool isHistoric
true if this group came from a historic stats report; real-time fields such as jitterMs,...
Definition types.h:1102
uint64_t time
timestamp of the connection stats
Definition types.h:1091
Statistics about a connection.
Definition types.h:944
uint32_t numberOfSockets
Number of active sockets for this connection.
Definition types.h:1002
int64_t totalBps
bits per second through this tunnel
Definition types.h:1011
bool uploadCongested
True if the connection is congested in the upload direction.
Definition types.h:1061
int64_t inFlight
bytes currently in flight
Definition types.h:949
double lossReceive
receive loss ratio (0.0-1.0)
Definition types.h:979
uint64_t sendBytes
bytes sent
Definition types.h:1046
float mos
Mean Opinion Score, 1-5.
Definition types.h:1041
double sendEstimateMbps
estimated maximum megabits per second send.
Definition types.h:1023
bool connected
is connected
Definition types.h:957
SpeedifySDK_IPAddressString remoteIp
internet facing ip address of the tunnel.
Definition types.h:1008
bool poorConnection
True if this is a poor connection.
Definition types.h:1083
bool sleeping
is sleeping. Used on Cellular connections to improve battery life.
Definition types.h:960
bool congested
True if the connection is upload or download congested.
Definition types.h:1056
uint64_t receiveBytes
bytes received
Definition types.h:1051
int64_t inFlightWindow
inflight window, bytes
Definition types.h:954
SpeedifySDK_IPAddressString localIp
internet facing ip address of the adapter.
Definition types.h:974
SpeedifySDK_IPAddressString privateIp
local ip address of the adapter.
Definition types.h:993
int64_t latencyMs
latency, milliseconds
Definition types.h:987
int32_t jitterMs
Jitter, in milliseconds.
Definition types.h:1035
bool bondingFiltered
True if bonding is filtered on this connection.
Definition types.h:1071
double receiveEstimateMbps
estimated maximum megabits per second received.
Definition types.h:1029
bool slowConnection
True if this connection is currently slow.
Definition types.h:1078
int64_t sendBps
bits per second sent through this tunnel.
Definition types.h:1014
double lossSend
send loss ratio (0.0-1.0)
Definition types.h:984
int64_t receiveBps
bits per second received through this tunnel.
Definition types.h:1017
bool downloadCongested
True if the connection is congested in the download direction.
Definition types.h:1066
SpeedifySDK_TransportMode protocol
protocol used for the tunnel.
Definition types.h:996
SDK creation settings structure.
Definition types.h:48
SpeedifySDK_IPAddressString ip
IP address of the speedify daemon to connect to.
Definition types.h:54
uint16_t port
Port number of the speedify daemon to connect to.
Definition types.h:57
SpeedifySDK_AppNameString name
Name of the SDK app, used for auto accounts.
Definition types.h:51
DSCP queue configuration.
Definition types.h:2216
SpeedifySDK_DSCPReplication replication
DSCP replication setting.
Definition types.h:2225
uint8_t dscpValue
DSCP value.
Definition types.h:2219
SpeedifySDK_DSCPPriority priority
DSCP priority setting.
Definition types.h:2222
uint8_t retransmissionAttempts
Maximum number of retransmission attempts.
Definition types.h:2228
DSCP settings.
Definition types.h:2233
uint8_t numDscpMonitoringTags
The number of DSCP monitoring tags.
Definition types.h:2239
uint8_t numDscpQueues
The number of DSCP queue configurations.
Definition types.h:2236
Settings for logging in the daemon.
Definition types.h:1796
int32_t fileSize
Size of individual daemon log files, in bytes.
Definition types.h:1802
int32_t totalFiles
Total number of daemon log files to keep over all SDK service instances.
Definition types.h:1814
SpeedifySDK_LogLevel logLevel
Minimim logging level to allow.
Definition types.h:1820
int32_t filesPerDaemon
Number of log files allowed per SDK service instance.
Definition types.h:1808
Directory settings.
Definition types.h:1826
bool enableEsni
If ESNI is enabled for this domain.
Definition types.h:1833
Information about a disconnect event.
Definition types.h:1759
SpeedifySDK_DisconnectReason disconnectReason
Reason for the disconnect.
Definition types.h:1762
int64_t sessionEnd
Time of the disconnect, in seconds since epoch. If 0, there has been no disconnect event to report....
Definition types.h:1766
int64_t sessionLength
Length of the session in seconds.
Definition types.h:1769
Array of DSCP queue stats.
Definition types.h:1219
uint16_t count
the number of dscp queues
Definition types.h:1222
Contains stats for a defined DSCP queue.
Definition types.h:1187
uint64_t bytesSent
bytes sent through this queue
Definition types.h:1196
uint64_t transportBytesReceived
bytes received through this queue on transport connections, includes retransmissions and redundancy
Definition types.h:1205
uint64_t bytesReceived
bytes received through this queue
Definition types.h:1193
uint64_t transportBytesSent
bytes sent through this queue on transport connections, includes retransmissions and redundancy
Definition types.h:1208
double receiveBps
bits per second received through this queue
Definition types.h:1202
uint8_t dscp
dscp value for this queue
Definition types.h:1190
double sendBps
bits per second sent through this queue.
Definition types.h:1199
double transportSendBps
bits per second sent through this queue on transport connections, includes retransmissions and redund...
Definition types.h:1211
double transportReceiveBps
bits per second received through this queue on transport connections, includes retransmissions and re...
Definition types.h:1214
Firewall settings.
Definition types.h:1537
SpeedifySDK_FirewallMode mode
How matches are handled.
Definition types.h:1540
uint16_t portsCount
Number of ports.
Definition types.h:1563
uint16_t ipv4Count
Number of IPv4 addresses.
Definition types.h:1549
uint16_t domainsCount
Number of domains.
Definition types.h:1543
uint16_t ipv6Count
Number of IPv6 addresses.
Definition types.h:1556
Contains stats regarding the packet handler, for use in session stats.
Definition types.h:1136
uint64_t bytesIn
Number of bytes going into packethandler (upload)
Definition types.h:1145
uint64_t retries
Number of packets retries.
Definition types.h:1151
uint64_t bytesOut
Number of bytes leaving packethandler (download)
Definition types.h:1148
uint64_t packetsOut
Number of packets leaving packethandler (download)
Definition types.h:1142
uint64_t packetsIn
Number of packets going into packethandler (upload)
Definition types.h:1139
A single ISP-stats action descriptor advertised by an adapter. The id identifies the action and defin...
Definition types.h:655
Local proxy domain watchlist item.
Definition types.h:1409
uint16_t proxiedDomainsCount
Number of proxied domains.
Definition types.h:1424
bool enabled
If the domains in this watchlist should be added to the local proxy filter.
Definition types.h:1415
uint16_t watchedDomainsCount
Number of watched domains.
Definition types.h:1418
Settings for the local proxy.
Definition types.h:1432
uint16_t portsCount
Number of ports.
Definition types.h:1464
bool domainWatchlistEnabled
Boolean to turn domain watchlist enablement on or off.
Definition types.h:1438
SpeedifySDK_ProxyMatchMode matchMode
How matches are handled.
Definition types.h:1441
bool enabled
If the local proxy should be enabled.
Definition types.h:1435
uint16_t domainsCount
Number of domains.
Definition types.h:1444
uint16_t ipv4Count
Number of IPv4 addresses.
Definition types.h:1450
uint16_t ipv6Count
Number of IPv6 addresses.
Definition types.h:1457
uint16_t domainWatchlistItemsCount
Number of watchlist items.
Definition types.h:1471
Represents a network share peer.
Definition types.h:2148
SpeedifySDK_NetworkSharingDisplayName appName
The application name for this peer.
Definition types.h:2166
bool haveAuthToken
If we have exchanged an auth token with the peer.
Definition types.h:2157
bool autoReconnect
If its peer will be automatically reconnected one seen on the network.
Definition types.h:2154
bool supportsHost
If this peer supports being a host.
Definition types.h:2160
SpeedifySDK_NetworkSharingDisplayName displayName
The public display name for this peer.
Definition types.h:2163
SpeedifySDK_NetworkSharingConnection peerAsHost
Status of the connection to the host peer.
Definition types.h:2172
SpeedifySDK_NetworkSharingConnection peerAsClient
Status of the connection to the client peer.
Definition types.h:2169
SpeedifySDK_NetworkSharingPeerUuid uuid
UUID of the peer.
Definition types.h:2151
Network sharing connection.
Definition types.h:2131
SpeedifySDK_NetworkSharingUsage usage
usage over this connection
Definition types.h:2143
SpeedifySDK_NetworkSharingTunnelStatus tunnelStatus
status of the tunnel connection with this peer
Definition types.h:2137
SpeedifySDK_NetworkSharingPeerStatus peerStatus
status of this pure connection
Definition types.h:2134
bool allowed
If this connection is allowed.
Definition types.h:2140
Network sharing settings.
Definition types.h:2023
SpeedifySDK_NetworkSharingPairRequestBehavior pairRequestBehavior
How pair requests are handled.
Definition types.h:2041
bool alwaysOnDiscovery
If discovery is always active.
Definition types.h:2048
uint64_t hostTunnelRateLimit
host tunnel rate limit in bits per second (0 for unlimited)
Definition types.h:2032
bool sameUserAutoPair
If devices from the same user are automatically paired.
Definition types.h:2044
bool clientEnabled
if network sharing client is enabled
Definition types.h:2026
SpeedifySDK_NetworkSharingConnectCode hostConnectCode
json data used for clients to manually connect to this host
Definition types.h:2035
SpeedifySDK_NetworkSharingDisplayName displayName
The public display name for this device.
Definition types.h:2038
SpeedifySDK_NetworkSharingAutoPairBehavior autoPairBehavior
If devices from the same user and/or team are automatically paired.
Definition types.h:2051
bool hostEnabled
if network sharing host is enabled
Definition types.h:2029
Network sharing usage data.
Definition types.h:2113
uint64_t bytesLastMonth
bytes used this month
Definition types.h:2122
uint64_t bytesToday
bytes used today
Definition types.h:2116
uint64_t bytesLastWeek
bytes used this week
Definition types.h:2119
uint64_t bytesTotal
bytes used total
Definition types.h:2125
Adapter setting for per-connection encryption.
Definition types.h:693
bool encrypted
If encryption is enabled.
Definition types.h:699
Adapter setting for per-connection expose DSCP.
Definition types.h:704
bool exposed
If DSCP is exposed.
Definition types.h:710
Adapter setting for per-connection parallel sockets.
Definition types.h:715
uint16_t sockets
Number of parallel sockets.
Definition types.h:721
Privacy settings.
Definition types.h:886
bool ipLeakProtection
If IP Leak protection is enabled.
Definition types.h:901
bool appAnalytics
If app analytics is enabled.
Definition types.h:931
bool residentialProxyEnabled
Whether residential proxy will be used if available on the speed server.
Definition types.h:935
bool doNotStoreCredentials
If credentials, including oauth tokens and passwords, are not stored locally.
Definition types.h:914
bool advancedIspStats
If advanced ISP stats are enabled.
Definition types.h:927
uint16_t dnsAddressCount
Number of configured dns addresses to forward to.
Definition types.h:905
bool killswitch
If Internet Killswitch is enabled.
Definition types.h:891
bool apiProtection
if API protection is enabled
Definition types.h:923
bool requestToDisableDoH
Whether DoH is requested to be disabled.
Definition types.h:919
bool dnsLeakProtection
If DNS Leak protection is enabled.
Definition types.h:896
A protocol/port pair.
Definition types.h:663
uint16_t portRangeEnd
End of port range. If this entry is a single port, then this is 0.
Definition types.h:672
uint16_t port
Port number, or 0 for any port.
Definition types.h:669
SpeedifySDK_PortProtocol protocol
Transport layer protocol.
Definition types.h:666
A recently seen application.
Definition types.h:2296
uint64_t lastSeen
Unix timestamp of the app's last classified flow.
Definition types.h:2305
Detailed information about a server.
Definition types.h:160
uint16_t publicIPCount
How many public IPs are in the list. Only available on connected server calls.
Definition types.h:188
uint16_t dnsIPCount
How many DNS IPs are in the list. Only available on connected server calls.
Definition types.h:196
int num
Server number. Each specific server in an area is given a number unique to that region,...
Definition types.h:169
bool isPremium
Whether this is a premium-only server.
Definition types.h:175
bool torrentAllowed
Whether this server allows bittorrent/P2P.
Definition types.h:181
bool isSelfHosted
Whether this is a self-hosted server.
Definition types.h:178
bool residentialProxy
Whether this server supports residential proxy.
Definition types.h:184
bool isPrivate
Whether this is a private or public server.
Definition types.h:172
Automatic server selection method settings.
Definition types.h:525
SpeedifySDK_AutoConnectMethod connectMethod
Type of automatic selection used.
Definition types.h:528
int32_t num
Chosen server number, if connectMethod is ACM_COUNTRYCITYSERVER or ACM_EXACT.
Definition types.h:537
Statistics for sessions over various time periods.
Definition types.h:1300
uint8_t periodCount
Number of stat periods.
Definition types.h:1303
Statistics for a period.
Definition types.h:1230
int64_t bytesReceived
bytes received this period
Definition types.h:1236
int64_t encryptedBytesReceived
encrypted bytes received this period
Definition types.h:1242
SpeedifySDK_DscpStatsArray dscpStats
Contains stats for DSCP queues this period.
Definition types.h:1294
double mbpsDownBenefit
extra download bandwidth acheived this period, in megabits per second
Definition types.h:1275
int32_t daysSinceFirst
days since first connection
Definition types.h:1254
SpeedifySDK_HandlerStats handlerStats
Contains stats regarding the packet handler this period.
Definition types.h:1285
int64_t numFailovers
connection failovers this period
Definition types.h:1257
double maxUploadSpeed
maximum upload speed this period, megabits per second
Definition types.h:1251
SpeedifySDK_TunStats tunStats
Contains stats regarding the TUN this period.
Definition types.h:1282
int64_t bytesSent
bytes sent this period
Definition types.h:1239
int64_t totalConnectedMinutes
minutes connected, this period
Definition types.h:1269
int64_t retransBytes
bytes retransmitted this period
Definition types.h:1263
int64_t periodStartTime
start time of this period, in seconds since epoch
Definition types.h:1266
uint32_t period
period the time period this stat covers, in hours, SPEEDIFYSDK_STAT_PERIOD_CURRENT for current,...
Definition types.h:1233
SpeedifySDK_CaptivePortalStats captivePortalStats
Contains stats regarding captive portals this period.
Definition types.h:1288
SpeedifySDK_StreamingSessionStats streamingStats
Contains stats regarding streaming mode this period.
Definition types.h:1291
double mbpsUpBenefit
extra upload bandwidth acheived this period, in megabits per second
Definition types.h:1279
double maxDownloadSpeed
maximum download speed this period, megabits per second
Definition types.h:1248
int64_t encryptedBytesSent
encrypted bytes sent this period
Definition types.h:1245
int64_t numSessions
total number of sessions this period
Definition types.h:1260
Speedify settings.
Definition types.h:756
SpeedifySDK_Driver driver
Windows tunnel-adapter driver selection.
Definition types.h:871
bool perConnectionEncryptionEnabled
If per-connection encryption is being used.
Definition types.h:794
double overflowThreshold
Overflow threshold, in megabits per second.
Definition types.h:817
uint32_t maximumTransportRetry
maximum time between transport connection retries, in seconds
Definition types.h:847
bool headerCompression
Whether header compression is enabled.
Definition types.h:829
uint16_t perConnectionExposeDscpCount
Number of configured per-connection expose DSCP settings. Only supported on Linux.
Definition types.h:804
SpeedifySDK_TcpCca tcpCca
User preference for kernel TCP congestion control on transport sockets.
Definition types.h:779
uint16_t downstreamSubnetsCount
Number of configured downstream subnets.
Definition types.h:788
uint32_t transportRotationMinutes
age in minutes after which a TCP transport socket is rotated; 0 disables
Definition types.h:850
SpeedifySDK_TargetNumberOfConnections targetNumberOfConnections
The target number of connections for the VPN tunnel.
Definition types.h:856
bool encrypted
Whether all connections will be enabled.
Definition types.h:764
uint32_t maxRedundant
The maximum number of connections used to send redundant packets.
Definition types.h:841
bool enableAutomaticPriority
If automatic connection priorites are enabled.
Definition types.h:835
bool enableDefaultRoute
Whether the default route goes over the VPN tunnel.
Definition types.h:826
bool allowChaChaEncryption
Whether the use of ChaCha is allowed for connection encryption.
Definition types.h:767
uint16_t portsCount
Number of configured ports to forward.
Definition types.h:782
bool startupConnect
If Speedify will automatically connect when the daemon starts.
Definition types.h:773
uint32_t fixedDelay
The delay in ms applied in each direction to select flows.
Definition types.h:862
bool packetAggregation
Whether packet aggregation is enabled.
Definition types.h:823
unsigned long ulpReportIntervalSeconds
Represents the ULP reporting interval in seconds.
Definition types.h:838
SpeedifySDK_TransportMode transportMode
Currently used connection transport mode selection.
Definition types.h:776
uint16_t perConnectionParallelSocketsCount
Number of configured per-connection parallel socket settings.
Definition types.h:811
uint32_t maximumConnectRetry
maximum time between login/connect retries, in seconds
Definition types.h:844
bool pepEnabled
Whether performance enhancing proxy (PEP) is enabled.
Definition types.h:859
double priorityOverflowThreshold
Priority overflow threshold, in megabits per second.
Definition types.h:820
bool jumboPackets
Whether to allow jumbo packets over the VPN tunnel.
Definition types.h:759
SpeedifySDK_BondingMode bondingMode
The current bonding mode.
Definition types.h:770
uint16_t perConnectionEncryptionCount
Number of configured per-connection encryption settings.
Definition types.h:797
Results of a speed test.
Definition types.h:1916
uint16_t jitter
jitter during test in ms, only valid for streaming tests
Definition types.h:1952
int64_t testTime
time of the test, in seconds since epoch
Definition types.h:1919
double downloadSpeed
tested download speed, bits per second
Definition types.h:1931
bool isError
is this test errored
Definition types.h:1937
uint16_t numConnections
How many connections were used during this test.
Definition types.h:1928
uint16_t fps
supported streaming frames per second (fps), only valid for streaming tests
Definition types.h:1949
double uploadSpeed
tested upload speed, bits per second
Definition types.h:1934
uint16_t latency
baseline latency in ms
Definition types.h:1955
double loss
packet loss percent during test, only valid for streaming tests
Definition types.h:1958
SpeedifySDK_SpeedTestType testType
type of test
Definition types.h:1943
Statistics for a single stream.
Definition types.h:1592
double averageDownloadSpeed
Average download speed of this stream, in megabits per second.
Definition types.h:1619
uint8_t dscp
The dscp tag of this stream.
Definition types.h:1650
SpeedifySDK_HostnameString hostname
The hostname of the service that this stream is connected to.
Definition types.h:1647
uint64_t duration
Time, in seconds, this stream has been active.
Definition types.h:1598
SpeedifySDK_StreamHealth health
Stream health.
Definition types.h:1634
uint64_t groupId
Group ID number of this stream.
Definition types.h:1604
bool userPriority
Whether this stream is from user-configured priority (not auto-detected).
Definition types.h:1653
uint64_t speedModeSaves
Number of saves while in speed mode.
Definition types.h:1625
uint64_t startTime
Time this stream started, seconds since epoch.
Definition types.h:1607
uint64_t failoverSaves
Definition types.h:1628
uint16_t remotePort
The remote port that this stream is connected to.
Definition types.h:1640
double retransmitRate
Retransmit rate of this stream, as a percent of outbound packets in the last interval (for protocols ...
Definition types.h:1657
bool active
If this stream is currently active.
Definition types.h:1595
SpeedifySDK_IPAddressString remoteIp
The remote ip that this stream is connected to.
Definition types.h:1637
double downloadSpeed
Current download speed of this stream, in megabits per second.
Definition types.h:1613
double averageUploadSpeed
Average upload speed of this stream, in megabits per second.
Definition types.h:1616
uint64_t id
ID number of this stream.
Definition types.h:1601
uint64_t redundantModeSaves
Number of saves while in redundant mode.
Definition types.h:1622
double uploadSpeed
Current upload speed of this stream, in megabits per second.
Definition types.h:1610
double rtt
Average round-trip time of this stream in milliseconds, when reported by the stream's protocol (curre...
Definition types.h:1661
Contains session stats regarding streaming mode.
Definition types.h:1167
uint64_t uniqueSaves
Unique streams saved.
Definition types.h:1182
uint64_t totalStreams
Total number of streams seen.
Definition types.h:1179
uint64_t totalFailoverSaves
Total number of saves from a failover.
Definition types.h:1170
uint64_t totalRedundantModeSaves
Total number of saves while in redundant mode.
Definition types.h:1176
uint64_t totalSpeedModeSaves
Total number of saves while in speed mode.
Definition types.h:1173
Settings for the priority streaming.
Definition types.h:1484
uint16_t ipv4Count
Number of IPv4 addresses.
Definition types.h:1493
uint16_t ipv6Count
Number of IPv6 addresses.
Definition types.h:1500
uint16_t portsCount
Number of ports.
Definition types.h:1507
uint16_t domainsCount
Number of domains.
Definition types.h:1487
Streaming mode stats.
Definition types.h:1667
bool badMemory
Indicator of high memory usage on the system, greater than 90%. Only tracked while active streams are...
Definition types.h:1692
SpeedifySDK_BondingMode bondingMode
Bonding mode in use.
Definition types.h:1670
bool badLoss
Indicator of high loss, greater than 3%. Only tracked while active streams are running.
Definition types.h:1680
bool badCpu
Indicator of high CPU usage on the system, greater than 90%. Only tracked while active streams are ru...
Definition types.h:1688
uint32_t streamsCount
Number of streams in this result.
Definition types.h:1673
bool badLatency
Indicator of high latency, greater than 300ms. Only tracked while active streams are running.
Definition types.h:1684
A subnet.
Definition types.h:682
SpeedifySDK_IPAddressString address
IP address.
Definition types.h:685
uint8_t prefixLength
network prefix length
Definition types.h:688
Definition types.h:2279
SpeedifySDK_DeviceRole role
Device Role.
Definition types.h:2291
Target number of connections for the VPN tunnel.
Definition types.h:726
int32_t upload
Target number of connections for upload.
Definition types.h:729
int32_t download
Target number of connections for download.
Definition types.h:732
Contains stats regarding the TUN, for use in session stats.
Definition types.h:1107
uint64_t packetsIn
Number of packets read from TUN.
Definition types.h:1110
uint64_t packetsOut
Number of packets written to TUN.
Definition types.h:1113
uint64_t bufferWaits
Number of buffer full waits.
Definition types.h:1122
uint64_t readQueue
Size of the read queue.
Definition types.h:1128
uint64_t bytesOut
Number of bytes written to TUN.
Definition types.h:1119
uint64_t droppedIncoming
Number of incoming packets dropped.
Definition types.h:1131
uint64_t bytesIn
Number of bytes read from TUN.
Definition types.h:1116
uint64_t packetWaits
Number of packet pool waits.
Definition types.h:1125
Version structure.
Definition types.h:65
uint16_t major
Major version.
Definition types.h:68
uint16_t build
Build number.
Definition types.h:77
uint16_t bugfix
Bugfix version.
Definition types.h:74
uint16_t minor
Minor version.
Definition types.h:71
SpeedifySDK_NetworkSharingPeerRole
peer role
Definition types.h:1973
@ PR_CLIENT
client
Definition types.h:1976
@ PR_HOST
host
Definition types.h:1979
const char * SpeedifySDK_DeviceRole_toString(SpeedifySDK_DeviceRole role)
String representation of a SpeedifySDK_DeviceRole.
const char * SpeedifySDK_NetworkSharingAutoPairBehavior_toString(SpeedifySDK_NetworkSharingAutoPairBehavior behavior)
String representation of a SpeedifySDK_NetworkSharingAutoPairBehavior.
char SpeedifySDK_NetworkSharingDisplayName[SPEEDIFYSDK_MAX_NETWORKSHARING_DISPLAY_NAME_LENGTH]
The public display name for this device.
Definition types.h:1966
const char * SpeedifySDK_SpeedTestType_toString(SpeedifySDK_SpeedTestType type)
String representation of a SpeedifySDK_SpeedTestType.
char SpeedifySDK_NetworkSharingPeerUuid[SPEEDIFYSDK_NETWORKSHARING_PEER_UUID_LENGTH]
Peer UUID for network sharing peer data.
Definition types.h:1969
SpeedifySDK_NetworkSharingPeerStatus
Status of a NetworkSharing Peer Connection.
Definition types.h:2056
@ NPS_AUTHENTICATED
connected and authenticated
Definition types.h:2065
@ NPS_UNAUTHENTICATED
connected, but not authenticated
Definition types.h:2062
@ NPS_DISCONNECTED
The connection is disconnected.
Definition types.h:2059
uint8_t SpeedifySDK_DscpValue
DSCP value.
Definition types.h:2195
const char * SpeedifySDK_NetworkSharingPeerRole_toString(SpeedifySDK_NetworkSharingPeerRole role)
String representation of a SpeedifySDK_NetworkSharingPeerRole.
SpeedifySDK_SafeBrowsingSafeNetworkOverride
Override safe network decisions.
Definition types.h:1895
@ SN_OVERRIDE_NONE
Definition types.h:1896
@ SN_OVERRIDE_UNSAFE
Definition types.h:1897
@ SN_OVERRIDE_SAFE
Definition types.h:1898
SpeedifySDK_TrafficRuleChangeMethod
Traffic rules change method.
Definition types.h:2250
@ TRAFFIC_RULE_REMOVE
Remove an existing traffic rule.
Definition types.h:2259
@ TRAFFIC_RULE_UPDATE
Update an existing traffic rule, or add a new one if it doesn't exist.
Definition types.h:2253
@ TRAFFIC_RULE_REPLACE
Replace an existing traffic rule, or add a new one if it doesn't exist.
Definition types.h:2256
SpeedifySDK_DSCPReplication
DSCP replication behavior.
Definition types.h:2178
@ DSCP_REPLICATION_ON
DSCP replication is on.
Definition types.h:2184
@ DSCP_REPLICATION_AUTO
Speedify stream mode behavior.
Definition types.h:2181
@ DSCP_REPLICATION_OFF
DSCP replication is off.
Definition types.h:2187
SpeedifySDK_NetworkSharingAutoPairBehavior
Auto pair behavior types.
Definition types.h:2005
@ APB_MANUAL
no automatic pairing
Definition types.h:2008
@ APB_AUTO_USER_TEAM
Automatically pair with devices from the same user and/or team.
Definition types.h:2014
@ APB_AUTO_USER
Automatically pair with devices from the same user.
Definition types.h:2011
const char * SpeedifySDK_NetworkSharingTunnelStatus_toString(SpeedifySDK_NetworkSharingTunnelStatus status)
String representation of a SpeedifySDK_NetworkSharingTunnelStatus.
const char * SpeedifySDK_NetworkSharingPairRequestBehavior_toString(SpeedifySDK_NetworkSharingPairRequestBehavior behavior)
String representation of a SpeedifySDK_NetworkSharingPairRequestBehavior.
SpeedifySDK_DeviceRole
Device Role.
Definition types.h:2264
@ DR_CLIENT
Client Device.
Definition types.h:2267
@ DR_PROGEAR
Professional Video Gear Device.
Definition types.h:2273
@ DR_ROUTER
Router Device.
Definition types.h:2270
const char * SpeedifySDK_SafeBrowsing_SafeNetworkOverride_toString(SpeedifySDK_SafeBrowsingSafeNetworkOverride level)
const char * SpeedifySDK_NetworkSharingPeerStatus_toString(SpeedifySDK_NetworkSharingPeerStatus status)
String representation of a SpeedifySDK_NetworkSharingTunnelStatus.
const char * SpeedifySDK_DSCPPriority_toString(SpeedifySDK_DSCPPriority priority)
String representation of a SpeedifySDK_DSCPPriority.
const char * SpeedifySDK_DSCPReplication_toString(SpeedifySDK_DSCPReplication replication)
String representation of a SpeedifySDK_DSCPReplication.
SpeedifySDK_SafeBrowsingLogLevel
Log levels in the SDK.
Definition types.h:1882
@ CUJO_LOG_DEBUG
Definition types.h:1883
@ CUJO_LOG_TRACE
Definition types.h:1887
@ CUJO_LOG_INFO
Definition types.h:1884
@ CUJO_LOG_WARNING
Definition types.h:1889
@ CUJO_LOG_ERROR
Definition types.h:1885
SpeedifySDK_SpeedTestType
Internal speed test types.
Definition types.h:1905
@ TEST_STREAMING
Definition types.h:1907
@ TEST_SPEED
Definition types.h:1906
char SpeedifySDK_NetworkSharingConnectCode[SPEEDIFYSDK_MAX_NETWORKSHARING_CONNECT_CODE_LENGTH]
Connect code for network sharing.
Definition types.h:1963
const char * SpeedifySDK_SafeBrowsing_LogLevel_toString(SpeedifySDK_SafeBrowsingLogLevel level)
SpeedifySDK_DSCPPriority
DSCP priority behavior.
Definition types.h:2199
@ DSCP_PRIORITY_OFF
DSCP priority is off.
Definition types.h:2208
@ DSCP_PRIORITY_ON
DSCP priority is on.
Definition types.h:2205
@ DSCP_PRIORITY_AUTO
Speedify stream detection.
Definition types.h:2202
SpeedifySDK_NetworkSharingPairRequestBehavior
pair request behavior types
Definition types.h:1987
@ PRB_ACCEPT
automatically accept
Definition types.h:1993
@ PRB_ASK
always ask
Definition types.h:1990
@ PRB_REJECT
automatically reject
Definition types.h:1996
SpeedifySDK_NetworkSharingTunnelStatus
Status of a NetworkSharing tunnel.
Definition types.h:2074
@ NTS_ACTIVE
active tunnels
Definition types.h:2080
@ NTS_DISABLED_ON_CLIENT
disallowed on client
Definition types.h:2083
@ NTS_TUNNEL_ERROR
general error
Definition types.h:2092
@ NTS_DISABLED_ON_HOST
disallowed on host
Definition types.h:2086
@ NTS_VPN_NOT_CONNECTED
Host's VPN not connected.
Definition types.h:2101
@ NTS_PAUSED
Active but paused.
Definition types.h:2104
@ NTS_INACTIVE
No active tunnels.
Definition types.h:2077
@ NTS_NOT_AUTHENTICATED
not authenticated
Definition types.h:2095
@ NTS_NETWORKS_OVERLIMIT
All networks are over data limit.
Definition types.h:2098
@ NTS_NO_NETWORKS
no networks available
Definition types.h:2089