tutil.h 2.0 KB
Newer Older
H
hzcheng 已提交
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
/*
 * Copyright (c) 2019 TAOS Data, Inc. <jhtao@taosdata.com>
 *
 * This program is free software: you can use, redistribute, and/or modify
 * it under the terms of the GNU Affero General Public License, version 3
 * or later ("AGPL"), as published by the Free Software Foundation.
 *
 * This program is distributed in the hope that it will be useful, but WITHOUT
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
 * FITNESS FOR A PARTICULAR PURPOSE.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with this program. If not, see <http://www.gnu.org/licenses/>.
 */

16 17
#ifndef _TD_UTIL_UTIL_H
#define _TD_UTIL_UTIL_H
H
hzcheng 已提交
18 19 20 21 22

#ifdef __cplusplus
extern "C" {
#endif

S
slguan 已提交
23 24
#include "os.h"
#include "tmd5.h"
H
hzcheng 已提交
25
#include "tcrc32c.h"
26
#include "tdef.h"
H
hzcheng 已提交
27 28

int32_t strdequote(char *src);
29
int32_t strndequote(char *dst, const char* z, int32_t len);
D
dapan1121 已提交
30
int32_t strRmquote(char *z, int32_t len);
S
Shengliang Guan 已提交
31 32 33 34 35
size_t  strtrim(char *src);
char *  strnchr(char *haystack, char needle, int32_t len, bool skipquote);
char ** strsplit(char *src, const char *delim, int32_t *num);
char *  strtolower(char *dst, const char *src);
char *  strntolower(char *dst, const char *src, int32_t n);
36
char *  strntolower_s(char *dst, const char *src, int32_t n);
H
hzcheng 已提交
37
int64_t strnatoi(char *num, int32_t len);
S
Shengliang Guan 已提交
38 39
char *  strbetween(char *string, char *begin, char *end);
char *  paGetToken(char *src, char **token, int32_t *tokenLen);
H
hzcheng 已提交
40 41 42 43

int32_t taosByteArrayToHexStr(char bytes[], int32_t len, char hexstr[]);
int32_t taosHexStrToByteArray(char hexstr[], char bytes[]);

S
Shengliang Guan 已提交
44
char    *taosIpStr(uint32_t ipInt);
S
Shengliang Guan 已提交
45
uint32_t ip2uint(const char *const ip_addr);
S
Shengliang Guan 已提交
46 47
void     taosIp2String(uint32_t ip, char *str);
void     taosIpPort2String(uint32_t ip, uint16_t port, char *str);
S
slguan 已提交
48

49
static FORCE_INLINE void taosEncryptPass(uint8_t *inBuf, size_t inLen, char *target) {
50 51
  MD5_CTX context;
  MD5Init(&context);
S
Shengliang Guan 已提交
52
  MD5Update(&context, inBuf, (unsigned int)inLen);
53
  MD5Final(&context);
54
  memcpy(target, context.digest, TSDB_KEY_LEN);
55 56
}

H
hzcheng 已提交
57 58 59 60
#ifdef __cplusplus
}
#endif

61
#endif  /*_TD_UTIL_UTIL_H*/