- Update TinySAK to compile on MAC OSX.

- Update macro definitions (functions import/export) to support __GNUC__.
- General Bug Fix
This commit is contained in:
bossiel 2010-01-01 23:34:13 +00:00
parent 3073cabd29
commit 13b7f68770
192 changed files with 1481 additions and 551 deletions

View File

@ -31,4 +31,7 @@
#include "tinyhttp_config.h"
THTTP_BEGIN_DECLS
THTTP_END_DECLS
#endif /* TINYHTTP_THTTP_H */

View File

@ -33,6 +33,8 @@
#include "tsk_md5.h"
THTTP_BEGIN_DECLS
TINYHTTP_API size_t thttp_auth_basic_response(const char* userid, const char* password, char** response);
TINYHTTP_API int thttp_auth_digest_HA1(const char* username, const char* realm, const char* password, tsk_md5string_t* ha1);
@ -43,4 +45,6 @@ TINYHTTP_API int thttp_auth_digest_HA2(const char* method, const char* uri, cons
TINYHTTP_API int thttp_auth_digest_response(const tsk_md5string_t *ha1, const char* nonce, const char* noncecount, const char* cnonce,
const char* qop, const tsk_md5string_t* ha2, tsk_md5string_t* response);
#endif /* TINYHTTP_THTTP_H */
THTTP_END_DECLS
#endif /* TINYHTTP_THTTP_H */

View File

@ -23,33 +23,51 @@
#ifndef TINYHTTP_CONFIG_H
#define TINYHTTP_CONFIG_H
#if (defined(WIN32) || defined(_WIN32_WCE) || defined(__SYMBIAN32__)) && defined(TINYHTTP_EXPORTS)
# define TINYHTTP_API __declspec(dllexport)
#elif (defined(WIN32) || defined(_WIN32_WCE) || defined(__SYMBIAN32__)) && defined(TINYHTTP_IMPORTS)
# define TINYHTTP_API __declspec(dllimport)
#else
# define TINYHTTP_API
#if HAVE_CONFIG_H
#include "config.h"
#endif
#ifdef __SYMBIAN32__
#undef _WIN32 /* Because of WINSCW */
#endif
/* Windows (XP/Vista/7/CE and Windows Mobile) macro definition.
*/
#if defined(WIN32)|| defined(_WIN32) || defined(_WIN32_WCE)
# define THTTP_UNDER_WINDOWS 1
#endif
//
// Disable some well-known warnings
//
#if (THTTP_UNDER_WINDOWS || defined(__SYMBIAN32__)) && defined(TINYHTTP_EXPORTS)
# define TINYHTTP_API __declspec(dllexport)
# define TINYHTTP_GEXTERN __declspec(dllexport)
#elif (THTTP_UNDER_WINDOWS || defined(__SYMBIAN32__)) /*&& defined(TINYHTTP_IMPORTS)*/
# define TINYHTTP_API __declspec(dllimport)
# define TINYHTTP_GEXTERN __declspec(dllimport)
#else
# define TINYHTTP_API
# define TINYHTTP_GEXTERN extern
#endif
/* Guards against C++ name mangling
*/
#ifdef __cplusplus
# define THTTP_BEGIN_DECLS extern "C" {
# define THTTP_END_DECLS }
#else
# define THTTP_BEGIN_DECLS
# define THTTP_END_DECLS
#endif
/* Disable some well-known warnings
*/
#ifdef _MSC_VER
# define _CRT_SECURE_NO_WARNINGS
#endif
#ifdef __SYMBIAN32__
#undef _WIN32 /* Because of WINSCW */
#endif
#include <stdint.h>
#ifdef __SYMBIAN32__
#include <stdlib.h>
#endif
/* FIXME */
#define TINYSAK_IMPORTS
#define TINYNET_IMPORTS
#endif // TINYHTTP_CONFIG_H

View File

@ -42,6 +42,8 @@
#undef _WIN32 /* Because of WINSCW */
#endif
/* Windows (XP/Vista/7/CE and Windows Mobile) macro definition.
*/
#if defined(WIN32)|| defined(_WIN32) || defined(_WIN32_WCE)
# define TNET_UNDER_WINDOWS 1
#endif
@ -49,26 +51,34 @@
/**@def TINYNET_API
* Used on Windows and Sysbian systems to export public functions.
*/
#if (TNET_UNDER_WINDOWS || defined(__SYMBIAN32__)) && defined(TINYNET_EXPORTS)
#if !defined(__GNUC__) && defined(TINYNET_EXPORTS)
# define TINYNET_API __declspec(dllexport)
#elif (defined(WIN32) || defined(_WIN32_WCE) || defined(__SYMBIAN32__)) && defined(TINYNET_IMPORTS)
# define TINYNET_GEXTERN __declspec(dllexport)
#elif !defined(__GNUC__) /*&& defined(TINYNET_IMPORTS)*/
# define TINYNET_API __declspec(dllimport)
# define TINYNET_GEXTERN __declspec(dllimport)
#else
# define TINYNET_API
# define TINYNET_API
# define TINYNET_GEXTERN extern
#endif
//
// Disable some well-known warnings
//
/* Guards against C++ name mangling
*/
#ifdef __cplusplus
# define TNET_BEGIN_DECLS extern "C" {
# define TNET_END_DECLS }
#else
# define TNET_BEGIN_DECLS
# define TNET_END_DECLS
#endif
/* Disable some well-known warnings
*/
#ifdef _MSC_VER
# define _CRT_SECURE_NO_WARNINGS
# pragma warning( disable : 4996 )
#endif
#include <stdint.h>
#define TINYSAK_IMPORTS
#if (_WIN32_WINNT>=0x0600) || (ANDROID)
# define TNET_HAVE_POLL 1
#else
@ -81,5 +91,7 @@
# define TNET_USE_POLL 1
#endif
#include <stdint.h>
#endif /* _TINYNET_H_ */

View File

@ -32,7 +32,11 @@
#include "tinyNET_config.h"
TNET_BEGIN_DECLS
TINYNET_API int tnet_startup();
TINYNET_API int tnet_cleanup();
TNET_END_DECLS
#endif /* TNET_TNET_H */

View File

@ -32,5 +32,7 @@
#include "tinyNET_config.h"
TNET_BEGIN_DECLS
TNET_END_DECLS
#endif /* TNET_AUTH_H */

View File

@ -32,6 +32,8 @@
#include "tinyNET_config.h"
TNET_BEGIN_DECLS
#if TNET_USE_POLL
#include "tnet_types.h"
@ -90,4 +92,6 @@ int tnet_poll(tnet_pollfd_t fds[ ], tnet_nfds_t nfds, int timeout);
#endif /* TNET_USE_POLL */
TNET_END_DECLS
#endif /* TNET_POLL_H */

View File

@ -35,6 +35,7 @@
#include "tsk_list.h"
TNET_BEGIN_DECLS
/**@def TNET_SOCKET_CREATE
* Create a socket. You MUST use @ref TNET_SOCKET_SAFE_FREE to safely close and free the socket.
@ -141,6 +142,9 @@ TINYNET_API int tnet_socket_dgram_sendto(tnet_socket_tcp_t *socket, const struct
TINYNET_API const void *tnet_socket_def_t;
TINYNET_GEXTERN const void *tnet_socket_def_t;
TNET_END_DECLS
#endif /* TNET_SOCKET_H */

View File

@ -36,6 +36,8 @@
#include "tnet_utils.h"
#include "tsk_runnable.h"
TNET_BEGIN_DECLS
#define DGRAM_MAX_SIZE 8192
#define STREAM_MAX_SIZE 8192
@ -83,6 +85,8 @@ typedef struct tnet_transport_s
}
tnet_transport_t;
TINYNET_API const void *tnet_transport_def_t;
TINYNET_GEXTERN const void *tnet_transport_def_t;
TNET_END_DECLS
#endif /* TNET_SERVER_H */

View File

@ -50,6 +50,8 @@
#include "tsk_errno.h"
TNET_BEGIN_DECLS
typedef int32_t tnet_fd_t;
typedef uint16_t tnet_port_t;
typedef char tnet_host_t[NI_MAXHOST];
@ -73,6 +75,7 @@ typedef TCHAR tnet_error_t[512];
typedef char tnet_error_t[512];
#endif
TNET_END_DECLS
#endif /* TNET_TYPES_H */

View File

@ -31,9 +31,12 @@
#define TNET_UTILS_H
#include "tinyNET_config.h"
#include "tnet_socket.h"
#include "tnet_types.h"
TNET_BEGIN_DECLS
TINYNET_API void tnet_getlasterror(tnet_error_t *error);
TINYNET_API int tnet_geterrno();
@ -62,7 +65,7 @@ TINYNET_API int tnet_sockfd_close(tnet_fd_t *fd);
}
#include "tnet_socket.h"
TNET_END_DECLS
#endif /* TNET_UTILS_H */

View File

@ -34,7 +34,4 @@
// TODO: reference additional headers your program requires here
#define TINYSAK_IMPORTS
#define TINYNET_IMPORTS
#endif /* TEST_TNET_STDAFX_H */

View File

@ -34,10 +34,10 @@
#define RUN_TEST_LOOP 1
#define RUN_TEST_ALL 0
#define RUN_TEST_ALL 1
#define RUN_TEST_SOCKETS 0
#define RUN_TEST_TRANSPORT 0
#define RUN_TEST_AUTH 1
#define RUN_TEST_AUTH 0
#ifdef _WIN32_WCE
int _tmain(int argc, _TCHAR* argv[])

View File

@ -42,33 +42,44 @@
#undef _WIN32 /* Because of WINSCW */
#endif
/* Windows (XP/Vista/7/CE and Windows Mobile) macro definition.
*/
#if defined(WIN32)|| defined(_WIN32) || defined(_WIN32_WCE)
# define TSK_UNDER_WINDOWS 1
#endif
/**@def TINYSAK_API
* Used on Windows and Sysbian systems to export public functions.
/* Used on Windows and Sysbian systems to export/import public functions and global variables.
*/
#if (TSK_UNDER_WINDOWS || defined(__SYMBIAN32__)) && defined(TINYSAK_EXPORTS)
# define TINYSAK_API __declspec(dllexport)
#elif (defined(WIN32) || defined(_WIN32_WCE) || defined(__SYMBIAN32__)) && defined(TINYSAK_IMPORTS)
# define TINYSAK_API __declspec(dllimport)
#if !defined(__GNUC__) && defined(TINYSAK_EXPORTS)
# define TINYSAK_API __declspec(dllexport)
# define TINYSAK_GEXTERN __declspec(dllexport)
#elif !defined(__GNUC__) /*&& defined(TINYSAK_IMPORTS)*/
# define TINYSAK_API __declspec(dllimport)
# define TINYSAK_GEXTERN __declspec(dllimport)
#else
# define TINYSAK_API
# define TINYSAK_API
# define TINYSAK_GEXTERN extern
#endif
//
// Disable some well-known warnings
//
/* Guards against C++ name mangling
*/
#ifdef __cplusplus
# define TSK_BEGIN_DECLS extern "C" {
# define TSK_END_DECLS }
#else
# define TSK_BEGIN_DECLS
# define TSK_END_DECLS
#endif
/* Disable some well-known warnings
*/
#ifdef _MSC_VER
# define _CRT_SECURE_NO_WARNINGS
# pragma warning( disable : 4996 )
#endif
//
// Features
//
/* Features
*/
#if TSK_UNDER_WINDOWS
# define HAVE_GETTIMEOFDAY 0
#elif !HAVE_CONFIG_H
@ -85,6 +96,7 @@
#endif /* TSK_MAX */
#include <stdint.h>
#include <stddef.h>

View File

@ -32,6 +32,9 @@
#define _TINYSAK_SAK_H_
#include "tinySAK_config.h"
TSK_BEGIN_DECLS
#include "tsk_list.h"
#include "tsk_string.h"
#include "tsk_heap.h"
@ -60,4 +63,6 @@
#include "tsk_hmac.h"
#include "tsk_base64.h"
TSK_END_DECLS
#endif /* _TINYSAK_SAK_H_ */

View File

