822 free(buf); // only free the UcxBuffer struct |
822 free(buf); // only free the UcxBuffer struct |
823 return str; |
823 return str; |
824 } |
824 } |
825 |
825 |
826 |
826 |
827 char* util_hexstr(unsigned char *data, size_t len) { |
827 char* util_hexstr(const unsigned char *data, size_t len) { |
828 size_t buflen = 2*len + 4; |
828 size_t buflen = 2*len + 4; |
829 UcxBuffer *buf = ucx_buffer_new(malloc(buflen), buflen + 1, 0); |
829 UcxBuffer *buf = ucx_buffer_new(malloc(buflen), buflen + 1, 0); |
830 for(int i=0;i<len;i++) { |
830 for(int i=0;i<len;i++) { |
831 ucx_bprintf(buf, "%x", data[i]); |
831 ucx_bprintf(buf, "%x", data[i]); |
832 } |
832 } |