Changeset 1d14090 in mainline for uspace/lib/pcap/src/pcap_dumper.c
- Timestamp:
- 2024-12-13T08:44:05Z (15 months ago)
- Children:
- 64ea525
- Parents:
- f08447b
- git-author:
- Nataliia Korop <n.corop08@…> (2024-11-10 09:08:41)
- git-committer:
- Nataliia Korop <n.corop08@…> (2024-12-13 08:44:05)
- File:
-
- 1 moved
-
uspace/lib/pcap/src/pcap_dumper.c (moved) (moved from uspace/lib/pcap/src/pcap_iface.c ) (9 diffs)
Legend:
- Unmodified
- Added
- Removed
-
uspace/lib/pcap/src/pcap_dumper.c
rf08447b r1d14090 35 35 36 36 #include <errno.h> 37 #include "pcap_iface.h" 37 #include <str.h> 38 #include "pcap_dumper.h" 38 39 39 40 static size_t pcap_file_w32(pcap_writer_t *writer, uint32_t data) … … 49 50 static size_t pcap_file_wbuffer(pcap_writer_t *writer, const void *data, size_t size) 50 51 { 52 assert(writer->data); 51 53 return fwrite(data, 1, size, (FILE *)writer->data); 52 54 } … … 55 57 { 56 58 fclose((FILE *)writer->data); 59 writer->data = NULL; 57 60 } 58 61 … … 65 68 }; 66 69 67 //static size_t pcap_short_file_w32(pcap_writer_t *writer, uint32_t data)68 //{69 //return fwrite(&data, 1, 4, (FILE *)writer->data);70 //}70 static size_t pcap_short_file_w32(pcap_writer_t *writer, uint32_t data) 71 { 72 return fwrite(&data, 1, 4, (FILE *)writer->data); 73 } 71 74 72 //static size_t pcap_short_file_w16(pcap_writer_t *writer, uint16_t data)73 //{74 //return fwrite(&data, 1, 2, (FILE *)writer->data);75 //}75 static size_t pcap_short_file_w16(pcap_writer_t *writer, uint16_t data) 76 { 77 return fwrite(&data, 1, 2, (FILE *)writer->data); 78 } 76 79 77 //static size_t pcap_short_file_wbuffer(pcap_writer_t *writer, const void *data, size_t size)78 //{79 //return fwrite(data, 1, size<60?size:60, (FILE *)writer->data);80 //}80 static size_t pcap_short_file_wbuffer(pcap_writer_t *writer, const void *data, size_t size) 81 { 82 return fwrite(data, 1, size<60?size:60, (FILE *)writer->data); 83 } 81 84 82 //static void pcap_short_file_close(pcap_writer_t *writer)83 //{84 //fclose((FILE *)writer->data);85 //}85 static void pcap_short_file_close(pcap_writer_t *writer) 86 { 87 fclose((FILE *)writer->data); 88 } 86 89 87 //static pcap_writer_ops_t short_file_ops = {88 //.write_u32 = &pcap_short_file_w32,89 //.write_u16 = &pcap_short_file_w16,90 //.write_buffer = &pcap_short_file_wbuffer,91 //.close = &pcap_short_file_close90 static pcap_writer_ops_t short_file_ops = { 91 .write_u32 = &pcap_short_file_w32, 92 .write_u16 = &pcap_short_file_w16, 93 .write_buffer = &pcap_short_file_wbuffer, 94 .close = &pcap_short_file_close 92 95 93 //};96 }; 94 97 95 98 errno_t pcap_dumper_start(struct pcap_dumper *dumper, const char *name) … … 98 101 99 102 /** When try to start when already started, close current and starts new */ 100 if (dumper->to_dump == true) {103 if (dumper->to_dump) { 101 104 pcap_dumper_stop(dumper); 102 105 } … … 111 114 } 112 115 113 //udelat globalni 116 errno_t pcap_dumper_set_ops(struct pcap_dumper *dumper, const char *name) 117 { 118 fibril_mutex_lock(&dumper->mutex); 119 errno_t rc = EOK; 120 if (!str_cmp(name, "short_file")) 121 { 122 dumper->writer.ops = &short_file_ops; 123 } 124 else if (!str_cmp(name, "full_file")) 125 { 126 dumper->writer.ops = &file_ops; 127 } 128 else 129 { 130 rc = EINVAL; 131 } 132 fibril_mutex_unlock(&dumper->mutex); 133 return rc; 134 } 135 136 114 137 void pcap_dumper_add_packet(struct pcap_dumper *dumper, const void *data, size_t size) 115 138 { 116 139 fibril_mutex_lock(&dumper->mutex); 117 140 118 if ( dumper->writer.data == NULL ||!dumper->to_dump) {141 if (!dumper->to_dump) { 119 142 fibril_mutex_unlock(&dumper->mutex); 120 143 return; 121 144 } 145 122 146 pcap_writer_add_packet(&dumper->writer, data, size); 123 147 fibril_mutex_unlock(&dumper->mutex); 124 148 } 125 149 126 //udelt globalni127 150 void pcap_dumper_stop(struct pcap_dumper *dumper) 128 151 { … … 130 153 131 154 /** If want to stop, when already stopped, do nothing */ 132 if ( dumper->to_dump == false) {155 if (!dumper->to_dump) { 133 156 fibril_mutex_unlock(&dumper->mutex); 134 157 return; … … 136 159 dumper->to_dump = false; 137 160 dumper->writer.ops->close(&dumper->writer); 138 dumper->writer.data = NULL;139 161 fibril_mutex_unlock(&dumper->mutex); 140 162 } … … 149 171 fibril_mutex_initialize(&dumper->mutex); 150 172 dumper->to_dump = false; 151 dumper->writer.ops = &file_ops;173 dumper->writer.ops = NULL; 152 174 return EOK; 153 175 }
Note:
See TracChangeset
for help on using the changeset viewer.
