mirror of https://github.com/dnomd343/ClearDNS
				
				
			
			You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							57 lines
						
					
					
						
							1.6 KiB
						
					
					
				
			
		
		
		
			
			
			
		
		
	
	
							57 lines
						
					
					
						
							1.6 KiB
						
					
					
				| #include <stdio.h> | |
| #include <stdlib.h> | |
| #include <string.h> | |
| #include <sys/time.h> | |
| #include <unistd.h> | |
| #include "logger.h" | |
| #include "constant.h" | |
| #include "structure.h" | |
|  | |
| char* show_bool(uint8_t value) { // return `true` or `false` | |
|     if (value) { | |
|         return "true"; | |
|     } | |
|     return "false"; | |
| } | |
| 
 | |
| char* string_init(const char *str) { // new string | |
|     return strcpy((char *)malloc(strlen(str) + 1), str); | |
| } | |
| 
 | |
| char* string_join(const char *base, const char *add) { // combine string | |
|     char *ret = (char *)malloc(strlen(base) + strlen(add) + 1); | |
|     return strcat(strcpy(ret, base), add); | |
| } | |
| 
 | |
| char* uint32_to_string(uint32_t number) { // convert uint32 -> string | |
|     char to_str[11]; // MAX_LEN(uint32) -> 4294967296(10-bytes) | |
|     sprintf(to_str, "%u", number); | |
|     return string_init(to_str); | |
| } | |
| 
 | |
| void string_list_debug(char *describe, char **string_list) { // show string list in debug log | |
|     char *string_ret = string_list_dump(string_list); | |
|     log_debug("%s -> %s", describe, string_ret); | |
|     free(string_ret); | |
| } | |
| 
 | |
| void uint32_list_debug(char *describe, uint32_t **uint32_list) { // show uint32 list in debug log | |
|     char *string_ret = uint32_list_dump(uint32_list); | |
|     log_debug("%s -> %s", describe, string_ret); | |
|     free(string_ret); | |
| } | |
| 
 | |
| uint8_t check_port(uint16_t port) { // whether port is valid | |
|     if (port > 0 && port <= 65535) { // 1 ~ 65535 | |
|         return TRUE; | |
|     } | |
|     return FALSE; | |
| } | |
| 
 | |
| uint16_t gen_rand_num(uint16_t limit) { // 0 ~ (limit - 1) | |
|     struct timeval tv; | |
|     gettimeofday(&tv, NULL); | |
|     srand(tv.tv_usec); | |
|     usleep(1); // sleep 1us (different time seed) | |
|     return rand() % limit; // NOLINT | |
| }
 | |
| 
 |