Changeset 2dc1d9b


Ignore:
Timestamp:
11/21/18 14:46:12 (2 years ago)
Author:
Jacob Van Walraven <jcv9@…>
Branches:
develop
Children:
2725318
Parents:
158519c
Message:

Add more informative errors instead of using assertions everywhere

Location:
lib
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • lib/libtrace.h.in

    r43aec21 r2dc1d9b  
    309309        TRACE_ERR_WANDIO_FAILED = -12,
    310310        /** Input URI (file) not found */
    311         TRACE_ERR_URI_NOT_FOUND = -13 
     311        TRACE_ERR_URI_NOT_FOUND = -13,
     312        /** NULL passed to create trace **/
     313        TRACE_ERR_URI_NULL = -14,
     314        /** NULL trace passed to trace_start **/
     315        TRACE_ERR_NULL_TRACE = -15,
     316        /** Unable to finish last packet in trace_pause **/
     317        TRACE_ERR_PAUSE_FIN = -16,
     318        /** Packet is NULL **/
     319        TRACE_ERR_NULL_PACKET = -17
    312320};
    313321
  • lib/trace.c

    r43aec21 r2dc1d9b  
    247247        trace_init();
    248248
    249         assert(uri && "Passing NULL to trace_create makes me a very sad program");
    250 
    251249        if (!libtrace) {
    252                 /* Out of memory */
    253                 return NULL;
     250                /* Out of memory */
     251                return NULL;
     252        }
     253
     254        /*assert(uri && "Passing NULL to trace_create makes me a very sad program");*/
     255        if(!uri) {
     256                trace_set_err(libtrace, TRACE_ERR_URI_NULL, "Passing NULL to trace_create makes me a very sad program");
     257                return libtrace;
    254258        }
    255259
     
    534538DLLEXPORT int trace_start(libtrace_t *libtrace)
    535539{
    536         assert(libtrace);
     540        /*assert(libtrace);*/
     541        if(!libtrace) {
     542                return TRACE_ERR_NULL_TRACE;
     543        }
     544
    537545        if (trace_is_err(libtrace))
    538546                return -1;
     
    551559DLLEXPORT int trace_start_output(libtrace_out_t *libtrace)
    552560{
    553         assert(libtrace);
     561        /*assert(libtrace);*/
     562        if(!libtrace) {
     563                return TRACE_ERR_NULL_TRACE;
     564        }
    554565        if (libtrace->format->start_output) {
    555566                int ret=libtrace->format->start_output(libtrace);
     
    565576DLLEXPORT int trace_pause(libtrace_t *libtrace)
    566577{
    567         assert(libtrace);
     578        /*assert(libtrace);*/
     579        if(!libtrace) {
     580                return TRACE_ERR_NULL_TRACE;
     581        }
    568582        if (!libtrace->started) {
    569583                trace_set_err(libtrace,TRACE_ERR_BAD_STATE, "You must call trace_start() before calling trace_pause()");
     
    574588        if (!libtrace_parallel && libtrace->last_packet)
    575589                trace_fin_packet(libtrace->last_packet);
    576         assert(libtrace->last_packet == NULL);
     590        /*assert(libtrace->last_packet == NULL);*/
     591        if(libtrace->last_packet != NULL) {
     592                trace_set_err(libtrace, TRACE_ERR_PAUSE_FIN, "Unable to remove all data stored against the trace in trace_pause()");
     593                return -1;
     594        }
    577595
    578596        if (libtrace->format->pause_input)
     
    712730 *
    713731 */
    714 DLLEXPORT void trace_destroy(libtrace_t *libtrace) {
     732DLLEXPORT int trace_destroy(libtrace_t *libtrace) {
    715733        int i;
    716         assert(libtrace);
     734
     735        /*assert(libtrace);*/
     736        if(!libtrace) {
     737                return TRACE_ERR_NULL_TRACE;
     738        }
    717739
    718740        ASSERT_RET(pthread_mutex_destroy(&libtrace->libtrace_lock), == 0);
     
    799821
    800822        free(libtrace);
    801 }
    802 
    803 
    804 DLLEXPORT void trace_destroy_dead(libtrace_t *libtrace) {
    805         assert(libtrace);
     823
     824        return 0;
     825}
     826
     827
     828DLLEXPORT int trace_destroy_dead(libtrace_t *libtrace) {
     829        /*assert(libtrace);*/
     830        if(!libtrace) {
     831                return TRACE_ERR_NULL_TRACE;
     832        }
    806833
    807834        ASSERT_RET(pthread_mutex_destroy(&libtrace->libtrace_lock), == 0);
     
    815842                free(libtrace->format_data);
    816843        free(libtrace);
     844
     845        return 0;
    817846}
    818847/* Close an output trace file, freeing up any resources it may have been using
     
    820849 * @param libtrace      the output trace file to be destroyed
    821850 */
    822 DLLEXPORT void trace_destroy_output(libtrace_out_t *libtrace)
    823 {
    824         assert(libtrace);
     851DLLEXPORT int trace_destroy_output(libtrace_out_t *libtrace) {
     852        /*assert(libtrace);*/
     853        if(!libtrace) {
     854                return TRACE_ERR_NULL_TRACE;
     855        }
    825856        if (libtrace->format && libtrace->format->fin_output)
    826857                libtrace->format->fin_output(libtrace);
     
    828859                free(libtrace->uridata);
    829860        free(libtrace);
     861
     862        return 0;
    830863}
    831864
    832865DLLEXPORT int trace_flush_output(libtrace_out_t *libtrace) {
    833866        if (!libtrace) {
    834                 return -1;
     867                return TRACE_ERR_NULL_TRACE;
    835868        }
    836869        if (libtrace->format && libtrace->format->flush_output) {
     
    904937                packet->trace->last_packet = NULL;
    905938        }
    906        
     939
    907940        if (packet->buf_control == TRACE_CTRL_PACKET && packet->buffer) {
    908941                free(packet->buffer);
     
    965998DLLEXPORT int trace_read_packet(libtrace_t *libtrace, libtrace_packet_t *packet) {
    966999
    967         assert(libtrace && "You called trace_read_packet() with a NULL libtrace parameter!\n");
     1000        /*assert(libtrace && "You called trace_read_packet() with a NULL libtrace parameter!\n");*/
     1001        if (!libtrace) {
     1002                return TRACE_ERR_NULL_TRACE;
     1003        }
    9681004        if (trace_is_err(libtrace))
    9691005                return -1;
     
    9771013                return -1;
    9781014        }
    979         assert(packet);
     1015        /*assert(packet);*/
     1016        if (!packet) {
     1017                return TRACE_ERR_NULL_PACKET;
     1018        }
    9801019
    9811020        if (libtrace->format->read_packet) {
     
    10591098                void *buffer, libtrace_rt_types_t rt_type, uint32_t flags) {
    10601099
    1061         assert(packet);
    1062         assert(trace);
     1100        /*assert(packet);*/
     1101        if (!packet) {
     1102                return TRACE_ERR_NULL_PACKET;
     1103        }
     1104        /*assert(trace);*/
     1105        if (!trace) {
     1106                return TRACE_ERR_NULL_TRACE;
     1107        }
    10631108
    10641109        /* XXX Proper error handling?? */
     
    10941139 */
    10951140DLLEXPORT int trace_write_packet(libtrace_out_t *libtrace, libtrace_packet_t *packet) {
    1096         assert(libtrace);
    1097         assert(packet);
     1141        /*assert(libtrace);*/
     1142        if (!libtrace) {
     1143                return TRACE_ERR_NULL_TRACE;
     1144        }
     1145        /*assert(packet);*/
     1146        if (!packet) {
     1147                return TRACE_ERR_NULL_PACKET;
     1148        }
    10981149        /* Verify the packet is valid */
    10991150        if (!libtrace->started) {
    11001151                trace_set_err_out(libtrace,TRACE_ERR_BAD_STATE,
    1101                         "Trace is not started before trace_write_packet");
     1152                        "You must call trace_start() before calling trace_write_packet()");
    11021153                return -1;
    11031154        }
     
    11241175        libtrace_linktype_t ltype;
    11251176
    1126         assert(packet != NULL);
     1177        /*assert(packet != NULL);*/
     1178        if (!packet) {
     1179                return NULL;
     1180        }
    11271181        ltype = trace_get_link_type(packet);
    11281182
Note: See TracChangeset for help on using the changeset viewer.