Changeset e5b2777 in mainline for uspace/lib/pcap/src/pcap_dumper.c
- Timestamp:
- 2024-12-13T08:44:05Z (15 months ago)
- Children:
- 31d2aee
- Parents:
- e1e8f7a
- git-author:
- Nataliia Korop <n.corop08@…> (2024-11-17 09:14:10)
- git-committer:
- Nataliia Korop <n.corop08@…> (2024-12-13 08:44:05)
- File:
-
- 1 edited
-
uspace/lib/pcap/src/pcap_dumper.c (modified) (9 diffs)
Legend:
- Unmodified
- Added
- Removed
-
uspace/lib/pcap/src/pcap_dumper.c
re1e8f7a re5b2777 40 40 41 41 #define SHORT_OPS_BYTE_COUNT 60 42 #define NAME "pcap"43 42 44 43 /** Initialize writing to .pcap file. … … 55 54 return EINVAL; 56 55 } 57 pcap_writer_add_header(writer );56 pcap_writer_add_header(writer, (uint32_t)PCAP_LINKTYPE_ETHERNET, false); 58 57 59 58 return EOK; … … 70 69 } 71 70 71 static errno_t pcap_writer_to_file_usb_init(pcap_writer_t *writer, const char *filename) 72 { 73 writer->data = fopen(filename, "a"); 74 if (writer->data == NULL) { 75 return EINVAL; 76 } 77 pcap_writer_add_header(writer, (uint32_t)PCAP_LINKTYPE_USB_LINUX_MMAPPED, false); 78 79 return EOK; 80 } 81 72 82 static size_t pcap_file_w32(pcap_writer_t *writer, uint32_t data) 73 83 { … … 122 132 }; 123 133 124 static pcap_writer_ops_t ops[3] = {file_ops, short_file_ops, append_file_ops}; 134 static const pcap_writer_ops_t usb_file_ops = { 135 .open = &pcap_writer_to_file_usb_init, 136 .write_u32 = &pcap_file_w32, 137 .write_u16 = &pcap_file_w16, 138 .write_buffer = &pcap_file_wbuffer, 139 .close = &pcap_file_close 140 }; 141 142 static pcap_writer_ops_t ops[4] = {file_ops, short_file_ops, append_file_ops, usb_file_ops}; 125 143 126 144 int pcap_dumper_get_ops_number(void) … … 129 147 } 130 148 131 errno_t pcap_dumper_start( struct pcap_dumper*dumper, const char *name)149 errno_t pcap_dumper_start(pcap_dumper_t *dumper, const char *name) 132 150 { 133 151 fibril_mutex_lock(&dumper->mutex); … … 147 165 } 148 166 149 errno_t pcap_dumper_set_ops( struct pcap_dumper*dumper, int index)167 errno_t pcap_dumper_set_ops(pcap_dumper_t *dumper, int index) 150 168 { 151 169 fibril_mutex_lock(&dumper->mutex); … … 156 174 } 157 175 158 void pcap_dumper_add_packet( struct pcap_dumper*dumper, const void *data, size_t size)176 void pcap_dumper_add_packet(pcap_dumper_t *dumper, const void *data, size_t size) 159 177 { 160 178 fibril_mutex_lock(&dumper->mutex); … … 169 187 } 170 188 171 void pcap_dumper_stop( struct pcap_dumper*dumper)189 void pcap_dumper_stop(pcap_dumper_t *dumper) 172 190 { 173 191 fibril_mutex_lock(&dumper->mutex); … … 183 201 } 184 202 185 /** Initialize interface for dumping packets 186 * 187 * @param dumper Device dumping interface 188 * 189 */ 190 errno_t pcap_dumper_init(pcap_dumper_t *dumper) 191 { 192 fibril_mutex_initialize(&dumper->mutex); 193 dumper->to_dump = false; 194 dumper->writer.ops = NULL; 195 196 errno_t rc = log_init(NAME); 197 if (rc != EOK) { 198 printf("%s : Failed to initialize log.\n", NAME); 199 return 1; 200 } 201 return EOK; 202 } 203 203 204 204 205 /** @}
Note:
See TracChangeset
for help on using the changeset viewer.
