#include "stdafx.h" #include "util_local.h" #include "util.hpp" void test_local_util() { } // int _get_info(BYTE* buf, int pos, int size, int* type, BYTE* pOut, int* nOut) { int n = 0; // len(2), type(1), data(len) //*nOut = buf[pos+n]; //n++; *nOut = *((WORD*)(buf+pos+n)); n += 2; if((*nOut) > size+pos) { // broken packet *nOut = 0; return -1; } *type = buf[pos+n]; n++; //*nOut = *((WORD*)(buf+pos+n)); //n+=2; memcpy(pOut, buf+pos+n, *nOut); n += *nOut; return n; } // cjng96 modify - cjy, 07_1024 16:02 char* convert_time_string(int secs, char* buf) { int day, hour, min; min = secs / 60; secs = secs % 60; hour = min / 60; min = min % 60; day = hour/24; hour = hour % 24; if(secs == -1) { buf[0] = 0; return buf; } /* if(day == 0) { if(hour == 0) { if(min == 1) { sprintf(buf, "%d minute", min); } else { sprintf(buf, "%d minutes", min); } } else if(hour == 1) { sprintf(buf, "1 hour"); } else { sprintf(buf, "%d hours", hour); } } else if(day == 1) { sprintf(buf, "%d day", day); } else { //sprintf(buf, "%d days %02d:%02d", day, hour, min); sprintf(buf, "%d days", day); } */ if(day < 99) { sprintf(buf, "%02d,%02d:%02d", day, hour, min); } else { sprintf(buf, "%d,%02d:%02d", day, hour, min); } return buf; } void convert_bin2str(unsigned char* buf, int size, char* out_str) { int i; out_str[0] = 0; for(i = 0; i < size; ++i) { sprintf(out_str+strlen(out_str), "%02X", buf[i]); } } /* BOOL is_num(char cc) { if(cc >= '0' && cc <= '9') return TRUE; else return FALSE; } */ BOOL check_valid_hex(char cc) { if(is_num(cc)) { return TRUE; } if(cc == 'a' || cc == 'A') return TRUE; if(cc == 'b' || cc == 'B') return TRUE; if(cc == 'c' || cc == 'C') return TRUE; if(cc == 'd' || cc == 'D') return TRUE; if(cc == 'e' || cc == 'E') return TRUE; if(cc == 'f' || cc == 'F') return TRUE; return FALSE; } // >0 : success // <=0 : failed // -1 : invalid hex string int convert_str2bin(const char* str, unsigned char* out_buf, int* out_size) { int len = strlen(str); // check valid hex string int i = 0; for(i = 0; i < len; ++i) { if(!check_valid_hex(str[i])) { return -1; } } // convert int pt = 0; while(pt*2 < len) { // sscanf´Â FA¿Í fa¸¦ ´Ù ÀνÄÇÑ´Ù. - cjy, 07_1203 11:37 int nn; sscanf(str+(pt*2), "%02X", &nn); out_buf[pt] = nn; pt++; } *out_size = pt; return 1; } void test_convert_str2bin() { int hr; ASSERT(is_num('2')); ASSERT(is_num('0')); ASSERT(is_num('9')); ASSERT(!is_num('A')); ASSERT(!is_num('@')); unsigned char bin[8] = {1,2,3,4,0xff, 0xf0, 0xba, 5}; char str[100]; unsigned char bin2[8] = {0,}; int bin2_size; convert_bin2str(bin, 8, str); hr = convert_str2bin(str, bin2, &bin2_size); ASSERT(bin2_size == 8); ASSERT(hr > 0); str[7] = 'K'; hr = convert_str2bin(str, bin2, &bin2_size); ASSERT(hr <= 0); } CString info2name(ClientInformation* info) { CString name; if(strcmp(info->Name, "") != 0) { name += info->Name; } if(strcmp(info->sIp, "") != 0) { name += "("; name += info->sIp; name += ")"; } return name; }