Changeset e1e8f7a in mainline for uspace/lib/pcap/src/pcap_dumper.c
- Timestamp:
- 2024-12-13T08:44:05Z (14 months ago)
- Children:
- e5b2777
- Parents:
- 467d2b9
- git-author:
- Nataliia Korop <n.corop08@…> (2024-11-16 11:14:06)
- git-committer:
- Nataliia Korop <n.corop08@…> (2024-12-13 08:44:05)
- File:
-
- 1 edited
-
uspace/lib/pcap/src/pcap_dumper.c (modified) (6 diffs)
Legend:
- Unmodified
- Added
- Removed
-
uspace/lib/pcap/src/pcap_dumper.c
r467d2b9 re1e8f7a 39 39 #include "pcap_dumper.h" 40 40 41 #define SHORT_OPS_BYTE_COUNT 60 42 #define NAME "pcap" 43 41 44 /** Initialize writing to .pcap file. 42 45 * … … 48 51 static errno_t pcap_writer_to_file_init(pcap_writer_t *writer, const char *filename) 49 52 { 50 errno_t rc;51 53 writer->data = fopen(filename, "a"); 52 54 if (writer->data == NULL) { 53 rc = EINVAL; 54 return rc; 55 return EINVAL; 55 56 } 56 57 pcap_writer_add_header(writer); 57 58 58 rc = EOK; 59 return rc; 59 return EOK; 60 } 61 62 static errno_t pcap_writer_to_file_init_append(pcap_writer_t *writer, const char *filename) 63 { 64 writer->data = fopen(filename, "a"); 65 if (writer->data == NULL) { 66 return EINVAL; 67 } 68 69 return EOK; 60 70 } 61 71 … … 82 92 } 83 93 84 static pcap_writer_ops_t file_ops = {94 static const pcap_writer_ops_t file_ops = { 85 95 .open = &pcap_writer_to_file_init, 86 96 .write_u32 = &pcap_file_w32, … … 90 100 }; 91 101 92 static size_t pcap_short_file_w32(pcap_writer_t *writer, uint32_t data)93 {94 return fwrite(&data, 1, 4, (FILE *)writer->data);95 }96 97 static size_t pcap_short_file_w16(pcap_writer_t *writer, uint16_t data)98 {99 return fwrite(&data, 1, 2, (FILE *)writer->data);100 }101 102 102 static size_t pcap_short_file_wbuffer(pcap_writer_t *writer, const void *data, size_t size) 103 103 { 104 return fwrite(data, 1, size < 60 ? size : 60, (FILE *)writer->data); 105 } 106 107 static void pcap_short_file_close(pcap_writer_t *writer) 108 { 109 fclose((FILE *)writer->data); 110 } 111 112 static pcap_writer_ops_t short_file_ops = { 104 return fwrite(data, 1, size < 60 ? size : 60, (FILE *)writer->data); //define 105 } 106 107 static const pcap_writer_ops_t short_file_ops = { 113 108 .open = &pcap_writer_to_file_init, 114 .write_u32 = &pcap_ short_file_w32,115 .write_u16 = &pcap_ short_file_w16,109 .write_u32 = &pcap_file_w32, 110 .write_u16 = &pcap_file_w16, 116 111 .write_buffer = &pcap_short_file_wbuffer, 117 .close = &pcap_ short_file_close112 .close = &pcap_file_close 118 113 119 114 }; 115 116 static const pcap_writer_ops_t append_file_ops = { 117 .open = &pcap_writer_to_file_init_append, 118 .write_u32 = &pcap_file_w32, 119 .write_u16 = &pcap_file_w16, 120 .write_buffer = &pcap_file_wbuffer, 121 .close = &pcap_file_close 122 }; 123 124 static pcap_writer_ops_t ops[3] = {file_ops, short_file_ops, append_file_ops}; 125 126 int pcap_dumper_get_ops_number(void) 127 { 128 return (int)(sizeof(ops) / sizeof(pcap_writer_ops_t)); 129 } 120 130 121 131 errno_t pcap_dumper_start(struct pcap_dumper *dumper, const char *name) … … 137 147 } 138 148 139 errno_t pcap_dumper_set_ops(struct pcap_dumper *dumper, const char *name)149 errno_t pcap_dumper_set_ops(struct pcap_dumper *dumper, int index) 140 150 { 141 151 fibril_mutex_lock(&dumper->mutex); 142 152 errno_t rc = EOK; 143 if (!str_cmp(name, "short_file")) { 144 dumper->writer.ops = &short_file_ops; 145 } else if (!str_cmp(name, "full_file")) { 146 dumper->writer.ops = &file_ops; 147 } else { 148 rc = EINVAL; 149 } 153 dumper->writer.ops = &ops[index]; 150 154 fibril_mutex_unlock(&dumper->mutex); 151 155 return rc; … … 190 194 dumper->writer.ops = NULL; 191 195 192 errno_t rc = log_init( "pcap");196 errno_t rc = log_init(NAME); 193 197 if (rc != EOK) { 194 printf(" pcap : Failed to initialize log.\n");198 printf("%s : Failed to initialize log.\n", NAME); 195 199 return 1; 196 200 }
Note:
See TracChangeset
for help on using the changeset viewer.
