diff options
author | Holger Hans Peter Freyther <zecke@selfish.org> | 2011-05-31 21:19:22 +0200 |
---|---|---|
committer | Holger Hans Peter Freyther <zecke@selfish.org> | 2011-05-31 21:19:52 +0200 |
commit | 77288207fa55e8e5d0b0f986c45b6a33ebaf891c (patch) | |
tree | 57b77d2c7ff7e7dcdde88cf2a0c520025b737c54 /include | |
parent | cd2d3db3b765fdaab245196ae34930180c4edb03 (diff) |
osmo-pcap-client: Connect to a server, send the data to it
Diffstat (limited to 'include')
-rw-r--r-- | include/osmo-pcap/osmo_pcap_client.h | 11 | ||||
-rw-r--r-- | include/osmo-pcap/wireformat.h | 46 |
2 files changed, 56 insertions, 1 deletions
diff --git a/include/osmo-pcap/osmo_pcap_client.h b/include/osmo-pcap/osmo_pcap_client.h index 95302b1..7aae7ca 100644 --- a/include/osmo-pcap/osmo_pcap_client.h +++ b/include/osmo-pcap/osmo_pcap_client.h @@ -20,9 +20,12 @@ * */ +#include <inttypes.h> #include <pcap.h> #include <osmocom/core/select.h> +#include <osmocom/core/timer.h> +#include <osmocom/core/write_queue.h> struct osmo_pcap_client { @@ -33,11 +36,12 @@ struct osmo_pcap_client { struct bpf_program bpf; char *filter_string; int filter_itself; - struct osmo_fd fd; char *srv_ip; int srv_port; + struct osmo_wqueue wqueue; + struct osmo_timer_list timer; }; extern struct osmo_pcap_client *pcap_client; @@ -46,3 +50,8 @@ int vty_client_init(struct osmo_pcap_client *); int osmo_client_capture(struct osmo_pcap_client *client, const char *device); int osmo_client_filter(struct osmo_pcap_client *client, const char *filter); + +void osmo_client_send_data(struct osmo_pcap_client *client, + struct pcap_pkthdr *hdr, const uint8_t *data); +void osmo_client_send_link(struct osmo_pcap_client *client); +void osmo_client_connect(struct osmo_pcap_client *); diff --git a/include/osmo-pcap/wireformat.h b/include/osmo-pcap/wireformat.h new file mode 100644 index 0000000..a642bb1 --- /dev/null +++ b/include/osmo-pcap/wireformat.h @@ -0,0 +1,46 @@ +/* + * osmo-pcap wireforat + * + * (C) 2011 by Holger Hans Peter Freyther <zecke@selfish.org> + * (C) 2011 by On-Waves + * All Rights Reserved + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * + */ + +#ifndef WIREFORMAT_H +#define WIREFORMAT_H + +#include <inttypes.h> +#include <pcap.h> + +/* + * Should send an entire pcap header + */ +#define PKT_LINK_HDR 0 + +/* + * Should send one packet... + */ +#define PKT_LINK_DATA 1 + +struct osmo_pcap_data { + uint8_t type; + uint8_t spare[3]; + uint32_t len; + uint8_t data[0]; +} __attribute__((packed)); + +#endif |