Loading src/proto-preprocess.c +1 −1 Original line number Diff line number Diff line Loading @@ -218,7 +218,7 @@ parse_ipv6_next: case 0x2c: /* IPv6 fragmetn */ return 0; default: printf("***** test me ******\n"); //printf("***** test me ******\n"); return 0; /* todo: should add more protocols, like ICMP */ } } Loading src/templ-pkt.c +14 −16 Original line number Diff line number Diff line Loading @@ -316,19 +316,17 @@ icmp_checksum(struct TemplatePacket *tmpl) } struct TemplateSet templ_copy(const struct TemplateSet *templ) struct TemplateSet templ_copy(const struct TemplateSet *templset) { struct TemplateSet result; unsigned i; memcpy(&result, templ, sizeof(result)); memcpy(&result, templset, sizeof(result)); assert(sizeof(templ->pkts)/sizeof(templ->pkts[0]) == 8); for (i=0; i<6; i++) { const struct TemplatePacket *p1 = &templ->pkts[i]; for (i=0; i<templset->count; i++) { const struct TemplatePacket *p1 = &templset->pkts[i]; struct TemplatePacket *p2 = &result.pkts[i]; p2->packet = malloc(p2->length); p2->packet = (unsigned char*)malloc(p2->length); memcpy(p2->packet, p1->packet, p2->length); } Loading Loading @@ -770,7 +768,7 @@ template_packet_init( struct NmapPayloads *payloads) { unsigned source_ip = 0; templset->length = 0; templset->count = 0; /* [TCP] */ _template_init( &templset->pkts[Proto_TCP], Loading @@ -778,7 +776,7 @@ template_packet_init( default_tcp_template, sizeof(default_tcp_template)-1 ); templset->length++; templset->count++; /* [UDP] */ _template_init( &templset->pkts[Proto_UDP], Loading @@ -787,7 +785,7 @@ template_packet_init( sizeof(default_udp_template)-1 ); templset->pkts[Proto_UDP].payloads = payloads; templset->length++; templset->count++; /* [SCTP] */ _template_init( &templset->pkts[Proto_SCTP], Loading @@ -795,7 +793,7 @@ template_packet_init( default_sctp_template, sizeof(default_sctp_template)-1 ); templset->length++; templset->count++; /* [ICMP ping] */ _template_init( &templset->pkts[Proto_ICMP_ping], Loading @@ -803,7 +801,7 @@ template_packet_init( default_icmp_ping_template, sizeof(default_icmp_ping_template)-1 ); templset->length++; templset->count++; /* [ICMP timestamp] */ _template_init( &templset->pkts[Proto_ICMP_timestamp], Loading @@ -811,7 +809,7 @@ template_packet_init( default_icmp_timestamp_template, sizeof(default_icmp_timestamp_template)-1 ); templset->length++; templset->count++; /* [ARP] */ _template_init( &templset->pkts[Proto_ARP], Loading @@ -819,7 +817,7 @@ template_packet_init( default_arp_template, sizeof(default_arp_template)-1 ); templset->length++; templset->count++; } /*************************************************************************** Loading Loading @@ -876,9 +874,9 @@ template_set_source_port(struct TemplateSet *tmplset, unsigned port) void template_set_ttl(struct TemplateSet *tmplset, unsigned ttl) { int i; unsigned i; for (i=0; i<tmplset->length; i++) { for (i=0; i<tmplset->count; i++) { struct TemplatePacket *tmpl = &tmplset->pkts[i]; unsigned char *px = tmpl->packet; unsigned offset = tmpl->offset_ip; Loading src/templ-pkt.h +1 −0 Original line number Diff line number Diff line Loading @@ -45,6 +45,7 @@ struct TemplateSet { const unsigned char *px; unsigned length; unsigned count; struct TemplatePacket pkts[8]; }; Loading Loading
src/proto-preprocess.c +1 −1 Original line number Diff line number Diff line Loading @@ -218,7 +218,7 @@ parse_ipv6_next: case 0x2c: /* IPv6 fragmetn */ return 0; default: printf("***** test me ******\n"); //printf("***** test me ******\n"); return 0; /* todo: should add more protocols, like ICMP */ } } Loading
src/templ-pkt.c +14 −16 Original line number Diff line number Diff line Loading @@ -316,19 +316,17 @@ icmp_checksum(struct TemplatePacket *tmpl) } struct TemplateSet templ_copy(const struct TemplateSet *templ) struct TemplateSet templ_copy(const struct TemplateSet *templset) { struct TemplateSet result; unsigned i; memcpy(&result, templ, sizeof(result)); memcpy(&result, templset, sizeof(result)); assert(sizeof(templ->pkts)/sizeof(templ->pkts[0]) == 8); for (i=0; i<6; i++) { const struct TemplatePacket *p1 = &templ->pkts[i]; for (i=0; i<templset->count; i++) { const struct TemplatePacket *p1 = &templset->pkts[i]; struct TemplatePacket *p2 = &result.pkts[i]; p2->packet = malloc(p2->length); p2->packet = (unsigned char*)malloc(p2->length); memcpy(p2->packet, p1->packet, p2->length); } Loading Loading @@ -770,7 +768,7 @@ template_packet_init( struct NmapPayloads *payloads) { unsigned source_ip = 0; templset->length = 0; templset->count = 0; /* [TCP] */ _template_init( &templset->pkts[Proto_TCP], Loading @@ -778,7 +776,7 @@ template_packet_init( default_tcp_template, sizeof(default_tcp_template)-1 ); templset->length++; templset->count++; /* [UDP] */ _template_init( &templset->pkts[Proto_UDP], Loading @@ -787,7 +785,7 @@ template_packet_init( sizeof(default_udp_template)-1 ); templset->pkts[Proto_UDP].payloads = payloads; templset->length++; templset->count++; /* [SCTP] */ _template_init( &templset->pkts[Proto_SCTP], Loading @@ -795,7 +793,7 @@ template_packet_init( default_sctp_template, sizeof(default_sctp_template)-1 ); templset->length++; templset->count++; /* [ICMP ping] */ _template_init( &templset->pkts[Proto_ICMP_ping], Loading @@ -803,7 +801,7 @@ template_packet_init( default_icmp_ping_template, sizeof(default_icmp_ping_template)-1 ); templset->length++; templset->count++; /* [ICMP timestamp] */ _template_init( &templset->pkts[Proto_ICMP_timestamp], Loading @@ -811,7 +809,7 @@ template_packet_init( default_icmp_timestamp_template, sizeof(default_icmp_timestamp_template)-1 ); templset->length++; templset->count++; /* [ARP] */ _template_init( &templset->pkts[Proto_ARP], Loading @@ -819,7 +817,7 @@ template_packet_init( default_arp_template, sizeof(default_arp_template)-1 ); templset->length++; templset->count++; } /*************************************************************************** Loading Loading @@ -876,9 +874,9 @@ template_set_source_port(struct TemplateSet *tmplset, unsigned port) void template_set_ttl(struct TemplateSet *tmplset, unsigned ttl) { int i; unsigned i; for (i=0; i<tmplset->length; i++) { for (i=0; i<tmplset->count; i++) { struct TemplatePacket *tmpl = &tmplset->pkts[i]; unsigned char *px = tmpl->packet; unsigned offset = tmpl->offset_ip; Loading
src/templ-pkt.h +1 −0 Original line number Diff line number Diff line Loading @@ -45,6 +45,7 @@ struct TemplateSet { const unsigned char *px; unsigned length; unsigned count; struct TemplatePacket pkts[8]; }; Loading