1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677 |
- /*
- * ZMap Copyright 2013 Regents of the University of Michigan
- *
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not
- * use this file except in compliance with the License. You may obtain a copy
- * of the License at http://www.apache.org/licenses/LICENSE-2.0
- */
- #include <stdlib.h>
- #include <stdio.h>
- #include <stdint.h>
- #include <unistd.h>
- #include <string.h>
- typedef enum udp_payload_field_type
- {
- UDP_DATA,
- UDP_SADDR_N, UDP_SADDR_A, UDP_DADDR_N, UDP_DADDR_A,
- UDP_SPORT_N, UDP_SPORT_A, UDP_DPORT_N, UDP_DPORT_A,
- UDP_RAND_BYTE,
- UDP_RAND_DIGIT,
- UDP_RAND_ALPHA,
- UDP_RAND_ALPHANUM
- } udp_payload_field_type_t;
- typedef struct udp_payload_field_type_def {
- const char *name;
- const char *desc;
- udp_payload_field_type_t ftype;
- } udp_payload_field_type_def_t;
- typedef struct udp_payload_field
- {
- enum udp_payload_field_type ftype;
- unsigned int length;
- char *data;
- } udp_payload_field_t;
- typedef struct udp_payload_template
- {
- unsigned int fcount;
- struct udp_payload_field **fields;
- } udp_payload_template_t;
- typedef struct udp_payload_output
- {
- int length;
- char *data;
- } udp_payload_output_t;
- void udp_print_packet(FILE *fp, void* packet);
- int udp_make_packet(void *buf, ipaddr_n_t src_ip, ipaddr_n_t dst_ip,
- uint32_t *validation, int probe_num, void *arg);
- int udp_validate_packet(const struct ip *ip_hdr, uint32_t len,
- __attribute__((unused))uint32_t *src_ip, uint32_t *validation);
- extern const char *udp_unreach_strings[];
- int udp_global_initialize(struct state_conf *conf);
- int udp_global_cleanup(__attribute__((unused)) struct state_conf *zconf,
- __attribute__((unused)) struct state_send *zsend,
- __attribute__((unused)) struct state_recv *zrecv);
- void udp_set_num_ports(int x);
- void udp_template_add_field(udp_payload_template_t *t,
- udp_payload_field_type_t ftype, unsigned int length, char *data);
- void udp_template_free(udp_payload_template_t *t);
- int udp_template_build(udp_payload_template_t *t, char *out, unsigned int len, struct ip *ip_hdr, struct udphdr *udp_hdr, aesrand_t *aes);
- int udp_template_field_lookup(char *vname, udp_payload_field_t *c);
- udp_payload_template_t * udp_template_load(char *buf, unsigned int len);
|