mirror of
https://github.com/morgan9e/FreeRDP
synced 2026-04-15 00:44:19 +09:00
[utils] add WINPR_ATTR_NODISCARD
* Add WINPR_ATTR_NODISCARD to functions returning a value * Add some missing WINPR_ATTR_MALLOC
This commit is contained in:
@@ -77,6 +77,7 @@ extern "C"
|
|||||||
* @return The token string or \b NULL
|
* @return The token string or \b NULL
|
||||||
*/
|
*/
|
||||||
WINPR_ATTR_MALLOC(free, 1)
|
WINPR_ATTR_MALLOC(free, 1)
|
||||||
|
WINPR_ATTR_NODISCARD
|
||||||
FREERDP_API char* freerdp_utils_aad_get_access_token(wLog* log, const char* data,
|
FREERDP_API char* freerdp_utils_aad_get_access_token(wLog* log, const char* data,
|
||||||
size_t length);
|
size_t length);
|
||||||
|
|
||||||
@@ -87,6 +88,7 @@ extern "C"
|
|||||||
* @return The string representation of the enum value
|
* @return The string representation of the enum value
|
||||||
* @since version 3.10.0
|
* @since version 3.10.0
|
||||||
*/
|
*/
|
||||||
|
WINPR_ATTR_NODISCARD
|
||||||
FREERDP_API const char* freerdp_utils_aad_wellknwon_value_name(AAD_WELLKNOWN_VALUES which);
|
FREERDP_API const char* freerdp_utils_aad_wellknwon_value_name(AAD_WELLKNOWN_VALUES which);
|
||||||
|
|
||||||
/** Helper to extract a string from AAD::wellknown JSON
|
/** Helper to extract a string from AAD::wellknown JSON
|
||||||
@@ -97,6 +99,7 @@ extern "C"
|
|||||||
*
|
*
|
||||||
* @since version 3.10.0
|
* @since version 3.10.0
|
||||||
*/
|
*/
|
||||||
|
WINPR_ATTR_NODISCARD
|
||||||
FREERDP_API const char* freerdp_utils_aad_get_wellknown_string(rdpContext* context,
|
FREERDP_API const char* freerdp_utils_aad_get_wellknown_string(rdpContext* context,
|
||||||
AAD_WELLKNOWN_VALUES which);
|
AAD_WELLKNOWN_VALUES which);
|
||||||
|
|
||||||
@@ -108,6 +111,7 @@ extern "C"
|
|||||||
*
|
*
|
||||||
* @since version 3.10.0
|
* @since version 3.10.0
|
||||||
*/
|
*/
|
||||||
|
WINPR_ATTR_NODISCARD
|
||||||
FREERDP_API const char* freerdp_utils_aad_get_wellknown_custom_string(rdpContext* context,
|
FREERDP_API const char* freerdp_utils_aad_get_wellknown_custom_string(rdpContext* context,
|
||||||
const char* which);
|
const char* which);
|
||||||
|
|
||||||
@@ -119,6 +123,7 @@ extern "C"
|
|||||||
*
|
*
|
||||||
* @since version 3.10.0
|
* @since version 3.10.0
|
||||||
*/
|
*/
|
||||||
|
WINPR_ATTR_NODISCARD
|
||||||
FREERDP_API WINPR_JSON* freerdp_utils_aad_get_wellknown_object(rdpContext* context,
|
FREERDP_API WINPR_JSON* freerdp_utils_aad_get_wellknown_object(rdpContext* context,
|
||||||
AAD_WELLKNOWN_VALUES which);
|
AAD_WELLKNOWN_VALUES which);
|
||||||
|
|
||||||
@@ -130,6 +135,7 @@ extern "C"
|
|||||||
*
|
*
|
||||||
* @since version 3.10.0
|
* @since version 3.10.0
|
||||||
*/
|
*/
|
||||||
|
WINPR_ATTR_NODISCARD
|
||||||
FREERDP_API WINPR_JSON* freerdp_utils_aad_get_wellknown_custom_object(rdpContext* context,
|
FREERDP_API WINPR_JSON* freerdp_utils_aad_get_wellknown_custom_object(rdpContext* context,
|
||||||
const char* which);
|
const char* which);
|
||||||
|
|
||||||
@@ -143,6 +149,7 @@ extern "C"
|
|||||||
* @since version 3.10.0
|
* @since version 3.10.0
|
||||||
*/
|
*/
|
||||||
WINPR_ATTR_MALLOC(WINPR_JSON_Delete, 1)
|
WINPR_ATTR_MALLOC(WINPR_JSON_Delete, 1)
|
||||||
|
WINPR_ATTR_NODISCARD
|
||||||
FREERDP_API WINPR_JSON* freerdp_utils_aad_get_wellknown(wLog* log, const char* base,
|
FREERDP_API WINPR_JSON* freerdp_utils_aad_get_wellknown(wLog* log, const char* base,
|
||||||
const char* tenantid);
|
const char* tenantid);
|
||||||
|
|
||||||
|
|||||||
@@ -22,6 +22,7 @@
|
|||||||
#define FREERDP_UTILS_CLIPRDR_H
|
#define FREERDP_UTILS_CLIPRDR_H
|
||||||
|
|
||||||
#include <winpr/wtypes.h>
|
#include <winpr/wtypes.h>
|
||||||
|
#include <winpr/stream.h>
|
||||||
#include <winpr/shell.h>
|
#include <winpr/shell.h>
|
||||||
#include <freerdp/api.h>
|
#include <freerdp/api.h>
|
||||||
|
|
||||||
@@ -30,15 +31,20 @@ extern "C"
|
|||||||
{
|
{
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
WINPR_ATTR_NODISCARD
|
||||||
FREERDP_API BOOL cliprdr_read_filedescriptor(wStream* s, FILEDESCRIPTORW* descriptor);
|
FREERDP_API BOOL cliprdr_read_filedescriptor(wStream* s, FILEDESCRIPTORW* descriptor);
|
||||||
|
WINPR_ATTR_NODISCARD
|
||||||
FREERDP_API BOOL cliprdr_write_filedescriptor(wStream* s, const FILEDESCRIPTORW* descriptor);
|
FREERDP_API BOOL cliprdr_write_filedescriptor(wStream* s, const FILEDESCRIPTORW* descriptor);
|
||||||
|
|
||||||
|
WINPR_ATTR_NODISCARD
|
||||||
FREERDP_API UINT cliprdr_parse_file_list(const BYTE* format_data, UINT32 format_data_length,
|
FREERDP_API UINT cliprdr_parse_file_list(const BYTE* format_data, UINT32 format_data_length,
|
||||||
FILEDESCRIPTORW** file_descriptor_array,
|
FILEDESCRIPTORW** file_descriptor_array,
|
||||||
UINT32* file_descriptor_count);
|
UINT32* file_descriptor_count);
|
||||||
|
WINPR_ATTR_NODISCARD
|
||||||
FREERDP_API UINT cliprdr_serialize_file_list(const FILEDESCRIPTORW* file_descriptor_array,
|
FREERDP_API UINT cliprdr_serialize_file_list(const FILEDESCRIPTORW* file_descriptor_array,
|
||||||
UINT32 file_descriptor_count, BYTE** format_data,
|
UINT32 file_descriptor_count, BYTE** format_data,
|
||||||
UINT32* format_data_length);
|
UINT32* format_data_length);
|
||||||
|
WINPR_ATTR_NODISCARD
|
||||||
FREERDP_API UINT cliprdr_serialize_file_list_ex(UINT32 flags,
|
FREERDP_API UINT cliprdr_serialize_file_list_ex(UINT32 flags,
|
||||||
const FILEDESCRIPTORW* file_descriptor_array,
|
const FILEDESCRIPTORW* file_descriptor_array,
|
||||||
UINT32 file_descriptor_count,
|
UINT32 file_descriptor_count,
|
||||||
|
|||||||
@@ -30,6 +30,7 @@ extern "C"
|
|||||||
{
|
{
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
WINPR_ATTR_NODISCARD
|
||||||
FREERDP_API const char* drdynvc_get_packet_type(BYTE cmd);
|
FREERDP_API const char* drdynvc_get_packet_type(BYTE cmd);
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
|
|||||||
@@ -62,6 +62,7 @@ extern "C"
|
|||||||
*
|
*
|
||||||
* @return \b TRUE for successful reading, \b FALSE otherwise
|
* @return \b TRUE for successful reading, \b FALSE otherwise
|
||||||
*/
|
*/
|
||||||
|
WINPR_ATTR_NODISCARD
|
||||||
FREERDP_API BOOL freerdp_read_four_byte_signed_integer(wStream* s, INT32* value);
|
FREERDP_API BOOL freerdp_read_four_byte_signed_integer(wStream* s, INT32* value);
|
||||||
|
|
||||||
/** Write a 4 byte signed integer to a stream
|
/** Write a 4 byte signed integer to a stream
|
||||||
@@ -73,6 +74,7 @@ extern "C"
|
|||||||
*
|
*
|
||||||
* @return \b TRUE for successful writing, \b FALSE otherwise
|
* @return \b TRUE for successful writing, \b FALSE otherwise
|
||||||
*/
|
*/
|
||||||
|
WINPR_ATTR_NODISCARD
|
||||||
FREERDP_API BOOL freerdp_write_four_byte_signed_integer(wStream* s, INT32 value);
|
FREERDP_API BOOL freerdp_write_four_byte_signed_integer(wStream* s, INT32 value);
|
||||||
|
|
||||||
/** Read a 4 byte float from a stream and store the decoded value
|
/** Read a 4 byte float from a stream and store the decoded value
|
||||||
@@ -84,6 +86,7 @@ extern "C"
|
|||||||
*
|
*
|
||||||
* @return \b TRUE for successful reading, \b FALSE otherwise
|
* @return \b TRUE for successful reading, \b FALSE otherwise
|
||||||
*/
|
*/
|
||||||
|
WINPR_ATTR_NODISCARD
|
||||||
FREERDP_API BOOL freerdp_read_four_byte_float(wStream* s, double* value);
|
FREERDP_API BOOL freerdp_read_four_byte_float(wStream* s, double* value);
|
||||||
|
|
||||||
/** Read a 4 byte float from a stream and store the decoded value and exponent
|
/** Read a 4 byte float from a stream and store the decoded value and exponent
|
||||||
@@ -96,6 +99,7 @@ extern "C"
|
|||||||
*
|
*
|
||||||
* @return \b TRUE for successful reading, \b FALSE otherwise
|
* @return \b TRUE for successful reading, \b FALSE otherwise
|
||||||
*/
|
*/
|
||||||
|
WINPR_ATTR_NODISCARD
|
||||||
FREERDP_API BOOL freerdp_read_four_byte_float_exp(wStream* s, double* value, BYTE* exp);
|
FREERDP_API BOOL freerdp_read_four_byte_float_exp(wStream* s, double* value, BYTE* exp);
|
||||||
|
|
||||||
/** Write a 4 byte float to a stream
|
/** Write a 4 byte float to a stream
|
||||||
@@ -107,6 +111,7 @@ extern "C"
|
|||||||
*
|
*
|
||||||
* @return \b TRUE for successful writing, \b FALSE otherwise
|
* @return \b TRUE for successful writing, \b FALSE otherwise
|
||||||
*/
|
*/
|
||||||
|
WINPR_ATTR_NODISCARD
|
||||||
FREERDP_API BOOL freerdp_write_four_byte_float(wStream* s, double value);
|
FREERDP_API BOOL freerdp_write_four_byte_float(wStream* s, double value);
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
|
|||||||
@@ -36,10 +36,13 @@ extern "C"
|
|||||||
* @return The string representation of the capabilities
|
* @return The string representation of the capabilities
|
||||||
* @since version 3.9.0
|
* @since version 3.9.0
|
||||||
*/
|
*/
|
||||||
|
WINPR_ATTR_NODISCARD
|
||||||
FREERDP_API const char* rdpgfx_caps_version_str(UINT32 capsVersion);
|
FREERDP_API const char* rdpgfx_caps_version_str(UINT32 capsVersion);
|
||||||
|
|
||||||
|
WINPR_ATTR_NODISCARD
|
||||||
FREERDP_API const char* rdpgfx_get_cmd_id_string(UINT16 cmdId);
|
FREERDP_API const char* rdpgfx_get_cmd_id_string(UINT16 cmdId);
|
||||||
|
|
||||||
|
WINPR_ATTR_NODISCARD
|
||||||
FREERDP_API const char* rdpgfx_get_codec_id_string(UINT16 codecId);
|
FREERDP_API const char* rdpgfx_get_codec_id_string(UINT16 codecId);
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
|
|||||||
@@ -44,6 +44,7 @@ extern "C"
|
|||||||
* @since version 3.9.0
|
* @since version 3.9.0
|
||||||
*/
|
*/
|
||||||
WINPR_ATTR_MALLOC(free, 1)
|
WINPR_ATTR_MALLOC(free, 1)
|
||||||
|
WINPR_ATTR_NODISCARD
|
||||||
FREERDP_API char* freerdp_GetConfigFilePath(BOOL system, const char* filename);
|
FREERDP_API char* freerdp_GetConfigFilePath(BOOL system, const char* filename);
|
||||||
|
|
||||||
/** @brief return a parsed JSON for a given config file name.
|
/** @brief return a parsed JSON for a given config file name.
|
||||||
@@ -56,6 +57,7 @@ extern "C"
|
|||||||
* @since version 3.16.0
|
* @since version 3.16.0
|
||||||
*/
|
*/
|
||||||
WINPR_ATTR_MALLOC(WINPR_JSON_Delete, 1)
|
WINPR_ATTR_MALLOC(WINPR_JSON_Delete, 1)
|
||||||
|
WINPR_ATTR_NODISCARD
|
||||||
FREERDP_API WINPR_JSON* freerdp_GetJSONConfigFile(BOOL system, const char* filename);
|
FREERDP_API WINPR_JSON* freerdp_GetJSONConfigFile(BOOL system, const char* filename);
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
|
|||||||
@@ -71,10 +71,13 @@ extern "C"
|
|||||||
{
|
{
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
WINPR_ATTR_NODISCARD
|
||||||
FREERDP_API BOOL freerdp_http_request(const char* url, const char* body, long* status_code,
|
FREERDP_API BOOL freerdp_http_request(const char* url, const char* body, long* status_code,
|
||||||
BYTE** response, size_t* response_length);
|
BYTE** response, size_t* response_length);
|
||||||
|
|
||||||
|
WINPR_ATTR_NODISCARD
|
||||||
FREERDP_API const char* freerdp_http_status_string(long status);
|
FREERDP_API const char* freerdp_http_status_string(long status);
|
||||||
|
WINPR_ATTR_NODISCARD
|
||||||
FREERDP_API const char* freerdp_http_status_string_format(long status, char* buffer,
|
FREERDP_API const char* freerdp_http_status_string_format(long status, char* buffer,
|
||||||
size_t size);
|
size_t size);
|
||||||
|
|
||||||
|
|||||||
@@ -43,6 +43,7 @@ extern "C"
|
|||||||
*
|
*
|
||||||
* @return The character read or \ref EOF in case of any failures
|
* @return The character read or \ref EOF in case of any failures
|
||||||
*/
|
*/
|
||||||
|
WINPR_ATTR_NODISCARD
|
||||||
FREERDP_API int freerdp_interruptible_getc(rdpContext* context, FILE* stream);
|
FREERDP_API int freerdp_interruptible_getc(rdpContext* context, FILE* stream);
|
||||||
|
|
||||||
/** @brief read a line from \ref stream with (optinal) default value that can be manipulated.
|
/** @brief read a line from \ref stream with (optinal) default value that can be manipulated.
|
||||||
@@ -58,6 +59,7 @@ extern "C"
|
|||||||
*
|
*
|
||||||
* @return \b -1 in case of failure, otherwise \ref strlen of the result
|
* @return \b -1 in case of failure, otherwise \ref strlen of the result
|
||||||
*/
|
*/
|
||||||
|
WINPR_ATTR_NODISCARD
|
||||||
FREERDP_API SSIZE_T freerdp_interruptible_get_line(rdpContext* context, char** lineptr,
|
FREERDP_API SSIZE_T freerdp_interruptible_get_line(rdpContext* context, char** lineptr,
|
||||||
size_t* size, FILE* stream);
|
size_t* size, FILE* stream);
|
||||||
|
|
||||||
@@ -71,6 +73,7 @@ extern "C"
|
|||||||
*
|
*
|
||||||
* @return A pointer to \ref buf containing the password or \ref NULL in case of an error.
|
* @return A pointer to \ref buf containing the password or \ref NULL in case of an error.
|
||||||
*/
|
*/
|
||||||
|
WINPR_ATTR_NODISCARD
|
||||||
FREERDP_API const char* freerdp_passphrase_read(rdpContext* context, const char* prompt,
|
FREERDP_API const char* freerdp_passphrase_read(rdpContext* context, const char* prompt,
|
||||||
char* buf, size_t bufsiz, int from_stdin);
|
char* buf, size_t bufsiz, int from_stdin);
|
||||||
|
|
||||||
|
|||||||
@@ -63,13 +63,21 @@ extern "C"
|
|||||||
|
|
||||||
typedef struct rdp_pcap rdpPcap;
|
typedef struct rdp_pcap rdpPcap;
|
||||||
|
|
||||||
FREERDP_API rdpPcap* pcap_open(const char* name, BOOL write);
|
|
||||||
FREERDP_API void pcap_close(rdpPcap* pcap);
|
FREERDP_API void pcap_close(rdpPcap* pcap);
|
||||||
|
|
||||||
|
WINPR_ATTR_MALLOC(pcap_close, 1)
|
||||||
|
WINPR_ATTR_NODISCARD
|
||||||
|
FREERDP_API rdpPcap* pcap_open(const char* name, BOOL write);
|
||||||
|
|
||||||
|
WINPR_ATTR_NODISCARD
|
||||||
FREERDP_API BOOL pcap_add_record(rdpPcap* pcap, const void* data, size_t length);
|
FREERDP_API BOOL pcap_add_record(rdpPcap* pcap, const void* data, size_t length);
|
||||||
|
WINPR_ATTR_NODISCARD
|
||||||
FREERDP_API BOOL pcap_has_next_record(const rdpPcap* pcap);
|
FREERDP_API BOOL pcap_has_next_record(const rdpPcap* pcap);
|
||||||
|
WINPR_ATTR_NODISCARD
|
||||||
FREERDP_API BOOL pcap_get_next_record(rdpPcap* pcap, pcap_record* record);
|
FREERDP_API BOOL pcap_get_next_record(rdpPcap* pcap, pcap_record* record);
|
||||||
|
WINPR_ATTR_NODISCARD
|
||||||
FREERDP_API BOOL pcap_get_next_record_header(rdpPcap* pcap, pcap_record* record);
|
FREERDP_API BOOL pcap_get_next_record_header(rdpPcap* pcap, pcap_record* record);
|
||||||
|
WINPR_ATTR_NODISCARD
|
||||||
FREERDP_API BOOL pcap_get_next_record_content(rdpPcap* pcap, pcap_record* record);
|
FREERDP_API BOOL pcap_get_next_record_content(rdpPcap* pcap, pcap_record* record);
|
||||||
FREERDP_API void pcap_flush(rdpPcap* pcap);
|
FREERDP_API void pcap_flush(rdpPcap* pcap);
|
||||||
|
|
||||||
|
|||||||
@@ -42,24 +42,28 @@ extern "C"
|
|||||||
a->nvalues = 0; \
|
a->nvalues = 0; \
|
||||||
} \
|
} \
|
||||||
\
|
\
|
||||||
|
WINPR_ATTR_NODISCARD \
|
||||||
static inline size_t array_##TLOWER##_size(const Array##T* a) \
|
static inline size_t array_##TLOWER##_size(const Array##T* a) \
|
||||||
{ \
|
{ \
|
||||||
WINPR_ASSERT(a); \
|
WINPR_ASSERT(a); \
|
||||||
return a->nvalues; \
|
return a->nvalues; \
|
||||||
} \
|
} \
|
||||||
\
|
\
|
||||||
|
WINPR_ATTR_NODISCARD \
|
||||||
static inline T* array_##TLOWER##_data(const Array##T* a) \
|
static inline T* array_##TLOWER##_data(const Array##T* a) \
|
||||||
{ \
|
{ \
|
||||||
WINPR_ASSERT(a); \
|
WINPR_ASSERT(a); \
|
||||||
return a->values; \
|
return a->values; \
|
||||||
} \
|
} \
|
||||||
\
|
\
|
||||||
|
WINPR_ATTR_NODISCARD \
|
||||||
static inline const T* array_##TLOWER##_cdata(const Array##T* a) \
|
static inline const T* array_##TLOWER##_cdata(const Array##T* a) \
|
||||||
{ \
|
{ \
|
||||||
WINPR_ASSERT(a); \
|
WINPR_ASSERT(a); \
|
||||||
return (const T*)a->values; \
|
return (const T*)a->values; \
|
||||||
} \
|
} \
|
||||||
\
|
\
|
||||||
|
WINPR_ATTR_NODISCARD \
|
||||||
static inline T array_##TLOWER##_get(const Array##T* a, size_t idx) \
|
static inline T array_##TLOWER##_get(const Array##T* a, size_t idx) \
|
||||||
{ \
|
{ \
|
||||||
WINPR_ASSERT(a); \
|
WINPR_ASSERT(a); \
|
||||||
@@ -74,6 +78,7 @@ extern "C"
|
|||||||
a->values[idx] = v; \
|
a->values[idx] = v; \
|
||||||
} \
|
} \
|
||||||
\
|
\
|
||||||
|
WINPR_ATTR_NODISCARD \
|
||||||
static inline BOOL array_##TLOWER##_append(Array##T* a, T v) \
|
static inline BOOL array_##TLOWER##_append(Array##T* a, T v) \
|
||||||
{ \
|
{ \
|
||||||
WINPR_ASSERT(a); \
|
WINPR_ASSERT(a); \
|
||||||
@@ -87,6 +92,7 @@ extern "C"
|
|||||||
return TRUE; \
|
return TRUE; \
|
||||||
} \
|
} \
|
||||||
\
|
\
|
||||||
|
WINPR_ATTR_NODISCARD \
|
||||||
static inline BOOL array_##TLOWER##_contains(const Array##T* a, T v) \
|
static inline BOOL array_##TLOWER##_contains(const Array##T* a, T v) \
|
||||||
{ \
|
{ \
|
||||||
WINPR_ASSERT(a); \
|
WINPR_ASSERT(a); \
|
||||||
@@ -100,6 +106,7 @@ extern "C"
|
|||||||
return FALSE; \
|
return FALSE; \
|
||||||
} \
|
} \
|
||||||
\
|
\
|
||||||
|
WINPR_ATTR_NODISCARD \
|
||||||
static inline BOOL array_##TLOWER##_foreach(Array##T* a, Array##T##Cb cb, void* data) \
|
static inline BOOL array_##TLOWER##_foreach(Array##T* a, Array##T##Cb cb, void* data) \
|
||||||
{ \
|
{ \
|
||||||
WINPR_ASSERT(a); \
|
WINPR_ASSERT(a); \
|
||||||
|
|||||||
@@ -30,9 +30,12 @@ extern "C"
|
|||||||
|
|
||||||
typedef struct S_PROFILER PROFILER;
|
typedef struct S_PROFILER PROFILER;
|
||||||
|
|
||||||
FREERDP_API PROFILER* profiler_create(const char* name);
|
|
||||||
FREERDP_API void profiler_free(PROFILER* profiler);
|
FREERDP_API void profiler_free(PROFILER* profiler);
|
||||||
|
|
||||||
|
WINPR_ATTR_MALLOC(profiler_free, 1)
|
||||||
|
WINPR_ATTR_NODISCARD
|
||||||
|
FREERDP_API PROFILER* profiler_create(const char* name);
|
||||||
|
|
||||||
FREERDP_API void profiler_enter(PROFILER* profiler);
|
FREERDP_API void profiler_enter(PROFILER* profiler);
|
||||||
FREERDP_API void profiler_exit(PROFILER* profiler);
|
FREERDP_API void profiler_exit(PROFILER* profiler);
|
||||||
|
|
||||||
|
|||||||
@@ -36,6 +36,7 @@ extern "C"
|
|||||||
*
|
*
|
||||||
* @return \b TRUE if parsed successfully
|
* @return \b TRUE if parsed successfully
|
||||||
*/
|
*/
|
||||||
|
WINPR_ATTR_NODISCARD
|
||||||
FREERDP_API BOOL proxy_parse_uri(rdpSettings* settings, const char* uri_in);
|
FREERDP_API BOOL proxy_parse_uri(rdpSettings* settings, const char* uri_in);
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
|
|||||||
@@ -52,6 +52,7 @@ extern "C"
|
|||||||
* @param initialSize the initial capacity of the ringBuffer
|
* @param initialSize the initial capacity of the ringBuffer
|
||||||
* @return if the initialisation was successful
|
* @return if the initialisation was successful
|
||||||
*/
|
*/
|
||||||
|
WINPR_ATTR_NODISCARD
|
||||||
FREERDP_API BOOL ringbuffer_init(RingBuffer* rb, size_t initialSize);
|
FREERDP_API BOOL ringbuffer_init(RingBuffer* rb, size_t initialSize);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -67,6 +68,7 @@ extern "C"
|
|||||||
* @param ringbuffer A pointer to the ringbuffer
|
* @param ringbuffer A pointer to the ringbuffer
|
||||||
* @return the number of bytes stored in that ringbuffer
|
* @return the number of bytes stored in that ringbuffer
|
||||||
*/
|
*/
|
||||||
|
WINPR_ATTR_NODISCARD
|
||||||
FREERDP_API size_t ringbuffer_used(const RingBuffer* ringbuffer);
|
FREERDP_API size_t ringbuffer_used(const RingBuffer* ringbuffer);
|
||||||
|
|
||||||
/** returns the capacity of the ring buffer
|
/** returns the capacity of the ring buffer
|
||||||
@@ -74,6 +76,7 @@ extern "C"
|
|||||||
* @param ringbuffer A pointer to the ringbuffer
|
* @param ringbuffer A pointer to the ringbuffer
|
||||||
* @return the capacity of this ring buffer
|
* @return the capacity of this ring buffer
|
||||||
*/
|
*/
|
||||||
|
WINPR_ATTR_NODISCARD
|
||||||
FREERDP_API size_t ringbuffer_capacity(const RingBuffer* ringbuffer);
|
FREERDP_API size_t ringbuffer_capacity(const RingBuffer* ringbuffer);
|
||||||
|
|
||||||
/** writes some bytes in the ringbuffer, if the data doesn't fit, the ringbuffer
|
/** writes some bytes in the ringbuffer, if the data doesn't fit, the ringbuffer
|
||||||
@@ -84,6 +87,7 @@ extern "C"
|
|||||||
* @param sz the size of the data to add
|
* @param sz the size of the data to add
|
||||||
* @return if the operation was successful, it could fail in case of OOM during realloc()
|
* @return if the operation was successful, it could fail in case of OOM during realloc()
|
||||||
*/
|
*/
|
||||||
|
WINPR_ATTR_NODISCARD
|
||||||
FREERDP_API BOOL ringbuffer_write(RingBuffer* rb, const BYTE* ptr, size_t sz);
|
FREERDP_API BOOL ringbuffer_write(RingBuffer* rb, const BYTE* ptr, size_t sz);
|
||||||
|
|
||||||
/** ensures that we have sz bytes available at the write head, and return a pointer
|
/** ensures that we have sz bytes available at the write head, and return a pointer
|
||||||
@@ -93,6 +97,7 @@ extern "C"
|
|||||||
* @param sz the size to ensure
|
* @param sz the size to ensure
|
||||||
* @return a pointer on the write head, or NULL in case of OOM
|
* @return a pointer on the write head, or NULL in case of OOM
|
||||||
*/
|
*/
|
||||||
|
WINPR_ATTR_NODISCARD
|
||||||
FREERDP_API BYTE* ringbuffer_ensure_linear_write(RingBuffer* rb, size_t sz);
|
FREERDP_API BYTE* ringbuffer_ensure_linear_write(RingBuffer* rb, size_t sz);
|
||||||
|
|
||||||
/** move ahead the write head in case some byte were written directly by using
|
/** move ahead the write head in case some byte were written directly by using
|
||||||
@@ -104,6 +109,7 @@ extern "C"
|
|||||||
* @param sz the number of bytes that have been written
|
* @param sz the number of bytes that have been written
|
||||||
* @return if the operation was successful, FALSE is sz is too big
|
* @return if the operation was successful, FALSE is sz is too big
|
||||||
*/
|
*/
|
||||||
|
WINPR_ATTR_NODISCARD
|
||||||
FREERDP_API BOOL ringbuffer_commit_written_bytes(RingBuffer* rb, size_t sz);
|
FREERDP_API BOOL ringbuffer_commit_written_bytes(RingBuffer* rb, size_t sz);
|
||||||
|
|
||||||
/** peeks the buffer chunks for sz bytes and returns how many chunks are filled.
|
/** peeks the buffer chunks for sz bytes and returns how many chunks are filled.
|
||||||
@@ -114,6 +120,7 @@ extern "C"
|
|||||||
* @param sz the requested size
|
* @param sz the requested size
|
||||||
* @return the number of chunks used for reading sz bytes
|
* @return the number of chunks used for reading sz bytes
|
||||||
*/
|
*/
|
||||||
|
WINPR_ATTR_NODISCARD
|
||||||
FREERDP_API int ringbuffer_peek(const RingBuffer* rb, DataChunk chunks[2], size_t sz);
|
FREERDP_API int ringbuffer_peek(const RingBuffer* rb, DataChunk chunks[2], size_t sz);
|
||||||
|
|
||||||
/** move ahead the read head in case some byte were read using ringbuffer_peek()
|
/** move ahead the read head in case some byte were read using ringbuffer_peek()
|
||||||
|
|||||||
@@ -30,6 +30,7 @@ extern "C"
|
|||||||
|
|
||||||
typedef void (*freerdp_signal_handler_t)(int signum, const char* signame, void* context);
|
typedef void (*freerdp_signal_handler_t)(int signum, const char* signame, void* context);
|
||||||
|
|
||||||
|
WINPR_ATTR_NODISCARD
|
||||||
FREERDP_API int freerdp_handle_signals(void);
|
FREERDP_API int freerdp_handle_signals(void);
|
||||||
|
|
||||||
/** \brief registers a cleanup handler for non fatal signals.
|
/** \brief registers a cleanup handler for non fatal signals.
|
||||||
|
|||||||
@@ -41,20 +41,29 @@ extern "C"
|
|||||||
FREERDP_API void smartcard_call_context_free(scard_call_context* ctx);
|
FREERDP_API void smartcard_call_context_free(scard_call_context* ctx);
|
||||||
|
|
||||||
WINPR_ATTR_MALLOC(smartcard_call_context_free, 1)
|
WINPR_ATTR_MALLOC(smartcard_call_context_free, 1)
|
||||||
|
WINPR_ATTR_NODISCARD
|
||||||
FREERDP_API scard_call_context* smartcard_call_context_new(const rdpSettings* settings);
|
FREERDP_API scard_call_context* smartcard_call_context_new(const rdpSettings* settings);
|
||||||
|
|
||||||
FREERDP_API BOOL smartcard_call_context_signal_stop(scard_call_context* ctx, BOOL reset);
|
FREERDP_API BOOL smartcard_call_context_signal_stop(scard_call_context* ctx, BOOL reset);
|
||||||
|
WINPR_ATTR_NODISCARD
|
||||||
FREERDP_API BOOL smartcard_call_context_add(scard_call_context* ctx, const char* name);
|
FREERDP_API BOOL smartcard_call_context_add(scard_call_context* ctx, const char* name);
|
||||||
|
|
||||||
FREERDP_API BOOL smartcard_call_cancel_context(scard_call_context* ctx, SCARDCONTEXT context);
|
FREERDP_API BOOL smartcard_call_cancel_context(scard_call_context* ctx, SCARDCONTEXT context);
|
||||||
|
|
||||||
FREERDP_API BOOL smartcard_call_cancel_all_context(scard_call_context* ctx);
|
FREERDP_API BOOL smartcard_call_cancel_all_context(scard_call_context* ctx);
|
||||||
|
|
||||||
FREERDP_API BOOL smartcard_call_release_context(scard_call_context* ctx, SCARDCONTEXT context);
|
FREERDP_API BOOL smartcard_call_release_context(scard_call_context* ctx, SCARDCONTEXT context);
|
||||||
|
WINPR_ATTR_NODISCARD
|
||||||
FREERDP_API BOOL smartcard_call_is_configured(scard_call_context* ctx);
|
FREERDP_API BOOL smartcard_call_is_configured(scard_call_context* ctx);
|
||||||
|
|
||||||
|
WINPR_ATTR_NODISCARD
|
||||||
FREERDP_API BOOL smarcard_call_set_callbacks(scard_call_context* ctx, void* userdata,
|
FREERDP_API BOOL smarcard_call_set_callbacks(scard_call_context* ctx, void* userdata,
|
||||||
void* (*fn_new)(void*, SCARDCONTEXT),
|
void* (*fn_new)(void*, SCARDCONTEXT),
|
||||||
void (*fn_free)(void*));
|
void (*fn_free)(void*));
|
||||||
|
WINPR_ATTR_NODISCARD
|
||||||
FREERDP_API void* smartcard_call_get_context(scard_call_context* ctx, SCARDCONTEXT hContext);
|
FREERDP_API void* smartcard_call_get_context(scard_call_context* ctx, SCARDCONTEXT hContext);
|
||||||
|
|
||||||
|
WINPR_ATTR_NODISCARD
|
||||||
FREERDP_API LONG smartcard_irp_device_control_call(scard_call_context* context, wStream* out,
|
FREERDP_API LONG smartcard_irp_device_control_call(scard_call_context* context, wStream* out,
|
||||||
NTSTATUS* pIoStatus,
|
NTSTATUS* pIoStatus,
|
||||||
SMARTCARD_OPERATION* operation);
|
SMARTCARD_OPERATION* operation);
|
||||||
|
|||||||
@@ -86,9 +86,11 @@ extern "C"
|
|||||||
UINT32 outputBufferLength; /** @since version 3.13.0 */
|
UINT32 outputBufferLength; /** @since version 3.13.0 */
|
||||||
} SMARTCARD_OPERATION;
|
} SMARTCARD_OPERATION;
|
||||||
|
|
||||||
|
WINPR_ATTR_NODISCARD
|
||||||
FREERDP_API LONG smartcard_irp_device_control_decode(wStream* s, UINT32 CompletionId,
|
FREERDP_API LONG smartcard_irp_device_control_decode(wStream* s, UINT32 CompletionId,
|
||||||
UINT32 FileId,
|
UINT32 FileId,
|
||||||
SMARTCARD_OPERATION* operation);
|
SMARTCARD_OPERATION* operation);
|
||||||
|
|
||||||
FREERDP_API void smartcard_operation_free(SMARTCARD_OPERATION* op, BOOL allocated);
|
FREERDP_API void smartcard_operation_free(SMARTCARD_OPERATION* op, BOOL allocated);
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
|
|||||||
@@ -42,140 +42,192 @@ extern "C"
|
|||||||
FREERDP_API LONG smartcard_pack_write_size_align(wStream* s, size_t size, UINT32 alignment);
|
FREERDP_API LONG smartcard_pack_write_size_align(wStream* s, size_t size, UINT32 alignment);
|
||||||
FREERDP_API LONG smartcard_unpack_read_size_align(wStream* s, size_t size, UINT32 alignment);
|
FREERDP_API LONG smartcard_unpack_read_size_align(wStream* s, size_t size, UINT32 alignment);
|
||||||
|
|
||||||
|
WINPR_ATTR_NODISCARD
|
||||||
FREERDP_API SCARDCONTEXT smartcard_scard_context_native_from_redir(REDIR_SCARDCONTEXT* context);
|
FREERDP_API SCARDCONTEXT smartcard_scard_context_native_from_redir(REDIR_SCARDCONTEXT* context);
|
||||||
FREERDP_API void smartcard_scard_context_native_to_redir(REDIR_SCARDCONTEXT* context,
|
FREERDP_API void smartcard_scard_context_native_to_redir(REDIR_SCARDCONTEXT* context,
|
||||||
SCARDCONTEXT hContext);
|
SCARDCONTEXT hContext);
|
||||||
|
|
||||||
|
WINPR_ATTR_NODISCARD
|
||||||
FREERDP_API SCARDHANDLE smartcard_scard_handle_native_from_redir(REDIR_SCARDHANDLE* handle);
|
FREERDP_API SCARDHANDLE smartcard_scard_handle_native_from_redir(REDIR_SCARDHANDLE* handle);
|
||||||
FREERDP_API void smartcard_scard_handle_native_to_redir(REDIR_SCARDHANDLE* handle,
|
FREERDP_API void smartcard_scard_handle_native_to_redir(REDIR_SCARDHANDLE* handle,
|
||||||
SCARDHANDLE hCard);
|
SCARDHANDLE hCard);
|
||||||
|
|
||||||
|
WINPR_ATTR_NODISCARD
|
||||||
FREERDP_API LONG smartcard_unpack_common_type_header(wStream* s);
|
FREERDP_API LONG smartcard_unpack_common_type_header(wStream* s);
|
||||||
FREERDP_API void smartcard_pack_common_type_header(wStream* s);
|
FREERDP_API void smartcard_pack_common_type_header(wStream* s);
|
||||||
|
|
||||||
|
WINPR_ATTR_NODISCARD
|
||||||
FREERDP_API LONG smartcard_unpack_private_type_header(wStream* s);
|
FREERDP_API LONG smartcard_unpack_private_type_header(wStream* s);
|
||||||
FREERDP_API void smartcard_pack_private_type_header(wStream* s, UINT32 objectBufferLength);
|
FREERDP_API void smartcard_pack_private_type_header(wStream* s, UINT32 objectBufferLength);
|
||||||
|
|
||||||
|
WINPR_ATTR_NODISCARD
|
||||||
FREERDP_API LONG smartcard_unpack_establish_context_call(wStream* s,
|
FREERDP_API LONG smartcard_unpack_establish_context_call(wStream* s,
|
||||||
EstablishContext_Call* call);
|
EstablishContext_Call* call);
|
||||||
|
|
||||||
|
WINPR_ATTR_NODISCARD
|
||||||
FREERDP_API LONG smartcard_pack_establish_context_return(wStream* s,
|
FREERDP_API LONG smartcard_pack_establish_context_return(wStream* s,
|
||||||
const EstablishContext_Return* ret);
|
const EstablishContext_Return* ret);
|
||||||
|
|
||||||
|
WINPR_ATTR_NODISCARD
|
||||||
FREERDP_API LONG smartcard_unpack_context_call(wStream* s, Context_Call* call,
|
FREERDP_API LONG smartcard_unpack_context_call(wStream* s, Context_Call* call,
|
||||||
const char* name);
|
const char* name);
|
||||||
|
|
||||||
FREERDP_API void smartcard_trace_long_return(const Long_Return* ret, const char* name);
|
FREERDP_API void smartcard_trace_long_return(const Long_Return* ret, const char* name);
|
||||||
|
|
||||||
|
WINPR_ATTR_NODISCARD
|
||||||
FREERDP_API LONG smartcard_unpack_list_reader_groups_call(wStream* s,
|
FREERDP_API LONG smartcard_unpack_list_reader_groups_call(wStream* s,
|
||||||
ListReaderGroups_Call* call,
|
ListReaderGroups_Call* call,
|
||||||
BOOL unicode);
|
BOOL unicode);
|
||||||
|
|
||||||
|
WINPR_ATTR_NODISCARD
|
||||||
FREERDP_API LONG smartcard_pack_list_reader_groups_return(wStream* s,
|
FREERDP_API LONG smartcard_pack_list_reader_groups_return(wStream* s,
|
||||||
const ListReaderGroups_Return* ret,
|
const ListReaderGroups_Return* ret,
|
||||||
BOOL unicode);
|
BOOL unicode);
|
||||||
|
|
||||||
|
WINPR_ATTR_NODISCARD
|
||||||
FREERDP_API LONG smartcard_unpack_list_readers_call(wStream* s, ListReaders_Call* call,
|
FREERDP_API LONG smartcard_unpack_list_readers_call(wStream* s, ListReaders_Call* call,
|
||||||
BOOL unicode);
|
BOOL unicode);
|
||||||
|
|
||||||
|
WINPR_ATTR_NODISCARD
|
||||||
FREERDP_API LONG smartcard_pack_list_readers_return(wStream* s, const ListReaders_Return* ret,
|
FREERDP_API LONG smartcard_pack_list_readers_return(wStream* s, const ListReaders_Return* ret,
|
||||||
BOOL unicode);
|
BOOL unicode);
|
||||||
|
|
||||||
|
WINPR_ATTR_NODISCARD
|
||||||
FREERDP_API LONG
|
FREERDP_API LONG
|
||||||
smartcard_unpack_context_and_two_strings_a_call(wStream* s, ContextAndTwoStringA_Call* call);
|
smartcard_unpack_context_and_two_strings_a_call(wStream* s, ContextAndTwoStringA_Call* call);
|
||||||
|
|
||||||
|
WINPR_ATTR_NODISCARD
|
||||||
FREERDP_API LONG
|
FREERDP_API LONG
|
||||||
smartcard_unpack_context_and_two_strings_w_call(wStream* s, ContextAndTwoStringW_Call* call);
|
smartcard_unpack_context_and_two_strings_w_call(wStream* s, ContextAndTwoStringW_Call* call);
|
||||||
|
|
||||||
|
WINPR_ATTR_NODISCARD
|
||||||
FREERDP_API LONG smartcard_unpack_context_and_string_a_call(wStream* s,
|
FREERDP_API LONG smartcard_unpack_context_and_string_a_call(wStream* s,
|
||||||
ContextAndStringA_Call* call);
|
ContextAndStringA_Call* call);
|
||||||
|
|
||||||
|
WINPR_ATTR_NODISCARD
|
||||||
FREERDP_API LONG smartcard_unpack_context_and_string_w_call(wStream* s,
|
FREERDP_API LONG smartcard_unpack_context_and_string_w_call(wStream* s,
|
||||||
ContextAndStringW_Call* call);
|
ContextAndStringW_Call* call);
|
||||||
|
|
||||||
|
WINPR_ATTR_NODISCARD
|
||||||
FREERDP_API LONG smartcard_unpack_locate_cards_a_call(wStream* s, LocateCardsA_Call* call);
|
FREERDP_API LONG smartcard_unpack_locate_cards_a_call(wStream* s, LocateCardsA_Call* call);
|
||||||
|
|
||||||
|
WINPR_ATTR_NODISCARD
|
||||||
FREERDP_API LONG smartcard_pack_locate_cards_return(wStream* s, const LocateCards_Return* ret);
|
FREERDP_API LONG smartcard_pack_locate_cards_return(wStream* s, const LocateCards_Return* ret);
|
||||||
|
|
||||||
|
WINPR_ATTR_NODISCARD
|
||||||
FREERDP_API LONG smartcard_unpack_locate_cards_w_call(wStream* s, LocateCardsW_Call* call);
|
FREERDP_API LONG smartcard_unpack_locate_cards_w_call(wStream* s, LocateCardsW_Call* call);
|
||||||
|
|
||||||
|
WINPR_ATTR_NODISCARD
|
||||||
FREERDP_API LONG smartcard_pack_locate_cards_w_return(wStream* s, const LocateCardsW_Call* ret);
|
FREERDP_API LONG smartcard_pack_locate_cards_w_return(wStream* s, const LocateCardsW_Call* ret);
|
||||||
|
|
||||||
|
WINPR_ATTR_NODISCARD
|
||||||
FREERDP_API LONG smartcard_unpack_connect_a_call(wStream* s, ConnectA_Call* call);
|
FREERDP_API LONG smartcard_unpack_connect_a_call(wStream* s, ConnectA_Call* call);
|
||||||
|
|
||||||
|
WINPR_ATTR_NODISCARD
|
||||||
FREERDP_API LONG smartcard_unpack_connect_w_call(wStream* s, ConnectW_Call* call);
|
FREERDP_API LONG smartcard_unpack_connect_w_call(wStream* s, ConnectW_Call* call);
|
||||||
|
|
||||||
|
WINPR_ATTR_NODISCARD
|
||||||
FREERDP_API LONG smartcard_pack_connect_return(wStream* s, const Connect_Return* ret);
|
FREERDP_API LONG smartcard_pack_connect_return(wStream* s, const Connect_Return* ret);
|
||||||
|
|
||||||
|
WINPR_ATTR_NODISCARD
|
||||||
FREERDP_API LONG smartcard_unpack_reconnect_call(wStream* s, Reconnect_Call* call);
|
FREERDP_API LONG smartcard_unpack_reconnect_call(wStream* s, Reconnect_Call* call);
|
||||||
|
|
||||||
|
WINPR_ATTR_NODISCARD
|
||||||
FREERDP_API LONG smartcard_pack_reconnect_return(wStream* s, const Reconnect_Return* ret);
|
FREERDP_API LONG smartcard_pack_reconnect_return(wStream* s, const Reconnect_Return* ret);
|
||||||
|
|
||||||
|
WINPR_ATTR_NODISCARD
|
||||||
FREERDP_API LONG smartcard_unpack_hcard_and_disposition_call(wStream* s,
|
FREERDP_API LONG smartcard_unpack_hcard_and_disposition_call(wStream* s,
|
||||||
HCardAndDisposition_Call* call,
|
HCardAndDisposition_Call* call,
|
||||||
const char* name);
|
const char* name);
|
||||||
|
|
||||||
|
WINPR_ATTR_NODISCARD
|
||||||
FREERDP_API LONG smartcard_unpack_get_status_change_a_call(wStream* s,
|
FREERDP_API LONG smartcard_unpack_get_status_change_a_call(wStream* s,
|
||||||
GetStatusChangeA_Call* call);
|
GetStatusChangeA_Call* call);
|
||||||
|
|
||||||
|
WINPR_ATTR_NODISCARD
|
||||||
FREERDP_API LONG smartcard_unpack_get_status_change_w_call(wStream* s,
|
FREERDP_API LONG smartcard_unpack_get_status_change_w_call(wStream* s,
|
||||||
GetStatusChangeW_Call* call);
|
GetStatusChangeW_Call* call);
|
||||||
|
|
||||||
|
WINPR_ATTR_NODISCARD
|
||||||
FREERDP_API LONG smartcard_pack_get_status_change_return(wStream* s,
|
FREERDP_API LONG smartcard_pack_get_status_change_return(wStream* s,
|
||||||
const GetStatusChange_Return* ret,
|
const GetStatusChange_Return* ret,
|
||||||
BOOL unicode);
|
BOOL unicode);
|
||||||
|
|
||||||
|
WINPR_ATTR_NODISCARD
|
||||||
FREERDP_API LONG smartcard_unpack_state_call(wStream* s, State_Call* call);
|
FREERDP_API LONG smartcard_unpack_state_call(wStream* s, State_Call* call);
|
||||||
|
WINPR_ATTR_NODISCARD
|
||||||
FREERDP_API LONG smartcard_pack_state_return(wStream* s, const State_Return* ret);
|
FREERDP_API LONG smartcard_pack_state_return(wStream* s, const State_Return* ret);
|
||||||
|
|
||||||
|
WINPR_ATTR_NODISCARD
|
||||||
FREERDP_API LONG smartcard_unpack_status_call(wStream* s, Status_Call* call, BOOL unicode);
|
FREERDP_API LONG smartcard_unpack_status_call(wStream* s, Status_Call* call, BOOL unicode);
|
||||||
|
|
||||||
|
WINPR_ATTR_NODISCARD
|
||||||
FREERDP_API LONG smartcard_pack_status_return(wStream* s, const Status_Return* ret,
|
FREERDP_API LONG smartcard_pack_status_return(wStream* s, const Status_Return* ret,
|
||||||
BOOL unicode);
|
BOOL unicode);
|
||||||
|
|
||||||
|
WINPR_ATTR_NODISCARD
|
||||||
FREERDP_API LONG smartcard_unpack_get_attrib_call(wStream* s, GetAttrib_Call* call);
|
FREERDP_API LONG smartcard_unpack_get_attrib_call(wStream* s, GetAttrib_Call* call);
|
||||||
|
|
||||||
|
WINPR_ATTR_NODISCARD
|
||||||
FREERDP_API LONG smartcard_pack_get_attrib_return(wStream* s, const GetAttrib_Return* ret,
|
FREERDP_API LONG smartcard_pack_get_attrib_return(wStream* s, const GetAttrib_Return* ret,
|
||||||
DWORD dwAttrId, DWORD cbAttrCallLen);
|
DWORD dwAttrId, DWORD cbAttrCallLen);
|
||||||
|
|
||||||
|
WINPR_ATTR_NODISCARD
|
||||||
FREERDP_API LONG smartcard_unpack_set_attrib_call(wStream* s, SetAttrib_Call* call);
|
FREERDP_API LONG smartcard_unpack_set_attrib_call(wStream* s, SetAttrib_Call* call);
|
||||||
|
|
||||||
|
WINPR_ATTR_NODISCARD
|
||||||
FREERDP_API LONG smartcard_unpack_control_call(wStream* s, Control_Call* call);
|
FREERDP_API LONG smartcard_unpack_control_call(wStream* s, Control_Call* call);
|
||||||
|
|
||||||
|
WINPR_ATTR_NODISCARD
|
||||||
FREERDP_API LONG smartcard_pack_control_return(wStream* s, const Control_Return* ret);
|
FREERDP_API LONG smartcard_pack_control_return(wStream* s, const Control_Return* ret);
|
||||||
|
|
||||||
|
WINPR_ATTR_NODISCARD
|
||||||
FREERDP_API LONG smartcard_unpack_transmit_call(wStream* s, Transmit_Call* call);
|
FREERDP_API LONG smartcard_unpack_transmit_call(wStream* s, Transmit_Call* call);
|
||||||
|
|
||||||
|
WINPR_ATTR_NODISCARD
|
||||||
FREERDP_API LONG smartcard_pack_transmit_return(wStream* s, const Transmit_Return* ret);
|
FREERDP_API LONG smartcard_pack_transmit_return(wStream* s, const Transmit_Return* ret);
|
||||||
|
|
||||||
|
WINPR_ATTR_NODISCARD
|
||||||
FREERDP_API LONG smartcard_unpack_locate_cards_by_atr_a_call(wStream* s,
|
FREERDP_API LONG smartcard_unpack_locate_cards_by_atr_a_call(wStream* s,
|
||||||
LocateCardsByATRA_Call* call);
|
LocateCardsByATRA_Call* call);
|
||||||
|
|
||||||
|
WINPR_ATTR_NODISCARD
|
||||||
FREERDP_API LONG smartcard_unpack_locate_cards_by_atr_w_call(wStream* s,
|
FREERDP_API LONG smartcard_unpack_locate_cards_by_atr_w_call(wStream* s,
|
||||||
LocateCardsByATRW_Call* call);
|
LocateCardsByATRW_Call* call);
|
||||||
|
|
||||||
|
WINPR_ATTR_NODISCARD
|
||||||
FREERDP_API LONG smartcard_unpack_read_cache_a_call(wStream* s, ReadCacheA_Call* call);
|
FREERDP_API LONG smartcard_unpack_read_cache_a_call(wStream* s, ReadCacheA_Call* call);
|
||||||
|
|
||||||
|
WINPR_ATTR_NODISCARD
|
||||||
FREERDP_API LONG smartcard_unpack_read_cache_w_call(wStream* s, ReadCacheW_Call* call);
|
FREERDP_API LONG smartcard_unpack_read_cache_w_call(wStream* s, ReadCacheW_Call* call);
|
||||||
|
|
||||||
|
WINPR_ATTR_NODISCARD
|
||||||
FREERDP_API LONG smartcard_pack_read_cache_return(wStream* s, const ReadCache_Return* ret);
|
FREERDP_API LONG smartcard_pack_read_cache_return(wStream* s, const ReadCache_Return* ret);
|
||||||
|
|
||||||
|
WINPR_ATTR_NODISCARD
|
||||||
FREERDP_API LONG smartcard_unpack_write_cache_a_call(wStream* s, WriteCacheA_Call* call);
|
FREERDP_API LONG smartcard_unpack_write_cache_a_call(wStream* s, WriteCacheA_Call* call);
|
||||||
|
|
||||||
|
WINPR_ATTR_NODISCARD
|
||||||
FREERDP_API LONG smartcard_unpack_write_cache_w_call(wStream* s, WriteCacheW_Call* call);
|
FREERDP_API LONG smartcard_unpack_write_cache_w_call(wStream* s, WriteCacheW_Call* call);
|
||||||
|
|
||||||
|
WINPR_ATTR_NODISCARD
|
||||||
FREERDP_API LONG smartcard_unpack_get_transmit_count_call(wStream* s,
|
FREERDP_API LONG smartcard_unpack_get_transmit_count_call(wStream* s,
|
||||||
GetTransmitCount_Call* call);
|
GetTransmitCount_Call* call);
|
||||||
|
WINPR_ATTR_NODISCARD
|
||||||
FREERDP_API LONG smartcard_pack_get_transmit_count_return(wStream* s,
|
FREERDP_API LONG smartcard_pack_get_transmit_count_return(wStream* s,
|
||||||
const GetTransmitCount_Return* call);
|
const GetTransmitCount_Return* call);
|
||||||
|
|
||||||
|
WINPR_ATTR_NODISCARD
|
||||||
FREERDP_API LONG smartcard_unpack_get_reader_icon_call(wStream* s, GetReaderIcon_Call* call);
|
FREERDP_API LONG smartcard_unpack_get_reader_icon_call(wStream* s, GetReaderIcon_Call* call);
|
||||||
|
WINPR_ATTR_NODISCARD
|
||||||
FREERDP_API LONG smartcard_pack_get_reader_icon_return(wStream* s,
|
FREERDP_API LONG smartcard_pack_get_reader_icon_return(wStream* s,
|
||||||
const GetReaderIcon_Return* ret);
|
const GetReaderIcon_Return* ret);
|
||||||
|
|
||||||
|
WINPR_ATTR_NODISCARD
|
||||||
FREERDP_API LONG smartcard_unpack_get_device_type_id_call(wStream* s,
|
FREERDP_API LONG smartcard_unpack_get_device_type_id_call(wStream* s,
|
||||||
GetDeviceTypeId_Call* call);
|
GetDeviceTypeId_Call* call);
|
||||||
|
|
||||||
|
WINPR_ATTR_NODISCARD
|
||||||
FREERDP_API LONG smartcard_pack_device_type_id_return(wStream* s,
|
FREERDP_API LONG smartcard_pack_device_type_id_return(wStream* s,
|
||||||
const GetDeviceTypeId_Return* ret);
|
const GetDeviceTypeId_Return* ret);
|
||||||
|
|
||||||
|
|||||||
@@ -48,12 +48,16 @@ extern "C"
|
|||||||
SmartcardKeyInfo* key_info;
|
SmartcardKeyInfo* key_info;
|
||||||
} SmartcardCertInfo;
|
} SmartcardCertInfo;
|
||||||
|
|
||||||
|
WINPR_ATTR_NODISCARD
|
||||||
FREERDP_API BOOL smartcard_enumerateCerts(const rdpSettings* settings,
|
FREERDP_API BOOL smartcard_enumerateCerts(const rdpSettings* settings,
|
||||||
SmartcardCertInfo*** scCerts, size_t* retCount,
|
SmartcardCertInfo*** scCerts, size_t* retCount,
|
||||||
BOOL gateway);
|
BOOL gateway);
|
||||||
|
WINPR_ATTR_NODISCARD
|
||||||
FREERDP_API BOOL smartcard_getCert(const rdpContext* context, SmartcardCertInfo** cert,
|
FREERDP_API BOOL smartcard_getCert(const rdpContext* context, SmartcardCertInfo** cert,
|
||||||
BOOL gateway);
|
BOOL gateway);
|
||||||
|
|
||||||
FREERDP_API void smartcardCertInfo_Free(SmartcardCertInfo* pscCert);
|
FREERDP_API void smartcardCertInfo_Free(SmartcardCertInfo* pscCert);
|
||||||
|
|
||||||
FREERDP_API void smartcardCertList_Free(SmartcardCertInfo** pscCert, size_t count);
|
FREERDP_API void smartcardCertList_Free(SmartcardCertInfo** pscCert, size_t count);
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
|
|||||||
@@ -36,13 +36,17 @@ extern "C"
|
|||||||
UINT32 count;
|
UINT32 count;
|
||||||
} STOPWATCH;
|
} STOPWATCH;
|
||||||
|
|
||||||
FREERDP_API STOPWATCH* stopwatch_create(void);
|
|
||||||
FREERDP_API void stopwatch_free(STOPWATCH* stopwatch);
|
FREERDP_API void stopwatch_free(STOPWATCH* stopwatch);
|
||||||
|
|
||||||
|
WINPR_ATTR_MALLOC(stopwatch_free, 1)
|
||||||
|
WINPR_ATTR_NODISCARD
|
||||||
|
FREERDP_API STOPWATCH* stopwatch_create(void);
|
||||||
|
|
||||||
FREERDP_API void stopwatch_start(STOPWATCH* stopwatch);
|
FREERDP_API void stopwatch_start(STOPWATCH* stopwatch);
|
||||||
FREERDP_API void stopwatch_stop(STOPWATCH* stopwatch);
|
FREERDP_API void stopwatch_stop(STOPWATCH* stopwatch);
|
||||||
FREERDP_API void stopwatch_reset(STOPWATCH* stopwatch);
|
FREERDP_API void stopwatch_reset(STOPWATCH* stopwatch);
|
||||||
|
|
||||||
|
WINPR_ATTR_NODISCARD
|
||||||
FREERDP_API double stopwatch_get_elapsed_time_in_seconds(STOPWATCH* stopwatch);
|
FREERDP_API double stopwatch_get_elapsed_time_in_seconds(STOPWATCH* stopwatch);
|
||||||
FREERDP_API void stopwatch_get_elapsed_time_in_useconds(STOPWATCH* stopwatch, UINT32* sec,
|
FREERDP_API void stopwatch_get_elapsed_time_in_useconds(STOPWATCH* stopwatch, UINT32* sec,
|
||||||
UINT32* usec);
|
UINT32* usec);
|
||||||
|
|||||||
@@ -30,8 +30,10 @@ extern "C"
|
|||||||
{
|
{
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
WINPR_ATTR_NODISCARD
|
||||||
FREERDP_API const char* rdp_redirection_flags_to_string(UINT32 flags, char* buffer,
|
FREERDP_API const char* rdp_redirection_flags_to_string(UINT32 flags, char* buffer,
|
||||||
size_t size);
|
size_t size);
|
||||||
|
WINPR_ATTR_NODISCARD
|
||||||
FREERDP_API const char* rdp_cluster_info_flags_to_string(UINT32 flags, char* buffer,
|
FREERDP_API const char* rdp_cluster_info_flags_to_string(UINT32 flags, char* buffer,
|
||||||
size_t size);
|
size_t size);
|
||||||
|
|
||||||
@@ -45,6 +47,7 @@ extern "C"
|
|||||||
*
|
*
|
||||||
* @since version 3.9.0
|
* @since version 3.9.0
|
||||||
*/
|
*/
|
||||||
|
WINPR_ATTR_NODISCARD
|
||||||
FREERDP_API BOOL freerdp_extract_key_value(const char* str, UINT32* pkey, UINT32* pvalue);
|
FREERDP_API BOOL freerdp_extract_key_value(const char* str, UINT32* pkey, UINT32* pvalue);
|
||||||
|
|
||||||
/** @brief Convert \ref FreeRDP_DesktopRotationFlags to string
|
/** @brief Convert \ref FreeRDP_DesktopRotationFlags to string
|
||||||
|
|||||||
Reference in New Issue
Block a user