djgn
This commit is contained in:
parent
3a6d034a95
commit
13bc1e327a
34
src/node.c
34
src/node.c
@ -9,8 +9,40 @@ packet listen_for_packets(){
|
|||||||
|
|
||||||
// We need to make sure the TLV announces a length that will no go onto
|
// We need to make sure the TLV announces a length that will no go onto
|
||||||
// another tlv, as we might end up reading bullshit.
|
// another tlv, as we might end up reading bullshit.
|
||||||
int validate_tlvs(union tlv tlv_to_validate){
|
int validate_tlv(unsigned char *data, int pos){
|
||||||
|
switch(data[pos]) {
|
||||||
|
case 0:
|
||||||
|
break;
|
||||||
|
case 1:
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
if(data[pos+1] != 0) return 0;
|
||||||
|
break;
|
||||||
|
case 3:
|
||||||
|
if(data[pos+1] != 18) return 0;
|
||||||
|
break;
|
||||||
|
case 4:
|
||||||
|
if(data[pos+1] != 16) return 0;
|
||||||
|
break;
|
||||||
|
case 5:
|
||||||
|
if(data[pos+1] != 0) return 0;
|
||||||
|
break;
|
||||||
|
case 6:
|
||||||
|
if(data[pos+1] != 26) return 0;
|
||||||
|
break;
|
||||||
|
case 7:
|
||||||
|
if(data[pos+1] != 8) return 0;
|
||||||
|
break;
|
||||||
|
case 8:
|
||||||
|
if(data[pos+1] < 26 || data[pos+1] > 218) return 0;
|
||||||
|
break;
|
||||||
|
case 9:
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
void work_with_tlvs(struct tlvs_list receivied_tlvs){
|
void work_with_tlvs(struct tlvs_list receivied_tlvs){
|
||||||
|
@ -46,7 +46,7 @@ void update_neighbours();
|
|||||||
|
|
||||||
void work_with_tlvs();
|
void work_with_tlvs();
|
||||||
|
|
||||||
int validate_tlvs();
|
int validate_tlv(unsigned char *data, int pos);
|
||||||
|
|
||||||
// threaded functions
|
// threaded functions
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user