Minor fixes to the conversion from bytes to MultiAddress

master
John Jones 2017-02-20 08:15:16 -05:00
parent f2d1a5aa83
commit fcb0cce437
3 changed files with 20 additions and 8 deletions

View File

@ -31,8 +31,13 @@ uint64_t ip2int(const char * ipconvertint);
char * int2ip(int inputintip); char * int2ip(int inputintip);
//I didn't feel another address_bytes_to_string was necesarry sry guys /**
int bytes_to_string(char** resultzx, const uint8_t * catx,int xbsize); * Unserialize the bytes into a string
* @param results where to put the resultant string
* @param bytes the bytes to unserialize
* @param bytes_size the length of the bytes array
*/
int bytes_to_string(char** results, const uint8_t* bytes, int bytes_size);
char * address_string_to_bytes(struct Protocol * xx, const char * abc, size_t getsznow); char * address_string_to_bytes(struct Protocol * xx, const char * abc, size_t getsznow);

View File

@ -50,6 +50,7 @@ struct MultiAddress* multiaddress_new_from_bytes(const uint8_t* byteaddress, int
return NULL; return NULL;
} }
memcpy(out->bytes, byteaddress, size); memcpy(out->bytes, byteaddress, size);
out->bsize = size;
if(!bytes_to_string(&out->string,byteaddress,size)==1) if(!bytes_to_string(&out->string,byteaddress,size)==1)
{ {
multiaddress_free(out); multiaddress_free(out);

View File

@ -290,20 +290,26 @@ char * int2ip(int inputintip)
sprintf(xxx_int2ip_result, "%d.%d.%d.%d", ipint0,ipint1,ipint2,ipint3); sprintf(xxx_int2ip_result, "%d.%d.%d.%d", ipint0,ipint1,ipint2,ipint3);
return xxx_int2ip_result; return xxx_int2ip_result;
} }
//I didn't feel another address_bytes_to_string was necesarry sry guys
int bytes_to_string(char** buffer, const uint8_t* catx, int xbsize) /**
* Unserialize the bytes into a string
* @param results where to put the resultant string
* @param in_bytes the bytes to unserialize
* @param in_bytes_size the length of the bytes array
*/
int bytes_to_string(char** buffer, const uint8_t* in_bytes, int in_bytes_size)
{ {
*buffer = malloc(800); *buffer = malloc(800);
char* resultzx = *buffer; char* resultzx = *buffer;
bzero(resultzx, 800); bzero(resultzx, 800);
uint8_t * bytes = NULL; uint8_t * bytes = NULL;
int size = 0; int size = 0;
size = xbsize; size = in_bytes_size;
struct ProtocolListItem* head = NULL; struct ProtocolListItem* head = NULL;
load_protocols(&head); load_protocols(&head);
char hex[xbsize*2]; char hex[in_bytes_size*2];
bzero(hex,xbsize*2); bzero(hex,in_bytes_size*2);
strcat(hex,Var_To_Hex(size, catx)); strcat(hex,Var_To_Hex(size, in_bytes));
//Positioning for memory jump: //Positioning for memory jump:
int lastpos = 0; int lastpos = 0;
char pid[3]; char pid[3];