Files

95 lines
3.8 KiB
C
Raw Permalink Normal View History

2026-03-28 16:54:11 +11:00
/***************************************************************************************
*
* IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING.
*
* By downloading, copying, installing or using the software you agree to this license.
* If you do not agree to this license, do not download, install,
* copy or use the software.
*
* Copyright (C) 2014-2024, Happytimesoft Corporation, all rights reserved.
*
* Redistribution and use in binary forms, with or without modification, are permitted.
*
* Unless required by applicable law or agreed to in writing, software distributed
* under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
* CONDITIONS OF ANY KIND, either express or implied. See the License for the specific
* language governing permissions and limitations under the License.
*
****************************************************************************************/
#ifndef __H_UTIL_H__
#define __H_UTIL_H__
/*************************************************************************/
#ifdef __cplusplus
extern "C" {
#endif
/*************************************************************************/
#define MIN(a, b) ((a) < (b) ? (a) : (b))
#define MAX(a, b) ((a) > (b) ? (a) : (b))
#define ARRAY_SIZE(ary) (sizeof(ary) / sizeof(ary[0]))
/*************************************************************************/
HT_API int get_if_nums();
HT_API uint32 get_if_ip(int index);
HT_API uint32 get_route_if_ip(uint32 dst_ip);
HT_API uint32 get_default_if_ip();
HT_API const char * get_local_ip();
HT_API uint32 get_if_mask(int index);
HT_API uint32 get_route_if_mask(uint32 dst_ip);
HT_API uint32 get_default_if_mask();
HT_API int is_local_if_net(uint32 destip);
HT_API int get_default_if_mac(uint8 * mac);
HT_API uint32 get_address_by_name(const char * host_name);
HT_API const char * get_default_gateway();
HT_API const char * get_dns_server();
HT_API const char * get_mask_by_prefix_len(int len);
HT_API int get_prefix_len_by_mask(const char * mask);
HT_API const char * get_ip_str(uint32 ipaddr /* network byte order */);
/*************************************************************************/
HT_API char * lowercase(char * str);
HT_API char * uppercase(char * str);
HT_API int unicode(char ** dst, char * src);
HT_API BOOL bin_to_hex_str(uint8 * bin, int binlen, char * hex, int hexlen);
HT_API int hex_str_to_bin(char * hex, int hexlen, uint8 * bin, int binlen);
HT_API int url_encode(const char * src, const int srcsize, char * dst, const int dstsize);
HT_API int url_decode(char * dst, char const * src, uint32 len);
HT_API void url_split(char const* url, char *proto, int proto_size, char *user, int user_size, char *pass, int pass_size, char *host, int host_size, int *port, char *path, int path_size);
/*************************************************************************/
HT_API time_t get_time_by_string(char * p_time_str);
HT_API void get_time_str(char * buff, int len);
HT_API void get_time_str_day_off(time_t nt, char * buff, int len, int dayoff);
HT_API void get_time_str_mon_off(time_t nt, char * buff, int len, int moffset);
HT_API time_t get_time_by_tstring(const char * p_time_str);
HT_API void get_tstring_by_time(time_t t, char * buff, int len);
HT_API SOCKET tcp_connect_timeout(uint32 rip, int port, int timeout);
/*************************************************************************/
HT_API void network_init();
HT_API void network_deinit();
HT_API int daemon_init();
#if __WINDOWS_OS__
HT_API int gettimeofday(struct timeval* tp, int* tz);
#endif
#ifdef __cplusplus
}
#endif
#endif // __H_UTIL_H__