Changeset e4cc266 in mainline for uspace/lib/pcap/src/pcapctl_dump.c


Ignore:
Timestamp:
2024-03-10T11:40:30Z (12 months ago)
Author:
Nataliia Korop <n.corop08@…>
Children:
34aad53d, 78edb5e
Parents:
e846bec
Message:

ugly address

File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/lib/pcap/src/pcapctl_dump.c

    re846bec re4cc266  
    5151}
    5252
    53 static errno_t pcapctl_cat_has_drv(const char *drv_name, service_id_t* svc) {
     53static errno_t pcapctl_cat_get_svc(const char *drv_name, service_id_t* svc) {
    5454        errno_t rc;
    5555        category_id_t pcap_cat;
     
    9090        rc = loc_category_get_id("pcap", &pcap_cat, 0);
    9191        if (rc != EOK) {
    92                 printf("Error resolving category 'pcap'.\n");
     92                printf("Error resolving category pcap.\n");
    9393                return rc;
    9494        }
     
    9797        if (rc != EOK) {
    9898                printf("Error resolving list of pcap services.\n");
     99                free(pcap_svcs);
    99100                return rc;
    100101        }
    101102
    102         assert((count > 0) && "TODO: not implemented when no services are available\n");
    103 
    104         fprintf(stdout, "Drivers:\n");
     103        fprintf(stdout, "Services:\n");
    105104        for (unsigned i = 0; i < count; ++i) {
    106105                char *name = NULL;
    107106                loc_service_get_name(pcap_svcs[i], &name);
    108 
    109                 fprintf(stdout, "driver: %s\n", name);
     107                fprintf(stdout, "service: %s\n", name);
    110108        }
     109        free(pcap_svcs);
    111110        return EOK;
    112111}
    113112
    114 errno_t pcapctl_dump_init(pcapctl_sess_t *sess, const char *drv_name)
     113
     114errno_t pcapctl_dump_open(const char *svcname, pcapctl_sess_t **rsess)
    115115{
    116116        errno_t rc;
    117117        service_id_t svc;
    118         rc  = pcapctl_cat_has_drv(drv_name, &svc);
     118        pcapctl_sess_t *sess = calloc(1, sizeof(pcapctl_sess_t));
     119        if (sess == NULL)
     120                return ENOMEM;
     121
     122        rc  = pcapctl_cat_get_svc(svcname, &svc);
    119123        if (rc != EOK) {
    120                 fprintf(stderr, "No such driver was found.\n");
    121                 return 1;
     124                goto error;
    122125        }
    123126        async_sess_t *new_session = loc_service_connect(svc, INTERFACE_PCAP_CONTROL, 0);
     
    127130                goto error;
    128131        }
     132
    129133        sess->sess = new_session;
    130         rc = EOK;
     134        *rsess = sess;
     135        return EOK;
    131136error:
     137        pcapctl_dump_close(sess);
    132138        return rc;
     139}
     140
     141errno_t pcapctl_dump_close(pcapctl_sess_t *sess)
     142{
     143        free(sess);
     144        return EOK;
    133145}
    134146
Note: See TracChangeset for help on using the changeset viewer.