Changeset e4cc266 in mainline for uspace/lib/pcap/src/pcapctl_dump.c
- Timestamp:
- 2024-03-10T11:40:30Z (12 months ago)
- Children:
- 34aad53d, 78edb5e
- Parents:
- e846bec
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/lib/pcap/src/pcapctl_dump.c
re846bec re4cc266 51 51 } 52 52 53 static errno_t pcapctl_cat_ has_drv(const char *drv_name, service_id_t* svc) {53 static errno_t pcapctl_cat_get_svc(const char *drv_name, service_id_t* svc) { 54 54 errno_t rc; 55 55 category_id_t pcap_cat; … … 90 90 rc = loc_category_get_id("pcap", &pcap_cat, 0); 91 91 if (rc != EOK) { 92 printf("Error resolving category 'pcap'.\n");92 printf("Error resolving category pcap.\n"); 93 93 return rc; 94 94 } … … 97 97 if (rc != EOK) { 98 98 printf("Error resolving list of pcap services.\n"); 99 free(pcap_svcs); 99 100 return rc; 100 101 } 101 102 102 assert((count > 0) && "TODO: not implemented when no services are available\n"); 103 104 fprintf(stdout, "Drivers:\n"); 103 fprintf(stdout, "Services:\n"); 105 104 for (unsigned i = 0; i < count; ++i) { 106 105 char *name = NULL; 107 106 loc_service_get_name(pcap_svcs[i], &name); 108 109 fprintf(stdout, "driver: %s\n", name); 107 fprintf(stdout, "service: %s\n", name); 110 108 } 109 free(pcap_svcs); 111 110 return EOK; 112 111 } 113 112 114 errno_t pcapctl_dump_init(pcapctl_sess_t *sess, const char *drv_name) 113 114 errno_t pcapctl_dump_open(const char *svcname, pcapctl_sess_t **rsess) 115 115 { 116 116 errno_t rc; 117 117 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); 119 123 if (rc != EOK) { 120 fprintf(stderr, "No such driver was found.\n"); 121 return 1; 124 goto error; 122 125 } 123 126 async_sess_t *new_session = loc_service_connect(svc, INTERFACE_PCAP_CONTROL, 0); … … 127 130 goto error; 128 131 } 132 129 133 sess->sess = new_session; 130 rc = EOK; 134 *rsess = sess; 135 return EOK; 131 136 error: 137 pcapctl_dump_close(sess); 132 138 return rc; 139 } 140 141 errno_t pcapctl_dump_close(pcapctl_sess_t *sess) 142 { 143 free(sess); 144 return EOK; 133 145 } 134 146
Note:
See TracChangeset
for help on using the changeset viewer.