@ -32,10 +32,14 @@
#include "tinySAK_config.h"
TSK_BEGIN_DECLS
#define TSK_BASE64_ENCODE_LEN(IN_LEN) ((2 + (IN_LEN) - (((IN_LEN) + 2) % 3)) * 4 / 3)
#define TSK_BASE64_DECODE_LEN(IN_LEN) (((IN_LEN * 3)/4) + 2)
TINYSAK_API size_t tsk_base64_encode(const uint8_t* input, size_t input_size, char **output);
TINYSAK_API size_t tsk_base64_decode(const uint8_t* input, size_t input_size, char **output);
TSK_END_DECLS
#endif /* TINYSAK_BASE64_H */

View File

@ -34,6 +34,8 @@
#include <stdio.h>
TSK_BEGIN_DECLS
#define TSK_BINARY_REVERSE_2BYTE(value) ((Tsk_BitReverseTable256[value & 0xff] << 8) | (Tsk_BitReverseTable256[(value >> 8)]))
#define TSK_TO_U8(buffer) ((uint8_t*)buffer)
@ -124,4 +126,6 @@ static const unsigned char Tsk_BitReverseTable256[] =
0x0F, 0x8F, 0x4F, 0xCF, 0x2F, 0xAF, 0x6F, 0xEF, 0x1F, 0x9F, 0x5F, 0xDF, 0x3F, 0xBF, 0x7F, 0xFF
};
TSK_END_DECLS
#endif /* _TINYSAK_BINARYUTILS_H_ */

View File

@ -108,7 +108,7 @@ int tsk_buffer_append(tsk_buffer_t* self, const void* data, size_t size)
self->data = tsk_realloc(self->data, newsize);
if(self->data)
{
memcpy(((uint8_t*)TSK_BUFFER_DATA(self) + oldsize), data, size);
memcpy((void*)(TSK_BUFFER_TO_U8(self) + oldsize), data, size);
self->size = newsize;
return 0;
}

View File

@ -33,6 +33,8 @@
#include "tinySAK_config.h"
#include "tsk_list.h"
TSK_BEGIN_DECLS
#define TSK_BUFFER_CREATE(data, size) tsk_object_new(tsk_buffer_def_t, (const void*)data, (size_t)size)
#define TSK_BUFFER_SAFE_FREE(self) tsk_object_unref(self), self = 0
@ -60,7 +62,8 @@ TINYSAK_API int tsk_buffer_appendEx(tsk_buffer_t* self, const char* format, ...)
TINYSAK_API int tsk_buffer_append(tsk_buffer_t* self, const void* data, size_t size);
TINYSAK_API void tsk_buffer_cleanup(tsk_buffer_t* self);
TINYSAK_API const void *tsk_buffer_def_t;
TINYSAK_GEXTERN const void *tsk_buffer_def_t;
TSK_END_DECLS
#endif

View File

@ -47,7 +47,7 @@
# define TIMED_OUT ETIMEDOUT
#endif
#if ANDROID
#if defined(__GNUC__)
# include <errno.h>
#endif

View File

@ -33,6 +33,8 @@
#include "tinySAK_config.h"
#include "tsk_mutex.h"
TSK_BEGIN_DECLS
/**
* Pthread condwait handle.
*/
@ -45,4 +47,6 @@ TINYSAK_API int tsk_condwait_signal(tsk_condwait_handle_t* handle);
TINYSAK_API int tsk_condwait_broadcast(tsk_condwait_handle_t* handle);
TINYSAK_API void tsk_condwait_destroy(tsk_condwait_handle_t** handle);
TSK_END_DECLS
#endif /* _TINYSAK_CONDWAIT_H_ */

View File

@ -33,6 +33,8 @@
#include "tinySAK_config.h"
#include <stdio.h>
TSK_BEGIN_DECLS
#ifndef DEBUG_LEVEL
#define DEBUG_LEVEL DEBUG_LEVEL_ERROR
#endif
@ -78,8 +80,10 @@
#define TSK_DEBUG_FATAL(FMT, ...) ((void)0)
#endif
//__GNUC_VA_LIST
/* FIXME */
#if defined(__SYMBIAN32__) || defined(ANDROID)
#if defined(__SYMBIAN32__) || defined(ANDROID) || defined(__GNUC__)
#undef TSK_DEBUG_INFO
#define TSK_DEBUG_INFO printf
@ -90,7 +94,11 @@
#undef TSK_DEBUG_ERROR
#define TSK_DEBUG_ERROR printf
#undef TSK_DEBUG_FATAL
#define TSK_DEBUG_FATAL printf
#endif
TSK_END_DECLS
#endif /* _TINYSAK_DEBUG_H_ */

View File

@ -32,6 +32,8 @@
#include "tinySAK_config.h"
TSK_BEGIN_DECLS
#ifndef _WIN32_WCE
# include <errno.h>
#else
@ -85,4 +87,6 @@
#endif
TSK_END_DECLS
#endif

View File

