static gboolean wtap_dump_open_check(int filetype, int encap, gboolean compressed, int *err) { if (!wtap_dump_can_open(filetype)) { /* Invalid type, or type we don't know how to write. */ *err = WTAP_ERR_UNSUPPORTED_FILE_TYPE; return FALSE; } /* OK, we know how to write that type; can we write the specified encapsulation type? */ *err = (*dump_open_table[filetype].can_write_encap)(encap); if (*err != 0) return FALSE; /* if compression is wanted, do we support this for this filetype? */ if(compressed && !wtap_dump_can_compress(filetype)) { *err = WTAP_ERR_COMPRESSION_NOT_SUPPORTED; return FALSE; } *err = (*dump_open_table[filetype].can_write_encap)(encap); if (*err != 0) return FALSE; /* All systems go! */ return TRUE; }
static void list_capture_types(void) { int i; struct string_elem *captypes; GSList *list = NULL; captypes = g_malloc(sizeof(struct string_elem) * WTAP_NUM_FILE_TYPES); fprintf(stderr, "editcap: The available capture file types for the \"-F\" flag are:\n"); for (i = 0; i < WTAP_NUM_FILE_TYPES; i++) { if (wtap_dump_can_open(i)) { captypes[i].sstr = wtap_file_type_short_string(i); captypes[i].lstr = wtap_file_type_string(i); list = g_slist_insert_sorted(list, &captypes[i], string_compare); } } g_slist_foreach(list, string_elem_print, NULL); g_slist_free(list); g_free(captypes); }