From 8bfb68ae91b7004d7788e51d16583e3f71053da9 Mon Sep 17 00:00:00 2001 From: epoch Date: Tue, 9 Feb 2016 03:03:12 +0000 Subject: changed some ns stuff. added ice's resources. some leftover files from playing with marc.c --- contrib/marc/marc | Bin 0 -> 8971 bytes contrib/marc/marc.c | 37 +++++++++++++++++++++++++++++++------ contrib/marc/marcdb | Bin 0 -> 1806749 bytes 3 files changed, 31 insertions(+), 6 deletions(-) create mode 100755 contrib/marc/marc create mode 100644 contrib/marc/marcdb (limited to 'contrib/marc') diff --git a/contrib/marc/marc b/contrib/marc/marc new file mode 100755 index 0000000..87ffd52 Binary files /dev/null and b/contrib/marc/marc differ diff --git a/contrib/marc/marc.c b/contrib/marc/marc.c index 4c736ec..a83eb9b 100644 --- a/contrib/marc/marc.c +++ b/contrib/marc/marc.c @@ -9,6 +9,9 @@ #define M_TYPE_LIST 2 #define M_TYPE_DICT 3 +//extension? +#define M_TYPE_TRANSFERCHAIN 5 + char *type[]={"NULL","string","list","dict"}; int indent; @@ -20,13 +23,24 @@ void pi() { } } +void printpercent(unsigned char *data,int length) { + for(;length;data++,length--) { + if(isprint(*data)) printf("%c",*data); + else { +// printf("%%%c%c","0123456789abcdef"[(*data-'0')>>4&15],"0123456789abcdef"[(*data-'0')&15]); + printf("%%%02x",*data); +//"0123456789abcdef"[(*data-'0')>>4&15],"0123456789abcdef"[(*data-'0')&15]); + } + } +} + int marc_decode(unsigned char *data,int from_index,int length) { - char *s; + unsigned char *s; unsigned int cur_len=0; unsigned char m_type=data[from_index]; from_index++; char *key; - if(!length) return printf("dafuq? no length???"),-1; + if(!length) return printf("what the fuck? no length???"),-1; pi(); printf("length: %d\n",length); pi(); @@ -38,7 +52,9 @@ int marc_decode(unsigned char *data,int from_index,int length) { s=malloc(length); memcpy(s,data+from_index,length-1); s[length-1]=0; - printf("string: %s\n",s); + printf("string: "); + printpercent(s,length); + printf("\n"); break; case M_TYPE_LIST: printf("list:\n"); @@ -75,8 +91,14 @@ int marc_decode(unsigned char *data,int from_index,int length) { } indent--; break; + /*case M_TYPE_TRANSFERCHAIN: + s=malloc(length); + memcpy(s,data+from_index,length-1); + s[length-1]=0; + printf("transfer: %s\n",s); + break;*/ default: - printf("oh fuck. dahell is this!?!? %d\n",m_type); + printf("oh fuck. dahell is this!?!? mtype of %d!?!?\n",m_type); break; } return 0; @@ -89,7 +111,7 @@ void printhex(unsigned char *data,int length) { } void update_message_decode(unsigned char *data,int from_index,int length) { - printf("update_message version: %d len: %d\n",data[from_index],length); + printf("\nupdate_message version: %d len: %d\n",data[from_index],length); if(data[from_index] != 2) return printf("this program only handles version 2 update messages.\n"); from_index++; char pkey[32]; @@ -135,7 +157,10 @@ void update_message_decode(unsigned char *data,int from_index,int length) { from_index+=2; from_index+=ext_data_len;//skip this for now... fuck it. printf(" ext %d type: %d len: %d\n",i,ext_type,ext_data_len); - if(ext_type != 1 && ext_type != 4) return printf("fuckfuckfuckfuck...\n"),0; + if(ext_type != 1 && ext_type != 4 && ext_type != 5) {//let's pretend 5 is transfer chain? + printf("fuck. unknown ext_type: %d @ %d\n",ext_type,from_index); + return; + } } marc_decode(data+from_index,0,length); //} diff --git a/contrib/marc/marcdb b/contrib/marc/marcdb new file mode 100644 index 0000000..2a2c63a Binary files /dev/null and b/contrib/marc/marcdb differ -- cgit v1.2.3