@ -36,116 +36,116 @@
typedef enum tsk_hash_type_e { md5, sha1 } tsk_hash_type_t;
int tsk_hmac_xxxcompute(const uint8_t* input, size_t input_size, const char* key, size_t key_size, tsk_hash_type_t type, uint8_t* digest)
{
#define TSK_MAX_BLOCK_SIZE TSK_SHA1_BLOCK_SIZE
size_t i, newkey_size;
size_t block_size = type == md5 ? TSK_MD5_BLOCK_SIZE : TSK_SHA1_BLOCK_SIZE; // Only SHA-1 and MD5 are supported for now
size_t digest_size = type == md5 ? TSK_MD5_DIGEST_SIZE : TSK_SHA1_DIGEST_SIZE;
char hkey [TSK_MAX_BLOCK_SIZE];
uint8_t ipad [TSK_MAX_BLOCK_SIZE];
uint8_t opad [TSK_MAX_BLOCK_SIZE];
memset(ipad, 0, sizeof(ipad));
memset(opad, 0, sizeof(ipad));
/*
* H(K XOR opad, H(K XOR ipad, input))
*/
// Check key len
if (key_size > block_size)
{
if(type == md5)
{
TSK_MD5_DIGEST_CALC(key, key_size, (uint8_t*)hkey);
}
else if(type == sha1)
{
TSK_SHA1_DIGEST_CALC(key, key_size, (uint8_t*)hkey);
}
else return -3;
newkey_size = digest_size;
}
else
{
memcpy(hkey, key, key_size);
newkey_size = key_size;
}
memcpy(ipad, hkey, newkey_size);
memcpy(opad, hkey, newkey_size);
/* [K XOR ipad] and [K XOR opad]*/
for (i=0; i<block_size; i++)
{
ipad[i] ^= 0x36;
opad[i] ^= 0x5c;
}
{
tsk_buffer_t *passx; // pass1 or pass2
int pass1_done = 0;
passx = TSK_BUFFER_CREATE(ipad, block_size); // pass1
tsk_buffer_append(passx, input, input_size);
digest_compute:
if(type == md5)
{
TSK_MD5_DIGEST_CALC(TSK_BUFFER_TO_U8(passx), TSK_BUFFER_SIZE(passx), digest);
}
else
{
TSK_SHA1_DIGEST_CALC(TSK_BUFFER_TO_U8(passx), TSK_BUFFER_SIZE(passx), digest);
}
if(pass1_done)
{
TSK_BUFFER_SAFE_FREE(passx);
goto pass1_and_pass2_done;
}
else
{
pass1_done = 1;
}
tsk_buffer_cleanup(passx);
tsk_buffer_append(passx, opad, block_size); // pass2
tsk_buffer_append(passx, digest, digest_size);
goto digest_compute;
}
pass1_and_pass2_done:
return 0;
}
/**
* @fn int hmac_md5_compute(const uint8_t* input, size_t input_size, const char* key,
* size_t key_size, tsk_md5string_t *result)
*
* @brief Calculate HMAC-MD5 hash (hexa-string) as per RFC 2104.
*
* @author Mamadou
* @date 12/29/2009
*
* @param [in,out] input The input data.
* @param input_size The size of the input.
* @param [in,out] key The input key.
* @param key_size The size of the input key.
* @param [out] result Pointer to the result.
*
* @return Zero if succeed and non-zero error code otherwise.
**/
int tsk_hmac_xxxcompute(const uint8_t* input, size_t input_size, const char* key, size_t key_size, tsk_hash_type_t type, uint8_t* digest)
{
#define TSK_MAX_BLOCK_SIZE TSK_SHA1_BLOCK_SIZE
size_t i, newkey_size;
size_t block_size = type == md5 ? TSK_MD5_BLOCK_SIZE : TSK_SHA1_BLOCK_SIZE; // Only SHA-1 and MD5 are supported for now
size_t digest_size = type == md5 ? TSK_MD5_DIGEST_SIZE : TSK_SHA1_DIGEST_SIZE;
char hkey [TSK_MAX_BLOCK_SIZE];
uint8_t ipad [TSK_MAX_BLOCK_SIZE];
uint8_t opad [TSK_MAX_BLOCK_SIZE];
memset(ipad, 0, sizeof(ipad));
memset(opad, 0, sizeof(ipad));
/*
* H(K XOR opad, H(K XOR ipad, input))
*/
// Check key len
if (key_size > block_size)
{
if(type == md5)
{
TSK_MD5_DIGEST_CALC(key, key_size, hkey);
}
else if(type == sha1)
{
TSK_SHA1_DIGEST_CALC(key, key_size, hkey);
}
else return -3;
newkey_size = digest_size;
}
else
{
memcpy(hkey, key, key_size);
newkey_size = key_size;
}
memcpy(ipad, hkey, newkey_size);
memcpy(opad, hkey, newkey_size);
/* [K XOR ipad] and [K XOR opad]*/
for (i=0; i<block_size; i++)
{
ipad[i] ^= 0x36;
opad[i] ^= 0x5c;
}
{
tsk_buffer_t *passx; // pass1 or pass2
int pass1_done = 0;
passx = TSK_BUFFER_CREATE(ipad, block_size); // pass1
tsk_buffer_append(passx, input, input_size);
digest_compute:
if(type == md5)
{
TSK_MD5_DIGEST_CALC(TSK_BUFFER_TO_U8(passx), TSK_BUFFER_SIZE(passx), digest);
}
else
{
TSK_SHA1_DIGEST_CALC(TSK_BUFFER_TO_U8(passx), TSK_BUFFER_SIZE(passx), digest);
}
if(pass1_done)
{
TSK_BUFFER_SAFE_FREE(passx);
goto pass1_and_pass2_done;
}
else
{
pass1_done = 1;
}
tsk_buffer_cleanup(passx);
tsk_buffer_append(passx, opad, block_size); // pass2
tsk_buffer_append(passx, digest, digest_size);
goto digest_compute;
}
pass1_and_pass2_done:
return 0;
}
/**
* @fn int hmac_md5_compute(const uint8_t* input, size_t input_size, const char* key,
* size_t key_size, tsk_md5string_t *result)
*
* @brief Calculate HMAC-MD5 hash (hexa-string) as per RFC 2104.
*
* @author Mamadou
* @date 12/29/2009
*
* @param [in,out] input The input data.
* @param input_size The size of the input.
* @param [in,out] key The input key.
* @param key_size The size of the input key.
* @param [out] result Pointer to the result.
*
* @return Zero if succeed and non-zero error code otherwise.
**/
int hmac_md5_compute(const uint8_t* input, size_t input_size, const char* key, size_t key_size, tsk_md5string_t *result)
{
tsk_md5digest_t digest;
@ -162,45 +162,45 @@ int hmac_md5_compute(const uint8_t* input, size_t input_size, const char* key, s
}
/**
* @fn int hmac_md5digest_compute(const uint8_t* input, size_t input_size, const char* key,
* size_t key_size, tsk_md5digest_t result)
*
* @brief Calculate HMAC-MD5 hash (bytes) as per RFC 2104.
*
* @author Mamadou
* @date 12/29/2009
*
* @param [in,out] input The input data.
* @param input_size The Size of the input.
* @param [in,out] key The input key.
* @param key_size The size of the input key.
* @param result Pointer to the result.
*
* @return Zero if succeed and non-zero error code otherwise.
**/
/**
* @fn int hmac_md5digest_compute(const uint8_t* input, size_t input_size, const char* key,
* size_t key_size, tsk_md5digest_t result)
*
* @brief Calculate HMAC-MD5 hash (bytes) as per RFC 2104.
*
* @author Mamadou
* @date 12/29/2009
*
* @param [in,out] input The input data.
* @param input_size The Size of the input.
* @param [in,out] key The input key.
* @param key_size The size of the input key.
* @param result Pointer to the result.
*
* @return Zero if succeed and non-zero error code otherwise.
**/
int hmac_md5digest_compute(const uint8_t* input, size_t input_size, const char* key, size_t key_size, tsk_md5digest_t result)
{
return tsk_hmac_xxxcompute(input, input_size, key, key_size, md5, result);
}
/**
* @fn int hmac_sha1_compute(const uint8_t* input, size_t input_size, const char* key,
* size_t key_size, tsk_sha1string_t *result)
*
* @brief Calculate HMAC-SHA-1 hash (hexa-string) as per RFC 2104.
*
* @author Mamadou
* @date 12/29/2009
*
* @param [in,out] input The input data.
* @param input_size The Size of the input.
* @param [in,out] key The input key.
* @param key_size The size of the input key.
* @param [out] result Pointer to the result.
*
* @return Zero if succeed and non-zero error code otherwise.
**/
/**
* @fn int hmac_sha1_compute(const uint8_t* input, size_t input_size, const char* key,
* size_t key_size, tsk_sha1string_t *result)
*
* @brief Calculate HMAC-SHA-1 hash (hexa-string) as per RFC 2104.
*
* @author Mamadou
* @date 12/29/2009
*
* @param [in,out] input The input data.
* @param input_size The Size of the input.
* @param [in,out] key The input key.
* @param key_size The size of the input key.
* @param [out] result Pointer to the result.
*
* @return Zero if succeed and non-zero error code otherwise.
**/
int hmac_sha1_compute(const uint8_t* input, size_t input_size, const char* key, size_t key_size, tsk_sha1string_t *result)
{
tsk_sha1digest_t digest;
@ -210,30 +210,30 @@ int hmac_sha1_compute(const uint8_t* input, size_t input_size, const char* key,
{
return ret;
}
tsk_str_from_hex(digest, TSK_SHA1_DIGEST_SIZE, *result);
tsk_str_from_hex((uint8_t*)digest, TSK_SHA1_DIGEST_SIZE, *result);
(*result)[TSK_SHA1_STRING_SIZE] = '\0';
return 0;
}
/**
* @fn int hmac_sha1digest_compute(const uint8_t* input, size_t input_size, const char* key,
* size_t key_size, tsk_sha1digest_t result)
*
* @brief Calculate HMAC-SHA-1 hash (bytes) as per RFC 2104.
*
* @author Mamadou
* @date 12/29/2009
*
* @param [in,out] input If non-null, the input.
* @param input_size The size of the input.
* @param [in,out] key The input key.
* @param key_size The size of the input key.
* @param result Pointer to the result.
*
* @return Zero if succeed and non-zero error code otherwise.
**/
/**
* @fn int hmac_sha1digest_compute(const uint8_t* input, size_t input_size, const char* key,
* size_t key_size, tsk_sha1digest_t result)
*
* @brief Calculate HMAC-SHA-1 hash (bytes) as per RFC 2104.
*
* @author Mamadou
* @date 12/29/2009
*
* @param [in,out] input If non-null, the input.
* @param input_size The size of the input.
* @param [in,out] key The input key.
* @param key_size The size of the input key.
* @param result Pointer to the result.
*
* @return Zero if succeed and non-zero error code otherwise.
**/
int hmac_sha1digest_compute(const uint8_t* input, size_t input_size, const char* key, size_t key_size, tsk_sha1digest_t result)
{
return tsk_hmac_xxxcompute(input, input_size, key, key_size, sha1, result);
return tsk_hmac_xxxcompute(input, input_size, key, key_size, sha1, (uint8_t*)result);
}

View File

@ -36,10 +36,14 @@
#include "tsk_sha1.h"
#include "tsk_md5.h"
TSK_BEGIN_DECLS
TINYSAK_API int hmac_md5_compute(const uint8_t* input, size_t input_size, const char* key, size_t key_size, tsk_md5string_t *result);
TINYSAK_API int hmac_md5digest_compute(const uint8_t* input, size_t input_size, const char* key, size_t key_size, tsk_md5digest_t result);
TINYSAK_API int hmac_sha1_compute(const uint8_t* input, size_t input_size, const char* key, size_t key_size, tsk_sha1string_t *result);
TINYSAK_API int hmac_sha1digest_compute(const uint8_t* input, size_t input_size, const char* key, size_t key_size, tsk_sha1digest_t result);
TSK_END_DECLS
#endif /* _TINYSAK_HMAC_H_ */

View File

@ -372,7 +372,7 @@ tsk_list_item_t* tsk_list_pop_first_item(tsk_list_t* list)
void tsk_list_push_item(tsk_list_t* list, tsk_list_item_t** item, int back)
{
int first = !list->head;
struct tsk_list_item_s** pivot = back ? &list->tail : &list->head;
//struct tsk_list_item_s** pivot = back ? &list->tail : &list->head;
if(back && list->tail) list->tail->next = *item, list->tail = *item;
else (*item)->next = list->head, list->head = *item;
@ -597,7 +597,7 @@ const void *tsk_list_item_def_t = &tsk_list_item_def_s;
//
static void* tsk_list_create(void *self, va_list *app)
{
tsk_list_t *list = self;
//tsk_list_t *list = self;
return self;
}

View File

@ -33,6 +33,8 @@
#include "tinySAK_config.h"
#include "tsk_object.h"
TSK_BEGIN_DECLS
/**@def TSK_LIST_CREATE
* Create and initialize a linked list.
* You MUST use @ref TSK_LIST_SAFE_FREE to free a linked list.
@ -134,7 +136,10 @@ TINYSAK_API const tsk_list_item_t* tsk_list_find_item_by_pred(const tsk_list_t*
TINYSAK_API const void *tsk_list_def_t;
TINYSAK_API const void *tsk_list_item_def_t;
TINYSAK_GEXTERN const void *tsk_list_def_t;
TINYSAK_GEXTERN const void *tsk_list_item_def_t;
TSK_END_DECLS
#endif /* _TINYSAK_LIST_H_ */

View File

@ -32,36 +32,39 @@
#include "tinySAK_config.h"
#define TSK_MD5_DIGEST_SIZE 16
#define TSK_MD5_BLOCK_SIZE 64
#define TSK_MD5_EMPTY "d41d8cd98f00b204e9800998ecf8427e"
#define TSK_MD5_STRING_SIZE (TSK_MD5_DIGEST_SIZE*2)
typedef char tsk_md5string_t[TSK_MD5_STRING_SIZE+1]; /**< Hexadecimal MD5 string. */
typedef uint8_t tsk_md5digest_t[TSK_MD5_DIGEST_SIZE]; /**< MD5 digest bytes. */
TSK_BEGIN_DECLS
#define TSK_MD5_DIGEST_SIZE 16
#define TSK_MD5_BLOCK_SIZE 64
#define TSK_MD5_EMPTY "d41d8cd98f00b204e9800998ecf8427e"
#define TSK_MD5_STRING_SIZE (TSK_MD5_DIGEST_SIZE*2)
typedef char tsk_md5string_t[TSK_MD5_STRING_SIZE+1]; /**< Hexadecimal MD5 string. */
typedef uint8_t tsk_md5digest_t[TSK_MD5_DIGEST_SIZE]; /**< MD5 digest bytes. */
#define TSK_MD5_DIGEST_CALC(input, input_size, digest) \
{ \
tsk_md5context_t ctx; \
tsk_md5init(&ctx); \
tsk_md5update(&ctx, (input), (input_size)); \
tsk_md5init(&ctx); \
tsk_md5update(&ctx, (const uint8_t*)(input), (input_size)); \
tsk_md5final((digest), &ctx); \
}
typedef struct tsk_md5context_s
{
uint32_t buf[4];
uint32_t bytes[2];
uint32_t in[16];
}
tsk_md5context_t;
TINYSAK_API void tsk_md5init(tsk_md5context_t *context);
TINYSAK_API void tsk_md5update(tsk_md5context_t *context, uint8_t const *buf, size_t len);
TINYSAK_API void tsk_md5final(tsk_md5digest_t digest, tsk_md5context_t *context);
TINYSAK_API void tsk_md5transform(uint32_t buf[4], uint32_t const in[TSK_MD5_DIGEST_SIZE]);
TINYSAK_API int tsk_md5compute(const char* input, size_t size, tsk_md5string_t *result);
}
typedef struct tsk_md5context_s
{
uint32_t buf[4];
uint32_t bytes[2];
uint32_t in[16];
}
tsk_md5context_t;
TINYSAK_API void tsk_md5init(tsk_md5context_t *context);
TINYSAK_API void tsk_md5update(tsk_md5context_t *context, uint8_t const *buf, size_t len);
TINYSAK_API void tsk_md5final(tsk_md5digest_t digest, tsk_md5context_t *context);
TINYSAK_API void tsk_md5transform(uint32_t buf[4], uint32_t const in[TSK_MD5_DIGEST_SIZE]);
TINYSAK_API int tsk_md5compute(const char* input, size_t size, tsk_md5string_t *result);
TSK_END_DECLS
#endif /* _TINYSAK_MD5_H_ */

View File

@ -32,8 +32,11 @@
#include "tinySAK_config.h"
#include "tsk_heap.h"
#include <stdlib.h> /* size_t */
TSK_BEGIN_DECLS
/** Safely free a pointer
*/
#define TSK_SAFE_FREE(ptr) (void)tsk_free((void**)(&ptr));
@ -45,4 +48,6 @@ TINYSAK_API void* tsk_realloc (void * ptr, size_t size);
TINYSAK_API void tsk_free(void** ptr);
TINYSAK_API void* tsk_calloc(size_t num, size_t size);
TSK_END_DECLS
#endif /* _TINYSAK_MEMORY_H_ */

View File

@ -40,7 +40,7 @@
typedef pthread_mutex_t* MUTEX_T;
#endif
#if ANDROID
#if defined(__GNUC__)
# include <errno.h>
#endif

View File

@ -32,6 +32,8 @@
#include "tinySAK_config.h"
TSK_BEGIN_DECLS
/**
* Pthread Mutex handle.
*/
@ -42,4 +44,6 @@ TINYSAK_API int tsk_mutex_lock(tsk_mutex_handle_t* handle);
TINYSAK_API int tsk_mutex_unlock(tsk_mutex_handle_t* handle);
TINYSAK_API void tsk_mutex_destroy(tsk_mutex_handle_t** handle);
TSK_END_DECLS
#endif /* _TINYSAK_MUTEX_H_ */

View File

@ -35,6 +35,8 @@
#include <stdarg.h>
#include <stdio.h>
TSK_BEGIN_DECLS
#define TSK_DECLARE_OBJECT \
const void* base; \
size_t refCount
@ -74,4 +76,6 @@ TINYSAK_API void* tsk_object_ref(void *self);
TINYSAK_API void* tsk_object_unref(void *self);
TINYSAK_API void tsk_object_delete(void *self);
TSK_END_DECLS
#endif /* TSK_OBJECT_H */

View File

@ -35,6 +35,8 @@
#include "tsk_list.h"
#include "tsk_buffer.h"
TSK_BEGIN_DECLS
#define TSK_PARAM_CREATE(name, value) tsk_object_new(tsk_param_def_t, name, value)
#define TSK_PARAM_SAFE_FREE(self) tsk_object_unref(self), self = 0
@ -61,6 +63,8 @@ TINYSAK_API int tsk_params_get_param_value_as_int(const tsk_params_L_t *self, co
TINYSAK_API int tsk_params_param_tostring(const tsk_param_t *param, tsk_buffer_t* output);
TINYSAK_API int tsk_params_tostring(const tsk_params_L_t *self, const char separator, tsk_buffer_t* output);
TINYSAK_API const void *tsk_param_def_t;
TINYSAK_GEXTERN const void *tsk_param_def_t;
TSK_END_DECLS
#endif /* _TINYSAK_PARAMS_H_ */

View File

@ -32,9 +32,13 @@
#include "tinySAK_config.h"
TSK_BEGIN_DECLS
#define TSK_PPPINITFCS16 0xffff /* Initial FCS value */
#define TSK_PPPGOODFCS16 0xf0b8 /* Good final FCS value */
TINYSAK_API uint16_t tsk_pppfcs16(register uint16_t fcs, register const uint8_t* cp, register int32_t len);
TSK_END_DECLS
#endif /* _TINYSAK_PPFCS16_H_ */

View File

@ -31,10 +31,13 @@
#define _TINYSAK_RUNNABLE_H_
#include "tinySAK_config.h"
#include "tsk_object.h"
#include "tsk_semaphore.h"
#include "tsk_list.h"
TSK_BEGIN_DECLS
typedef void * (*tsk_runnable_func_run)(void* self);
#define TSK_RUNNABLE(self) ((tsk_runnable_t*)(self))
@ -99,4 +102,6 @@ TINYSAK_API int tsk_runnable_start(tsk_runnable_t *self, const tsk_object_def_t
TINYSAK_API int tsk_runnable_enqueue(tsk_runnable_t *self, ...);
TINYSAK_API int tsk_runnable_stop(tsk_runnable_t *self);
TSK_END_DECLS
#endif /* _TINYSAK_RUNNABLE_H_ */

View File

@ -33,6 +33,8 @@
#include "tinySAK_config.h"
#include "tsk_mutex.h"
TSK_BEGIN_DECLS
#define TSK_DECLARE_SAFEOBJ\
union{ \
tsk_mutex_handle_t *mutex; \
@ -64,4 +66,6 @@
#define tsk_safeobj_unlock(safeobj) tsk_mutex_unlock(TSK_SAFEOBJ_MUTEX(safeobj))
#define tsk_safeobj_deinit(safeobj) tsk_mutex_destroy(&TSK_SAFEOBJ_MUTEX(safeobj))
TSK_END_DECLS
#endif /* _TINYSAK_SAFEOBJ_H_ */

View File

@ -41,7 +41,7 @@
typedef sem_t* SEMAPHORE_T;
#endif
#if ANDROID
#if defined(__GNUC__)
# include <errno.h>
#endif

View File

@ -32,6 +32,8 @@
#include "tinySAK_config.h"
TSK_BEGIN_DECLS
typedef void tsk_semaphore_handle_t;
TINYSAK_API tsk_semaphore_handle_t* tsk_semaphore_create();
@ -39,4 +41,6 @@ TINYSAK_API int tsk_semaphore_increment(tsk_semaphore_handle_t* handle);
TINYSAK_API int tsk_semaphore_decrement(tsk_semaphore_handle_t* handle);
TINYSAK_API void tsk_semaphore_destroy(tsk_semaphore_handle_t** handle);
TSK_END_DECLS
#endif /* _TINYSAK_SEMAPHORE_H_ */

View File

@ -470,41 +470,41 @@ void tsk_sha1final(uint8_t *Message_Digest, tsk_sha1context_t *context)
}
/**
* @fn tsk_sha1_errcode_t tsk_sha1compute(const char* input, size_t size,
* tsk_sha1string_t *result)
*
* @brief Calculate SHA-1 HASH for @ref input data.
*
* @author Mamadou
* @date 12/28/2009
*
* @param [in,out] input The input data for which to calculate the SHA-1 hash.
* @param size The size of the input data.
* @param [out] result SHA-1 hash result as hexadecimal string.
*
* @return @ref shaSuccess if succeed and error code otherwise.
**/
/**
* @fn tsk_sha1_errcode_t tsk_sha1compute(const char* input, size_t size,
* tsk_sha1string_t *result)
*
* @brief Calculate SHA-1 HASH for @ref input data.
*
* @author Mamadou
* @date 12/28/2009
*
* @param [in,out] input The input data for which to calculate the SHA-1 hash.
* @param size The size of the input data.
* @param [out] result SHA-1 hash result as hexadecimal string.
*
* @return @ref shaSuccess if succeed and error code otherwise.
**/
tsk_sha1_errcode_t tsk_sha1compute(const char* input, size_t size, tsk_sha1string_t *result)
{
tsk_sha1_errcode_t ret;
tsk_sha1context_t sha;
uint8_t digest[TSK_SHA1_DIGEST_SIZE];
tsk_sha1context_t sha;
uint8_t digest[TSK_SHA1_DIGEST_SIZE];
(*result)[TSK_SHA1_STRING_SIZE] = '\0';
if( (ret = tsk_sha1reset(&sha)) != shaSuccess )
{
return ret;
}
else if ( (ret = tsk_sha1input(&sha, input, size)) != shaSuccess )
{
return ret;
}
else if( (ret = tsk_sha1result(&sha, digest)) != shaSuccess )
{
return ret;
}
if( (ret = tsk_sha1reset(&sha)) != shaSuccess )
{
return ret;
}
else if ( (ret = tsk_sha1input(&sha, (uint8_t*)input, size)) != shaSuccess )
{
return ret;
}
else if( (ret = tsk_sha1result(&sha, (char*)digest)) != shaSuccess )
{
return ret;
}
tsk_str_from_hex(digest, TSK_SHA1_DIGEST_SIZE, *result);

View File

@ -32,6 +32,8 @@
#include "tinySAK_config.h"
TSK_BEGIN_DECLS
typedef enum tsk_sha1_errcode_e
{
shaSuccess = 0,
@ -45,15 +47,15 @@ tsk_sha1_errcode_t;
#define TSK_SHA1_DIGEST_SIZE 20
#define TSK_SHA1_BLOCK_SIZE 64
#define TSK_SHA1_STRING_SIZE (TSK_SHA1_DIGEST_SIZE*2)
#define TSK_SHA1_STRING_SIZE (TSK_SHA1_DIGEST_SIZE*2)
typedef char tsk_sha1string_t[TSK_SHA1_STRING_SIZE+1]; /**< Hexadecimal SHA-1 digest string. */
typedef char tsk_sha1digest_t[TSK_SHA1_DIGEST_SIZE]; /**< SHA-1 digest bytes. */
#define TSK_SHA1_DIGEST_CALC(input, input_size, digest) \
{ \
tsk_sha1context_t ctx; \
tsk_sha1reset(&ctx); \
tsk_sha1input(&ctx, (input), (input_size)); \
tsk_sha1reset(&ctx); \
tsk_sha1input(&ctx, (input), (input_size)); \
tsk_sha1result(&ctx, (digest)); \
}
@ -85,7 +87,8 @@ TINYSAK_API tsk_sha1_errcode_t tsk_sha1reset(tsk_sha1context_t *);
TINYSAK_API tsk_sha1_errcode_t tsk_sha1input(tsk_sha1context_t *, const uint8_t *, unsigned int32_t);
TINYSAK_API tsk_sha1_errcode_t tsk_sha1result(tsk_sha1context_t *, tsk_sha1digest_t Message_Digest);
TINYSAK_API void tsk_sha1final(uint8_t *Message_Digest, tsk_sha1context_t *context);
TINYSAK_API tsk_sha1_errcode_t tsk_sha1compute(const char* input, size_t size, tsk_sha1string_t *result);
TINYSAK_API tsk_sha1_errcode_t tsk_sha1compute(const char* input, size_t size, tsk_sha1string_t *result);
TSK_END_DECLS
#endif /* _TINYSAK_SHA1_H_ */

View File

@ -44,8 +44,9 @@
# define vsnprintf _vsnprintf
# define strdup _strdup
# define stricmp _stricmp
#elif ANDROID
#elif defined(__GNUC__)
# define stricmp strcasecmp
# define strnicmp strncasecmp
#endif
/**@defgroup tsk_string_group String utils
@ -295,60 +296,60 @@ void tsk_itoa(int64_t i, tsk_istr_t *result)
}
/**
* @fn void tsk_strrandom(tsk_istr_t *result)
*
* @brief Generates a random string.
*
* @author Mamadou
* @date 12/27/2009
*
* @param [out] result A pointer to the result.
**/
/**
* @fn void tsk_strrandom(tsk_istr_t *result)
*
* @brief Generates a random string.
*
* @author Mamadou
* @date 12/27/2009
*
* @param [out] result A pointer to the result.
**/
void tsk_strrandom(tsk_istr_t *result)
{
uint64_t epoch = tsk_time_epoch();
tsk_itoa(epoch, result);
}
/**
* @fn void tsk_str_from_hex(const uint8_t *hex, size_t size, char* str)
*
* @brief Converts hexadecimal bytes into string representation.
*
* @author Mamadou
* @date 12/27/2009
*
* @param [in,out] hex The hexadecimal bytes to convert.
* @param size The size of the hexadecimal bytes.
* @param [in,out] str The pointer to the result. MUST be enought large to hold the result.
* It is up to you to add the final '\0'.
* @sa @ref tsk_str_to_hex
**/
/**
* @fn void tsk_str_from_hex(const uint8_t *hex, size_t size, char* str)
*
* @brief Converts hexadecimal bytes into string representation.
*
* @author Mamadou
* @date 12/27/2009
*
* @param [in,out] hex The hexadecimal bytes to convert.
* @param size The size of the hexadecimal bytes.
* @param [in,out] str The pointer to the result. MUST be enought large to hold the result.
* It is up to you to add the final '\0'.
* @sa @ref tsk_str_to_hex
**/
void tsk_str_from_hex(const uint8_t *hex, size_t size, char* str)
{
static const char *TSK_HEXA_VALUES = {"0123456789abcdef"};
size_t i;
for (i = 0 ; i<size; i++)
{
str[2*i] = TSK_HEXA_VALUES [ (*(hex+i) & 0xf0) >> 4 ];
str[(2*i)+1] = TSK_HEXA_VALUES [ (*(hex+i) & 0x0f) ];
for (i = 0 ; i<size; i++)
{
str[2*i] = TSK_HEXA_VALUES [ (*(hex+i) & 0xf0) >> 4 ];
str[(2*i)+1] = TSK_HEXA_VALUES [ (*(hex+i) & 0x0f) ];
}
}
/**
* @fn void tsk_str_to_hex(const char *str, size_t size, uint8_t* hex)
*
* @brief Converts string chars into hexadecimal bytes.
*
* @author Mamadou
* @date 12/27/2009
*
* @param [in,out] str If non-null, the string.
* @param size The size.
* @param [in,out] hex If non-null, the hexadecimal.
**/
/**
* @fn void tsk_str_to_hex(const char *str, size_t size, uint8_t* hex)
*
* @brief Converts string chars into hexadecimal bytes.
*
* @author Mamadou
* @date 12/27/2009
*
* @param [in,out] str If non-null, the string.
* @param size The size.
* @param [in,out] hex If non-null, the hexadecimal.
**/
void tsk_str_to_hex(const char *str, size_t size, uint8_t* hex)
{
TSK_DEBUG_FATAL("Not implemented.");

View File

@ -31,10 +31,13 @@
#define _TINYSAK_STRING_H_
#include "tinySAK_config.h"
#include "tsk_heap.h"
#include "tsk_object.h"
#include "tsk_list.h"
TSK_BEGIN_DECLS
#define TSK_STRING_CREATE(str) tsk_object_new(tsk_string_def_t, str)
#define TSK_STRING_SAFE_FREE(self) tsk_object_unref(self), self = 0
#define TSK_STRING_STR(self) ((tsk_string_t*)self)->value
@ -78,6 +81,8 @@ tsk_string_t;
typedef tsk_list_t tsk_strings_L_t;
TINYSAK_API const void *tsk_string_def_t;
TINYSAK_GEXTERN const void *tsk_string_def_t;
TSK_END_DECLS
#endif /* _TINYSAK_STRING_H_ */

View File

@ -32,9 +32,13 @@
#include "tinySAK_config.h"
TSK_BEGIN_DECLS
TINYSAK_API void tsk_thread_sleep(uint64_t ms);
TINYSAK_API int tsk_thread_create(void** tid, void *(*start) (void *), void *arg);
TINYSAK_API int tsk_thread_join(void** tid);
TSK_END_DECLS
#endif

View File

@ -36,6 +36,8 @@
# include <windows.h>
#elif defined(__SYMBIAN32__)
# include <_timeval.h>
#else
# include <sys/time.h>
#endif
#include <time.h>

View File

@ -32,6 +32,8 @@
#include "tinySAK_config.h"
TSK_BEGIN_DECLS
//#if defined(__SYMBIAN32__) || ANDROID /* Forward declaration */
struct timeval;
struct timezone;
@ -61,4 +63,6 @@ TINYSAK_API uint64_t tsk_time_epoch();
//
//#endif
TSK_END_DECLS
#endif /* _TINYSAK_TIME_H_ */

View File

@ -78,7 +78,6 @@ typedef tsk_list_t tsk_timers_L_t; /**< List of @ref tsk_timer_t elements. */
typedef struct tsk_timer_manager_s
{
TSK_DECLARE_RUNNABLE;
unsigned active:1;
void* mainThreadId[1];
tsk_condwait_handle_t *condwait;
@ -103,7 +102,7 @@ int tsk_timer_manager_start(tsk_timer_manager_handle_t *self)
{
int err = -1;
tsk_timer_manager_t *manager = self;
if(manager && !manager->running)
if(manager && !TSK_RUNNABLE(manager)->running)
{
TSK_RUNNABLE(manager)->run = run;
if(err = tsk_runnable_start(TSK_RUNNABLE(manager), tsk_timer_def_t))
@ -160,7 +159,7 @@ int tsk_timer_manager_stop(tsk_timer_manager_handle_t *self)
{
int ret = -1;
tsk_timer_manager_t *manager = self;
if(manager && manager->running)
if(manager && TSK_RUNNABLE(manager)->running)
{
if(ret = tsk_runnable_stop(TSK_RUNNABLE(manager)))
{
@ -180,7 +179,7 @@ tsk_timer_id_t tsk_timer_manager_schedule(tsk_timer_manager_handle_t *self, uint
tsk_timer_id_t timer_id = TSK_INVALID_TIMER_ID;
tsk_timer_manager_t *manager = self;
if(manager && manager->running)
if(manager && TSK_RUNNABLE(manager)->running)
{
tsk_timer_t *timer;
@ -201,7 +200,7 @@ int tsk_timer_manager_cancel(tsk_timer_manager_handle_t *self, tsk_timer_id_t id
{
int ret = -1;
tsk_timer_manager_t *manager = self;
if(!TSK_LIST_IS_EMPTY(manager->timers) && manager->running)
if(!TSK_LIST_IS_EMPTY(manager->timers) && TSK_RUNNABLE(manager)->running)
{
const tsk_list_item_t *item;
tsk_mutex_lock(manager->mutex);
@ -265,12 +264,12 @@ static void *__tsk_timer_manager_mainthread(void *param)
//TSK_DEBUG_INFO("TIMER MANAGER -- START");
manager->active = 1;
while(manager->running)
while(TSK_RUNNABLE(manager)->running)
{
tsk_semaphore_decrement(manager->sem);
peek_first:
if(!manager->running)
if(!TSK_RUNNABLE(manager)->running)
{
break;
}

View File

@ -32,6 +32,8 @@
#include "tinySAK_config.h"
TSK_BEGIN_DECLS
#define TSK_TIMER_MANAGER_CREATE() tsk_object_new(tsk_timer_manager_def_t)
#define TSK_TIMER_MANAGER_SAFE_FREE(self) tsk_object_unref(self), self = 0
#define TSK_TIMER_CALLBACK(callback) ((tsk_timer_callback)callback)
@ -54,7 +56,9 @@ TINYSAK_API void tsk_timer_manager_debug(tsk_timer_manager_handle_t *self);
TINYSAK_API tsk_timer_id_t tsk_timer_manager_schedule(tsk_timer_manager_handle_t *self, uint64_t timeout, tsk_timer_callback callback, const void *arg);
TINYSAK_API int tsk_timer_manager_cancel(tsk_timer_manager_handle_t *self, tsk_timer_id_t id);
TINYSAK_API const void *tsk_timer_def_t;
TINYSAK_API const void *tsk_timer_manager_def_t;
TINYSAK_GEXTERN const void *tsk_timer_def_t;
TINYSAK_GEXTERN const void *tsk_timer_manager_def_t;
TSK_END_DECLS
#endif /* _TINYSAK_TIMER_H_ */

View File

@ -31,9 +31,14 @@
#define _TINYSAK_URL_H_
#include "tinySAK_config.h"
#include "tsk_heap.h"
TSK_BEGIN_DECLS
TINYSAK_API char* tsk_url_encode(const char* url);
TINYSAK_API char* tsk_url_decode(const char* url);
TSK_END_DECLS
#endif /* _TINYSAK_URL_H_ */

View File

@ -166,9 +166,9 @@ TINYSAK_API xmlNsPtr tsk_xml_get_namespace(xmlDocPtr docPtr, xmlNodePtr node, co
TINYSAK_API xmlNodePtr tsk_xml_find_node(const xmlNodePtr curr, const char* name, tsk_xml_node_find_type_t ftype);
TINYSAK_API xmlNodePtr tsk_xml_select_node(const xmlNodePtr root, ...);
TINYSAK_API const void *tsk_xml_namespace_def_t;
TINYSAK_API const void *tsk_xml_attribute_def_t;
TINYSAK_API const void *tsk_xml_element_def_t;
TINYSAK_GEXTERN const void *tsk_xml_namespace_def_t;
TINYSAK_GEXTERN const void *tsk_xml_attribute_def_t;
TINYSAK_GEXTERN const void *tsk_xml_element_def_t;
#endif /* HAVE_LIBXML2_H */

View File

@ -31,7 +31,7 @@
#include <tchar.h>
#endif
#define TINYSAK_IMPORTS
//#define TINYSAK_IMPORTS
// TODO: reference additional headers your program requires here
#endif /* TEST_TINYSAK_STDAFX_H */

View File

@ -33,7 +33,7 @@
#define LOOP 1
#define RUN_TEST_ALL 0
#define RUN_TEST_ALL 1
#define RUN_TEST_LISTS 0
#define RUN_TEST_HEAP 0
#define RUN_TEST_STRINGS 0
@ -49,7 +49,7 @@
#define RUN_TEST_BUFFER 0
#define RUN_TEST_MD5 0
#define RUN_TEST_SHA1 0
#define RUN_TEST_BASE64 1
#define RUN_TEST_BASE64 0
#if RUN_TEST_LISTS || RUN_TEST_ALL
#include "test_lists.h"

View File

@ -33,5 +33,7 @@
#include "tinysigcomp_config.h"
TCOMP_BEGIN_DECLS
TCOMP_END_DECLS
#endif /* _TINYSIGCOMPP_TCOMP_H_ */

View File

@ -31,9 +31,10 @@
#define TCOMP_BUFFER_H
#include "tinysigcomp_config.h"
#include "tsk_object.h"
#include <stdint.h>
TCOMP_BEGIN_DECLS
#define TCOMP_P_BIT_MSB_TO_LSB 0
#define TCOMP_P_BIT_LSB_TO_MSB 1
@ -84,6 +85,8 @@ void tcomp_buffer_nprint(tcomp_buffer_handle_t* handle, size_t size);
void tcomp_buffer_reset(tcomp_buffer_handle_t* handle);
TINYSIGCOMP_API const void *tcomp_buffer_def_t;
TINYSIGCOMP_GEXTERN const void *tcomp_buffer_def_t;
TCOMP_END_DECLS
#endif /* TCOMP_BUFFER_H */

View File

@ -31,6 +31,7 @@
#define TCOMP_COMPARTMENT_H
#include "tinysigcomp_config.h"
#include "tcomp_types.h"
#include "tcomp_params.h"
#include "tcomp_compressordata.h"
@ -40,7 +41,7 @@
#include "tsk_object.h"
#include "tsk_sha1.h"
#include <stdint.h>
TCOMP_BEGIN_DECLS
#define TCOMP_COMPARTMENT_CREATE(id, sigCompParameters) tsk_object_new(tcomp_compartment_def_t, (uint64_t)id, (uint16_t)sigCompParameters)
#define TCOMP_COMPARTMENT_SAFE_FREE(self) tsk_object_unref(self), self = 0
@ -98,6 +99,8 @@ void tcomp_compartment_addNack(tcomp_compartment_t *compartment, const uint8_t n
int tcomp_compartment_hasNack(tcomp_compartment_t *compartment, const tcomp_buffer_handle_t *nackId);
TINYSIGCOMP_API const void *tcomp_compartment_def_t;
TINYSIGCOMP_GEXTERN const void *tcomp_compartment_def_t;
TCOMP_END_DECLS
#endif /* TCOMP_COMPARTMENT_H */

View File

@ -33,7 +33,7 @@
#include "tinysigcomp_config.h"
#include "tcomp_compartment.h"
#include <stdint.h>
TCOMP_BEGIN_DECLS
////////////////////////////////////////////////////////////////////////////////////////////////////
/// @typedef int (*tcomp_compressor_compress)(tcomp_compartment_t *lpCompartment,
@ -44,4 +44,6 @@
////////////////////////////////////////////////////////////////////////////////////////////////////
typedef int (*tcomp_compressor_compress)(tcomp_compartment_t *lpCompartment, const void *input_ptr, size_t input_size, void *output_ptr, size_t *output_size, int stream);
TCOMP_END_DECLS
#endif /* TCOMP_COMPRESSOR_H */

View File

@ -33,6 +33,10 @@
#include "tinysigcomp_config.h"
#include "tcomp_compartment.h"
TCOMP_BEGIN_DECLS
int tcomp_compressor_deflate_compress(tcomp_compartment_t *lpCompartment, const void *input_ptr, size_t input_size, void *output_ptr, size_t *output_size, int stream);
TCOMP_END_DECLS
#endif /* TCOMP_COMPRESSORDEFLATE_H */

View File

@ -33,8 +33,11 @@
#include "tinysigcomp_config.h"
#include "tcomp_compartment.h"
#include <stdint.h>
TCOMP_BEGIN_DECLS
int tcomp_compressor_dummy_compress(tcomp_compartment_t *lpCompartment, const void *input_ptr, size_t input_size, void *output_ptr, size_t *output_size, int stream);
TCOMP_END_DECLS
#endif /* TCOMP_COMPRESSOR_DUMMY_H */

View File

@ -33,6 +33,8 @@
#include "tinysigcomp_config.h"
#include "tcomp_buffer.h"
TCOMP_BEGIN_DECLS
typedef void tcomp_compressordata_t;
typedef void (*tcomp_xxx_freeGhostState)(tcomp_compressordata_t *data);
@ -67,6 +69,8 @@ typedef void (*tcomp_xxx_ackGhost)(tcomp_compressordata_t *data, const tcomp_buf
//void tcomp_compressordata_ackGhost(tcomp_compressordata_t *compdata, const tcomp_buffer_handle_t *stateid);
//void tcomp_compressordata_freeGhostState(tcomp_compressordata_t *compdata);
//
//TINYSIGCOMP_API const void *tcomp_compressordata_def_t;
//TINYSIGCOMP_GEXTERN const void *tcomp_compressordata_def_t;
TCOMP_END_DECLS
#endif /* TCOMP_COMPRESSOR_DATA_H */

View File

@ -42,7 +42,7 @@
#include "tsk_object.h"
#include "tsk_safeobj.h"
#include <stdint.h>
TCOMP_BEGIN_DECLS
#define TCOMP_MAX_COMPRESSORS 5
@ -65,6 +65,8 @@ int tcomp_compressordisp_compress(tcomp_compressordisp_t *dispatcher, uint64_t c
void tcomp_compressordisp_addCompressor(tcomp_compressordisp_t *dispatcher, tcomp_compressor_compress compressor);
TINYSIGCOMP_API const void *tcomp_compressordisp_def_t;
TINYSIGCOMP_GEXTERN const void *tcomp_compressordisp_def_t;
TCOMP_END_DECLS
#endif /* TCOMP_COMPRESSORDISP_H */

View File

@ -40,7 +40,7 @@
#include "tsk_object.h"
#include "tsk_safeobj.h"
#include <stdint.h>
TCOMP_BEGIN_DECLS
#define TCOMP_STREAM_BUFFER_CREATE(id) tsk_object_new(tcomp_stream_buffer_def_t, (uint64_t)id)
#define TCOMP_STREAM_BUFFER_SAFE_FREE(self) tsk_object_unref(self), self = 0
@ -77,7 +77,9 @@ int tcomp_decompressordisp_internalDecompress(tcomp_decompressordisp_t *dispatch
int tcomp_decompressordisp_appendStream(tcomp_decompressordisp_t *dispatcher, const void* input_ptr, size_t input_size, uint64_t streamId);
int tcomp_decompressordisp_getNextStreamMsg(tcomp_decompressordisp_t *dispatcher, uint64_t streamId, uint16_t *discard_count, size_t *size);
TINYSIGCOMP_API const void *tcomp_stream_buffer_def_t;
TINYSIGCOMP_API const void *tcomp_decompressordisp_def_t;
TINYSIGCOMP_GEXTERN const void *tcomp_stream_buffer_def_t;
TINYSIGCOMP_GEXTERN const void *tcomp_decompressordisp_def_t;
TCOMP_END_DECLS
#endif /*TCOMP_DECOMPRESSORDISP_H*/

View File

@ -41,6 +41,8 @@
# include "zlib.h"
#endif
TCOMP_BEGIN_DECLS
#define _TCOMP_DEFLATEDATA_CREATE(isStream, z_level, z_windowBits) tsk_object_new(tcomp_deflatedata_def_t, (int)isStream, (int)z_level,(int) z_windowBits)
#define TCOMP_DEFLATEDATA_CREATE(isStream) tsk_object_new(tcomp_deflatedata_def_t, (int)isStream, Z_BEST_COMPRESSION, Z_DEFAULT_WINDOW_BITS)
#define TCOMP_DEFLATEDATA_SAFE_FREE(self) tsk_object_unref(self), self = 0
@ -159,6 +161,8 @@ int tcomp_deflatedata_isStateful(tcomp_deflatedata_t *deflatedata);
int tcomp_deflatedata_zInit(tcomp_deflatedata_t *deflatedata);
int tcomp_deflatedata_zUnInit(tcomp_deflatedata_t *deflatedata);
TINYSIGCOMP_API const void *tcomp_deflatedata_def_t;
TINYSIGCOMP_GEXTERN const void *tcomp_deflatedata_def_t;
TCOMP_END_DECLS
#endif /* TCOMP_COMPRESSORDEFLATE_DATA_H */

View File

@ -34,7 +34,11 @@
#include "tinysigcomp_config.h"
#include "tcomp_state.h"
TCOMP_BEGIN_DECLS
extern tcomp_dictionary_t* tcomp_dicts_create_presence_dict();
extern tcomp_dictionary_t* tcomp_dicts_create_sip_dict();
TCOMP_END_DECLS
#endif /* _TINYSIGCOMP_DICTS_H_ */

View File

@ -31,10 +31,11 @@
#define TCOMP_MANAGER_H
#include "tinysigcomp_config.h"
#include "tcomp_result.h"
#include "tcomp_compressor.h"
#include <stdint.h>
TCOMP_BEGIN_DECLS
typedef void tcomp_manager_handle_t;
@ -78,6 +79,8 @@ TINYSIGCOMP_API void tcomp_manager_addCompressor(tcomp_manager_handle_t *handle,
TINYSIGCOMP_API void tcomp_manager_addSipSdpDictionary(tcomp_manager_handle_t *handle);
TINYSIGCOMP_API void tcomp_manager_addPresenceDictionary(tcomp_manager_handle_t *handle);
TINYSIGCOMP_API const void *tcomp_manager_def_t;
TINYSIGCOMP_GEXTERN const void *tcomp_manager_def_t;
TCOMP_END_DECLS
#endif /* TCOMP_MANAGER_H */

View File

@ -35,7 +35,7 @@
#include "tcomp_nackinfo.h"
#include "tsk_object.h"
#include <stdint.h>
TCOMP_BEGIN_DECLS
#define TCOMP_MESSAGE_CREATE(input_ptr, input_size, stream) tsk_object_new(tcomp_message_def_t, input_ptr, input_size, stream)
#define TCOMP_MESSAGE_SAFE_FREE(self) tsk_object_unref(self), self = 0
@ -67,6 +67,8 @@ typedef struct tcomp_message_s
}
tcomp_message_t;
TINYSIGCOMP_API const void *tcomp_message_def_t;
TINYSIGCOMP_GEXTERN const void *tcomp_message_def_t;
TCOMP_END_DECLS
#endif /* TCOMP_MESSAGE_H */

View File

@ -35,7 +35,7 @@
#include "tsk_sha1.h"
#include "tsk_object.h"
#include <stdint.h>
TCOMP_BEGIN_DECLS
#define TCOMP_NACKINFO_CREATE() tsk_object_new(tsk_nackinfo_def_t)
#define TCOMP_NACKINFO_SAFE_FREE(self) tsk_object_unref(self), self = 0
@ -79,6 +79,8 @@ typedef struct tcomp_nackinfo_s
}
tcomp_nackinfo_t;
TINYSIGCOMP_API const void *tcomp_nackinfo_def_t;
TINYSIGCOMP_GEXTERN const void *tcomp_nackinfo_def_t;
TCOMP_END_DECLS
#endif /* TCOMP_NAKINFO_H */

View File

@ -34,6 +34,8 @@
#include "tcomp_types.h"
#include "tsk_object.h"
TCOMP_BEGIN_DECLS
#define TCOMP_PARAMS_CREATE() tsk_object_new(tcomp_params_def_t)
#define TCOMP_PARAMS_SAFE_FREE(self) tsk_object_unref(self), self = 0
@ -74,6 +76,8 @@ void tcomp_params_setParameters(tcomp_params_t*, uint16_t sigCompParameters);
void tcomp_params_reset(tcomp_params_t*);
TINYSIGCOMP_API const void *tcomp_params_def_t;
TINYSIGCOMP_GEXTERN const void *tcomp_params_def_t;
TCOMP_END_DECLS
#endif /* TCOMP_PARAMS_H */

View File

@ -34,6 +34,8 @@
#include "tcomp_buffer.h"
#include "tsk_object.h"
TCOMP_BEGIN_DECLS
#define TCOMP_REQFEED_CREATE() tsk_object_new(tcomp_reqfeed_def_t)
#define TCOMP_REQFEED_SAFE_FREE(self) tsk_object_unref(self), self = 0
@ -68,6 +70,8 @@ tcomp_reqfeed_t;
void tcomp_reqfeed_reset(tcomp_reqfeed_t*);
TINYSIGCOMP_API const void *tcomp_reqfeed_def_t;
TINYSIGCOMP_GEXTERN const void *tcomp_reqfeed_def_t;
TCOMP_END_DECLS
#endif /* TCOMP_REQ_FEEDBACK_H */

View File

@ -31,6 +31,7 @@
#define TCOMP_RESULT_H
#include "tinysigcomp_config.h"
#include "tcomp_state.h"
#include "tcomp_reqfeed.h"
#include "tcomp_params.h"
@ -38,6 +39,8 @@
#include "tsk_object.h"
TCOMP_BEGIN_DECLS
#define MAX_TEMP_SATES 4
#define TCOMP_RESULT_CREATE() tsk_object_new(tcomp_result_def_t)
@ -58,7 +61,7 @@ typedef struct tcomp_tempstate_to_free_s
}
tcomp_tempstate_to_free_t;
TINYSIGCOMP_API const void *tcomp_tempstate_to_free_def_t;
TINYSIGCOMP_GEXTERN const void *tcomp_tempstate_to_free_def_t;
/**
* SigComp decompression result.
@ -106,8 +109,9 @@ uint8_t tcomp_result_getTempStatesToCreateSize(const tcomp_result_t *result);
void tcomp_result_addTempStateToFree(tcomp_result_t *result, tcomp_tempstate_to_free_t* lpDesc);
uint8_t tcomp_result_getTempStatesToFreeSize(const tcomp_result_t *result);
TINYSIGCOMP_API const void *tcomp_result_def_t;
TINYSIGCOMP_API const void *tcomp_tempstate_to_free_def_t;
TINYSIGCOMP_GEXTERN const void *tcomp_result_def_t;
TINYSIGCOMP_GEXTERN const void *tcomp_tempstate_to_free_def_t;
TCOMP_END_DECLS
#endif /* TCOMP_RESULT_H */

View File

@ -32,6 +32,8 @@
#ifndef _TINYSIGCOMPP_RFC3485_H_
#define _TINYSIGCOMPP_RFC3485_H_
TCOMP_BEGIN_DECLS
#define RFC3485_DICTIONARY_SIP_VALUE_LENGTH 0x12e4
#define RFC3485_DICTIONARY_SIP_STATE_ADDRESS 0 /*(not relevant for the dictionary) */
#define RFC3485_DICTIONARY_SIP_STATE_INSTRUCTION 0 /*(not relevant for the dictionary) */
@ -264,5 +266,7 @@
"\x30\x05\x0f\x30\x04\x07\x59\x04\x0a\x0f\x06\x0e\x61\x04\x04\x81\x04\x0d\xab\x04\x0d\x93" \
"\x04\x11\x6b\x04\x0e\x96\x05\x04\x66\x09\x04\x6b\x0b\x04\x46\x04\x0c\xe1"
TCOMP_END_DECLS
#endif /* _TINYSIGCOMPP_RFC3485_H_ */

View File

@ -32,6 +32,8 @@
#ifndef _TINYSIGCOMPP_RFC5112_H_
#define _TINYSIGCOMPP_RFC5112_H_
TCOMP_BEGIN_DECLS
#define RFC5112_DICTIONARY_PRESENCE_VALUE_LENGTH 0x0d93
#define RFC5112_DICTIONARY_PRESENCE_STATE_ADDRESS 0 /*(not relevant for the dictionary) */
#define RFC5112_DICTIONARY_PRESENCE_STATE_INSTRUCTION 0 /*(not relevant for the dictionary) */
@ -202,4 +204,6 @@
"\x3b\x09\x08\x75\x09\x0c\x81\x09\x06\xe9\x0b\x09\xb0\x07\x05\x22\x07\x04\xa3\x07\x06\xc2" \
"\x07\x05\x99\x05\x06\x06\x05\x05\xfc\x04\x09\xc3\x04\x06\x4c\x08\x04\xbe\x09\x0b\x2a"
TCOMP_END_DECLS
#endif /* _TINYSIGCOMPP_RFC5112_H_ */

View File

@ -31,10 +31,13 @@
#define TCOMP_STATE_H
#include "tinysigcomp_config.h"
#include "tcomp_buffer.h"
#include "tsk_safeobj.h"
#include "tsk_object.h"
TCOMP_BEGIN_DECLS
#define TCOMP_STATE_CREATE(length, address, instruction, minimum_access_length, retention_priority) \
tsk_object_new(tcomp_state_def_t, length, address, instruction, minimum_access_length, retention_priority)
@ -72,6 +75,8 @@ typedef tcomp_state_t tcomp_dictionary_t; /**< Ad dictionary is a @ref tcomp_st
int tcomp_state_equals(const tcomp_state_t *state1, const tcomp_state_t *state2);
void tcomp_state_makeValid(tcomp_state_t*);
TINYSIGCOMP_API const void *tcomp_state_def_t;
TINYSIGCOMP_GEXTERN const void *tcomp_state_def_t;
TCOMP_END_DECLS
#endif /* TCOMP_STATE_H */

View File

@ -31,6 +31,7 @@
#define TCOMP_STATE_HANDLER_H
#include "tinysigcomp_config.h"
#include "tcomp_types.h"
#include "tcomp_params.h"
#include "tcomp_nackinfo.h"
@ -42,7 +43,7 @@
#include "tsk_safeobj.h"
#include "tsk_object.h"
#include <stdint.h>
TCOMP_BEGIN_DECLS
#define TCOMP_STATEHANDLER_CREATE() tsk_object_new(tcomp_statehandler_def_t)
#define TCOMP_STATEHANDLER_SAFE_FREE(self) tsk_object_unref(self), self = 0
@ -73,6 +74,8 @@ int tcomp_statehandler_handleNack(tcomp_statehandler_t *statehandler, const tcom
void tcomp_statehandler_addSipSdpDictionary(tcomp_statehandler_t *statehandler);
void tcomp_statehandler_addPresenceDictionary(tcomp_statehandler_t *statehandler);
TINYSIGCOMP_API const void *tcomp_statehandler_def_t;
TINYSIGCOMP_GEXTERN const void *tcomp_statehandler_def_t;
TCOMP_END_DECLS
#endif /* TCOMP_STATE_HANDLER_H */

View File

@ -25,11 +25,14 @@
#include "tsk_list.h"
TCOMP_BEGIN_DECLS
typedef tsk_list_t tcomp_buffers_L_t; /**< List containing @ref tcomp_buffer_handle_t elements. */
typedef tsk_list_t tcomp_states_L_t; /**< List containing @ref tcomp_state_t elements. */
typedef tsk_list_t tcomp_dictionaries_L_t; /**< List containing @ref tcomp_dictionary_t elements. */
typedef tsk_list_t tcomp_compartments_L_t; /** List containing @ref tcomp_compartment_t elements. */
typedef tsk_list_t tcomp_stream_buffer_L_t; /** List containing @ref tcomp_stream_buffer_t elements. */
TCOMP_END_DECLS
#endif /* TCOMP_TYPES_H */

View File

@ -44,7 +44,7 @@
#include "tsk_binaryutils.h"
#include <stdint.h>
TCOMP_BEGIN_DECLS
#define TCOMP_UDVM_CREATE(_sigCompMessage, stateHandler, lpResult) tsk_object_new(tcomp_udvm_def_t, (tcomp_message_t*)_sigCompMessage, (tcomp_statehandler_t*)stateHandler, (tcomp_result_t*)lpResult)
#define TCOMP_UDVM_SAFE_FREE(self) tsk_object_unref(self), self = 0
@ -160,6 +160,8 @@ int TCOMP_UDVM_EXEC_INST__OUTPUT(tcomp_udvm_t *udvm, uint16_t output_start, uint
int TCOMP_UDVM_EXEC_INST__END_MESSAGE(tcomp_udvm_t *udvm, uint16_t requested_feedback_location, uint16_t returned_parameters_location, uint16_t state_length, uint16_t state_address, uint16_t state_instruction, uint16_t minimum_access_length, uint16_t state_retention_priority);
TINYSIGCOMP_API const void *tcomp_udvm_def_t;
TINYSIGCOMP_GEXTERN const void *tcomp_udvm_def_t;
TCOMP_END_DECLS
#endif /* TCOMP_UDVM_H */

View File

@ -23,17 +23,43 @@
#ifndef TINYSIGCOMP_CONFIG_H
#define TINYSIGCOMP_CONFIG_H
#if (defined(WIN32) || defined(_WIN32_WCE) || defined(__SYMBIAN32__)) && defined(TINYSIGCOMP_EXPORTS)
# define TINYSIGCOMP_API __declspec(dllexport)
#elif (defined(WIN32) || defined(_WIN32_WCE) || defined(__SYMBIAN32__)) && defined(TINYSIGCOMP_IMPORTS)
# define TINYSIGCOMP_API __declspec(dllimport)
#else
# define TINYSIGCOMP_API
#if HAVE_CONFIG_H
#include "config.h"
#endif
//
//DEFLATE block type 01 (data compressed with fixed Huffman codes)*/
//
#ifdef __SYMBIAN32__
#undef _WIN32 /* Because of WINSCW */
#endif
/* Windows (XP/Vista/7/CE and Windows Mobile) macro definition.
*/
#if defined(WIN32)|| defined(_WIN32) || defined(_WIN32_WCE)
# define TCOMP_UNDER_WINDOWS 1
#endif
#if !defined(__GNUC__) && defined(TINYSIGCOMP_EXPORTS)
# define TINYSIGCOMP_API __declspec(dllexport)
# define TINYSIGCOMP_GEXTERN __declspec(dllexport)
#elif !defined(__GNUC__) /*&& defined(TINYSIGCOMP_IMPORTS)*/
# define TINYSIGCOMP_API __declspec(dllimport)
# define TINYSIGCOMP_GEXTERN __declspec(dllimport)
#else
# define TINYSIGCOMP_API
# define TINYSIGCOMP_GEXTERN extern
#endif
/* Guards against C++ name mangling
*/
#ifdef __cplusplus
# define TCOMP_BEGIN_DECLS extern "C" {
# define TCOMP_END_DECLS }
#else
# define TCOMP_BEGIN_DECLS
# define TCOMP_END_DECLS
#endif
/* DEFLATE block type 01 (data compressed with fixed Huffman codes)
*/
#ifndef FORCE_STATIC
# define FORCE_STATIC /*zlib*/
#endif
@ -52,20 +78,13 @@
//
#define USE_ONLY_ACKED_STATES 1
//
// Disable some well-known warnings
//
/* Disable some well-known warnings
*/
#ifdef _MSC_VER
# define _CRT_SECURE_NO_WARNINGS
#endif
#ifdef __SYMBIAN32__
#undef _WIN32 /* Because of WINSCW */
#endif
/* Tiny SAK */
#define TINYSAK_IMPORTS
#include <stdint.h>
#endif // TINYSIGCOMP_CONFIG_H

View File

@ -31,7 +31,7 @@
#include <string.h>
#define TINYSAK_IMPORTS
#define TINYSIGCOMP_IMPORTS
//#define TINYSAK_IMPORTS
//#define TINYSIGCOMP_IMPORTS
#endif /* TEST_TINYSIGCOMP_STDAFX_H */

View File

@ -42,6 +42,8 @@
#include "tsk_list.h"
#include "tsk_string.h"
TSIP_BEGIN_DECLS
#define TSIP_DIALOG(self) ((tsip_dialog_t*)(self))
#define TSIP_DIALOG_GET_STATE(self) TSIP_DIALOG(self)->state
@ -131,4 +133,7 @@ int tsip_dialog_update(tsip_dialog_t *self, const tsip_response_t* response);
int tsip_dialog_init(tsip_dialog_t *self, tsip_dialog_type_t type, const tsip_stack_handle_t * stack, const char* call_id, const tsip_operation_handle_t* operation);
int tsip_dialog_deinit(tsip_dialog_t *self);
#endif /* TINYSIP_DIALOG_H */
TSIP_END_DECLS
#endif /* TINYSIP_DIALOG_H */

View File

@ -38,6 +38,8 @@
#include "tsk_object.h"
#include "tsk_list.h"
TSIP_BEGIN_DECLS
#define TSIP_DIALOG_LAYER_CREATE(stack) tsk_object_new(tsip_dialog_layer_def_t, stack)
#define TSIP_DIALOG_LAYER_SAFE_FREE(self) tsk_object_unref(self), self = 0
@ -55,6 +57,9 @@ typedef tsk_list_t tsip_dialog_layers_L_t;
int tsip_dialog_layer_register(tsip_dialog_layer_t *self, const tsip_operation_handle_t *operation);
TINYSIP_API const void *tsip_dialog_layer_def_t;
TINYSIP_GEXTERN const void *tsip_dialog_layer_def_t;
TSIP_END_DECLS
#endif /* TINYSIP_DIALOG_LAYER_H */
#endif /* TINYSIP_DIALOG_LAYER_H */

View File

@ -34,6 +34,8 @@
#include "tinysip/dialogs/tsip_dialog.h"
#include "tinysip/smc/tsip_dialog_register_sm.h"
TSIP_BEGIN_DECLS
#define TSIP_DIALOG_REGISTER_CREATE(stack, operation) tsk_object_new(tsip_dialog_register_def_t, (const tsip_stack_handle_t *)stack, (const tsip_operation_handle_t*) operation)
#define TSIP_DIALOG_REGISTER_SAFE_FREE(self) tsk_object_unref(self), self = 0
@ -69,6 +71,9 @@ void tsip_dialog_register_Connected_2_Trying_X_refresh(tsip_dialog_register_t *s
void tsip_dialog_register_Any_2_Terminated_X_transportError(tsip_dialog_register_t *self);
TINYSIP_API const void *tsip_dialog_register_def_t;
TINYSIP_GEXTERN const void *tsip_dialog_register_def_t;
TSIP_END_DECLS
#endif /* TINYSIP_DIALOG_REGISTER_H */
#endif /* TINYSIP_DIALOG_REGISTER_H */

View File

@ -42,6 +42,8 @@
#include "tsk_list.h"
#include "tsk_buffer.h"
TSIP_BEGIN_DECLS
#define TSIP_HEADER(hdr) ((tsip_header_t*)(hdr))
#define TSIP_HEADER_CREATE()
@ -170,5 +172,7 @@ TINYSIP_API int tsip_header_tostring(const tsip_header_t *self, tsk_buffer_t *ou
#define TSIP_HEADER_GET_PARAM_VALUE(self, name) tsk_params_get_param_value(self ? self->params : 0, name)
#define TSIP_HEADER_GET_PARAM_VALUE_AS_INT(self, name) tsk_params_get_param_value_as_int(self ? self->params : 0, name)
TSIP_END_DECLS
#endif /* TINYSIP_HEADERS_H */
#endif /* TINYSIP_HEADERS_H */

View File

@ -33,6 +33,8 @@
#include "tinysip_config.h"
#include "tinysip/headers/tsip_header.h"
TSIP_BEGIN_DECLS
////////////////////////////////////////////////////////////////////////////////////////////////////
/// @struct
///
@ -49,4 +51,7 @@ typedef struct tsip_header_Accept_Contact_s
}
tsip_header_Accept_Contact_t;
#endif /* _TSIP_HEADER_ACCEPT_CONTACT_H_ */
TSIP_END_DECLS
#endif /* _TSIP_HEADER_ACCEPT_CONTACT_H_ */

View File

@ -29,9 +29,12 @@
*/
#ifndef _TSIP_HEADER_ACCEPT_ENCODING_H_
#define _TSIP_HEADER_ACCEPT_ENCODING_H_
#include "tinysip_config.h"
#include "tinysip/headers/tsip_header.h"
TSIP_BEGIN_DECLS
////////////////////////////////////////////////////////////////////////////////////////////////////
/// @struct
///
@ -48,4 +51,7 @@ typedef struct tsip_header_Accept_Encoding_s
}
tsip_header_Accept_Encoding_t;
#endif /* _TSIP_HEADER_ACCEPT_ENCODING_H_ */
TSIP_END_DECLS
#endif /* _TSIP_HEADER_ACCEPT_ENCODING_H_ */

View File

@ -29,9 +29,12 @@
*/
#ifndef _TSIP_HEADER_ACCEPT_LANGUAGE_H_
#define _TSIP_HEADER_ACCEPT_LANGUAGE_H_
#include "tinysip_config.h"
#include "tinysip/headers/tsip_header.h"
TSIP_BEGIN_DECLS
////////////////////////////////////////////////////////////////////////////////////////////////////
/// @struct
///
@ -48,4 +51,7 @@ typedef struct tsip_header_Accept_Language_s
}
tsip_header_Accept_Language_t;
#endif /* _TSIP_HEADER_ACCEPT_LANGUAGE_H_ */
TSIP_END_DECLS
#endif /* _TSIP_HEADER_ACCEPT_LANGUAGE_H_ */

View File

@ -29,9 +29,12 @@
*/
#ifndef _TSIP_HEADER_ACCEPT_RESOURCE_PRIORITY_H_
#define _TSIP_HEADER_ACCEPT_RESOURCE_PRIORITY_H_
#include "tinysip_config.h"
#include "tinysip/headers/tsip_header.h"
TSIP_BEGIN_DECLS
////////////////////////////////////////////////////////////////////////////////////////////////////
/// @struct
///
@ -48,4 +51,7 @@ typedef struct tsip_header_Accept_Resource_Priority_s
}
tsip_header_Accept_Resource_Priority_t;
#endif /* _TSIP_HEADER_ACCEPT_RESOURCE_PRIORITY_H_ */
TSIP_END_DECLS
#endif /* _TSIP_HEADER_ACCEPT_RESOURCE_PRIORITY_H_ */

View File

@ -29,9 +29,12 @@
*/
#ifndef _TSIP_HEADER_ALERT_INFO_H_
#define _TSIP_HEADER_ALERT_INFO_H_
#include "tinysip_config.h"
#include "tinysip/headers/tsip_header.h"
TSIP_BEGIN_DECLS
////////////////////////////////////////////////////////////////////////////////////////////////////
/// @struct
///
@ -48,4 +51,7 @@ typedef struct tsip_header_Alert_Info_s
}
tsip_header_Alert_Info_t;
#endif /* _TSIP_HEADER_ALERT_INFO_H_ */
TSIP_END_DECLS
#endif /* _TSIP_HEADER_ALERT_INFO_H_ */

View File

@ -29,9 +29,12 @@
*/
#ifndef _TSIP_HEADER_ALLOW_H_
#define _TSIP_HEADER_ALLOW_H_
#include "tinysip_config.h"
#include "tinysip/headers/tsip_header.h"
TSIP_BEGIN_DECLS
#define TSIP_HEADER_ALLOW_DEFAULT "ACK, BYE, CANCEL, INVITE, MESSAGE, NOTIFY, OPTIONS, PRACK, REFER, UPDATE"
#define TSIP_HEADER_STR "Allow:"TSIP_HEADER_ALLOW_DEFAULT"\r\n"
@ -66,6 +69,9 @@ tsip_header_Allow_t;
tsip_header_Allow_t *tsip_header_Allow_parse(const char *data, size_t size);
TINYSIP_API const void *tsip_header_Allow_def_t;
TINYSIP_GEXTERN const void *tsip_header_Allow_def_t;
TSIP_END_DECLS
#endif /* _TSIP_HEADER_ALLOW_H_ */
#endif /* _TSIP_HEADER_ALLOW_H_ */

View File

@ -29,9 +29,12 @@
*/
#ifndef _TSIP_HEADER_ALLOW_EVENTS_H_
#define _TSIP_HEADER_ALLOW_EVENTS_H_
#include "tinysip_config.h"
#include "tinysip/headers/tsip_header.h"
TSIP_BEGIN_DECLS
/**@def TSIP_HEADER_ALLOW_EVENTS_CREATE
* Creates new sip 'Allow_Events' header. You must call @ref TSIP_HEADER_ALLOW_EVENTS_SAFE_FREE to free the header.
* @sa TSIP_HEADER_ALLOW_EVENTS_SAFE_FREE.
@ -63,6 +66,9 @@ tsip_header_Allow_Events_t;
tsip_header_Allow_Events_t *tsip_header_Allow_Events_parse(const char *data, size_t size);
TINYSIP_API const void *tsip_header_Allow_Events_def_t;
TINYSIP_GEXTERN const void *tsip_header_Allow_Events_def_t;
TSIP_END_DECLS
#endif /* _TSIP_HEADER_ALLOW_EVENTS_H_ */
#endif /* _TSIP_HEADER_ALLOW_EVENTS_H_ */

View File

@ -29,9 +29,13 @@
*/
#ifndef _TSIP_HEADER_AUTHENTICATION_INFO_H_
#define _TSIP_HEADER_AUTHENTICATION_INFO_H_
#include "tinysip_config.h"
#include "tinysip/headers/tsip_header.h"
TSIP_BEGIN_DECLS
////////////////////////////////////////////////////////////////////////////////////////////////////
/// @struct
///
@ -48,4 +52,8 @@ typedef struct tsip_header_Authentication_Info_s
}
tsip_header_Authentication_Info_t;
#endif /* _TSIP_HEADER_AUTHENTICATION_INFO_H_ */
TSIP_END_DECLS
#endif /* _TSIP_HEADER_AUTHENTICATION_INFO_H_ */

View File

@ -33,6 +33,8 @@
#include "tinysip_config.h"
#include "tinysip/headers/tsip_header.h"
TSIP_BEGIN_DECLS
/**@def TSIP_HEADER_AUTHORIZATION_CREATE
* Creates new sip 'AUTHORIZATION' header. You must call @ref TSIP_HEADER_AUTHORIZATION_SAFE_FREE to free the header.
* @sa TSIP_HEADER_AUTHORIZATION_SAFE_FREE.
@ -98,6 +100,9 @@ tsip_header_Authorization_t;
tsip_header_Authorization_t *tsip_header_Authorization_parse(const char *data, size_t size);
TINYSIP_API const void *tsip_header_Authorization_def_t;
TINYSIP_GEXTERN const void *tsip_header_Authorization_def_t;
TSIP_END_DECLS
#endif /* _TSIP_HEADER_AUTHORIZATION_H_ */
#endif /* _TSIP_HEADER_AUTHORIZATION_H_ */

View File

@ -29,9 +29,12 @@
*/
#ifndef _TSIP_HEADER_CSEQ_H_
#define _TSIP_HEADER_CSEQ_H_
#include "tinysip_config.h"
#include "tinysip/headers/tsip_header.h"
TSIP_BEGIN_DECLS
/**@def TSIP_HEADER_CSEQ_CREATE
* Creates new sip 'CSeq' header. You must call @ref TSIP_HEADER_CSEQ_SAFE_FREE to free the header.
* @sa TSIP_HEADER_CSEQ_SAFE_FREE.
@ -69,6 +72,9 @@ tsip_header_CSeq_t;
tsip_header_CSeq_t *tsip_header_CSeq_parse(const char *data, size_t size);
TINYSIP_API const void *tsip_header_CSeq_def_t;
TINYSIP_GEXTERN const void *tsip_header_CSeq_def_t;
TSIP_END_DECLS
#endif /* _TSIP_HEADER_CSEQ_H_ */
#endif /* _TSIP_HEADER_CSEQ_H_ */

View File

@ -29,9 +29,12 @@
*/
#ifndef _TSIP_HEADER_CALL_ID_H_
#define _TSIP_HEADER_CALL_ID_H_
#include "tinysip_config.h"
#include "tinysip/headers/tsip_header.h"
TSIP_BEGIN_DECLS
/**@def TSIP_HEADER_CALL_ID_CREATE
* Creates new sip 'Call-ID' header. You must call @ref TSIP_HEADER_CALL_ID_SAFE_FREE to free the header.
* @sa TSIP_HEADER_CALL_ID_SAFE_FREE.
@ -66,6 +69,9 @@ tsip_header_Call_ID_t;
void tsip_header_Call_ID_random(tsk_istr_t *result);
tsip_header_Call_ID_t *tsip_header_Call_ID_parse(const char *data, size_t size);
TINYSIP_API const void *tsip_header_Call_ID_def_t;
TINYSIP_GEXTERN const void *tsip_header_Call_ID_def_t;
TSIP_END_DECLS
#endif /* _TSIP_HEADER_CALL_ID_H_ */
#endif /* _TSIP_HEADER_CALL_ID_H_ */

View File

@ -29,9 +29,12 @@
*/
#ifndef _TSIP_HEADER_CALL_INFO_H_
#define _TSIP_HEADER_CALL_INFO_H_
#include "tinysip_config.h"
#include "tinysip/headers/tsip_header.h"
TSIP_BEGIN_DECLS
////////////////////////////////////////////////////////////////////////////////////////////////////
/// @struct
///
@ -48,4 +51,7 @@ typedef struct tsip_header_Call_Info_s
}
tsip_header_Call_Info_t;
#endif /* _TSIP_HEADER_CALL_INFO_H_ */
TSIP_END_DECLS
#endif /* _TSIP_HEADER_CALL_INFO_H_ */

View File

@ -29,10 +29,13 @@
*/
#ifndef _TSIP_HEADER_CONTACT_H_
#define _TSIP_HEADER_CONTACT_H_
#include "tinysip_config.h"
#include "tinysip/tsip_uri.h"
#include "tinysip/headers/tsip_header.h"
TSIP_BEGIN_DECLS
/**@def TSIP_HEADER_CONTACT_CREATE
* Creates new sip 'Contact' header. You must call @ref TSIP_HEADER_CONTACT_SAFE_FREE to free the header.
* @sa TSIP_HEADER_CONTACT_SAFE_FREE.
@ -110,7 +113,10 @@ typedef tsk_list_t tsip_header_Contacts_L_t;
tsip_header_Contacts_L_t *tsip_header_Contact_parse(const char *data, size_t size);
TINYSIP_API const void *tsip_header_Contact_def_t;
//TINYSIP_API const void *tsip_contact_def_t;
TINYSIP_GEXTERN const void *tsip_header_Contact_def_t;
//TINYSIP_GEXTERN const void *tsip_contact_def_t;
TSIP_END_DECLS
#endif /* _TSIP_HEADER_CONTACT_H_ */
#endif /* _TSIP_HEADER_CONTACT_H_ */

View File

@ -29,9 +29,12 @@
*/
#ifndef _TSIP_HEADER_CONTENT_DISPOSITION_H_
#define _TSIP_HEADER_CONTENT_DISPOSITION_H_
#include "tinysip_config.h"
#include "tinysip/headers/tsip_header.h"
TSIP_BEGIN_DECLS
////////////////////////////////////////////////////////////////////////////////////////////////////
/// @struct
///
@ -48,4 +51,7 @@ typedef struct tsip_header_Content_Disposition_s
}
tsip_header_Content_Disposition_t;
#endif /* _TSIP_HEADER_CONTENT_DISPOSITION_H_ */
TSIP_END_DECLS
#endif /* _TSIP_HEADER_CONTENT_DISPOSITION_H_ */

View File

@ -29,9 +29,12 @@
*/
#ifndef _TSIP_HEADER_CONTENT_ENCODING_H_
#define _TSIP_HEADER_CONTENT_ENCODING_H_
#include "tinysip_config.h"
#include "tinysip/headers/tsip_header.h"
TSIP_BEGIN_DECLS
////////////////////////////////////////////////////////////////////////////////////////////////////
/// @struct
///
@ -48,4 +51,7 @@ typedef struct tsip_header_Content_Encoding_s
}
tsip_header_Content_Encoding_t;
#endif /* _TSIP_HEADER_CONTENT_ENCODING_H_ */
TSIP_END_DECLS
#endif /* _TSIP_HEADER_CONTENT_ENCODING_H_ */

View File

@ -29,6 +29,7 @@
*/
#ifndef _TSIP_HEADER_CONTENT_LANGUAGE_H_
#define _TSIP_HEADER_CONTENT_LANGUAGE_H_
#include "tinysip_config.h"
#include "tinysip/headers/tsip_header.h"

View File

@ -29,9 +29,12 @@
*/
#ifndef _TSIP_HEADER_CONTENT_LENGTH_H_
#define _TSIP_HEADER_CONTENT_LENGTH_H_
#include "tinysip_config.h"
#include "tinysip/headers/tsip_header.h"
TSIP_BEGIN_DECLS
/**@def TSIP_HEADER_CONTENT_LENGTH_CREATE
* Creates new sip 'Content-Length' header. You must call @ref TSIP_HEADER_CONTENT_LENGTH_SAFE_FREE to free the header.
* @sa TSIP_HEADER_CONTENT_LENGTH_SAFE_FREE.
@ -64,6 +67,9 @@ tsip_header_Content_Length_t;
tsip_header_Content_Length_t *tsip_header_Content_Length_parse(const char *data, size_t size);
TINYSIP_API const void *tsip_header_Content_Length_def_t;
TINYSIP_GEXTERN const void *tsip_header_Content_Length_def_t;
TSIP_END_DECLS
#endif /* _TSIP_HEADER_CONTENT_LENGTH_H_ */
#endif /* _TSIP_HEADER_CONTENT_LENGTH_H_ */

View File

@ -29,9 +29,12 @@
*/
#ifndef _TSIP_HEADER_CONTENT_TYPE_H_
#define _TSIP_HEADER_CONTENT_TYPE_H_
#include "tinysip_config.h"
#include "tinysip/headers/tsip_header.h"
TSIP_BEGIN_DECLS
////////////////////////////////////////////////////////////////////////////////////////////////////
/// @struct
///
@ -48,4 +51,7 @@ typedef struct tsip_header_Content_Type_s
}
tsip_header_Content_Type_t;
#endif /* _TSIP_HEADER_CONTENT_TYPE_H_ */
TSIP_END_DECLS
#endif /* _TSIP_HEADER_CONTENT_TYPE_H_ */

View File

@ -29,9 +29,12 @@
*/
#ifndef _TSIP_HEADER_DATE_H_
#define _TSIP_HEADER_DATE_H_
#include "tinysip_config.h"
#include "tinysip/headers/tsip_header.h"
TSIP_BEGIN_DECLS
////////////////////////////////////////////////////////////////////////////////////////////////////
/// @struct
///
@ -48,4 +51,7 @@ typedef struct tsip_header_Date_s
}
tsip_header_Date_t;
#endif /* _TSIP_HEADER_DATE_H_ */
TSIP_END_DECLS
#endif /* _TSIP_HEADER_DATE_H_ */

View File

@ -29,9 +29,12 @@
*/
#ifndef _TSIP_HEADER_ERROR_INFO_H_
#define _TSIP_HEADER_ERROR_INFO_H_
#include "tinysip_config.h"
#include "tinysip/headers/tsip_header.h"
TSIP_BEGIN_DECLS
////////////////////////////////////////////////////////////////////////////////////////////////////
/// @struct
///
@ -48,4 +51,7 @@ typedef struct tsip_header_Error_Info_s
}
tsip_header_Error_Info_t;
#endif /* _TSIP_HEADER_ERROR_INFO_H_ */
TSIP_END_DECLS
#endif /* _TSIP_HEADER_ERROR_INFO_H_ */

Some files were not shown because too many files have changed in this diff Show More