Changeset e1e8f7a in mainline for uspace/lib/pcap/src/pcapdump_srv.c


Ignore:
Timestamp:
2024-12-13T08:44:05Z (15 months ago)
Author:
Nataliia Korop <n.corop08@…>
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)
Message:

set ops as number and with start req

File:
1 edited

Legend:

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

    r467d2b9 re1e8f7a  
    4444
    4545#include "pcapdump_srv.h"
     46#include "pcapdump_ipc.h"
    4647
    4748static void pcapdump_start_srv(ipc_call_t *icall, pcap_dumper_t *dumper)
     
    4950        char *data;
    5051        size_t size;
     52        int ops_index = (int)ipc_get_arg1(icall);
    5153        errno_t rc = async_data_write_accept((void **) &data, true, 0, 0, 0, &size);
    5254        if (rc != EOK) {
     
    5658
    5759        assert(str_length(data) == size && "Data were damaged during transmission.\n");
     60
     61        rc = pcap_dumper_set_ops(dumper, ops_index);
     62        if (rc != EOK)
     63        {
     64                log_msg(LOG_DEFAULT, LVL_DEBUG, "Setting ops for dumper was not successful.\n");
     65                free(data);
     66                async_answer_0(icall, EOK);
     67                return;
     68        }
    5869
    5970        rc = pcap_dumper_start(dumper, (const char *)data);
     
    7182}
    7283
    73 static void pcapdump_set_ops_srv(ipc_call_t *icall, pcap_dumper_t *dumper)
     84
     85static void pcapdump_get_ops_num_srv(ipc_call_t *icall)
    7486{
    75         char *data;
    76         size_t size;
    77         errno_t rc = async_data_write_accept((void **) &data, true, 0, 0, 0, &size);
    78         if (rc != EOK) {
    79                 async_answer_0(icall, rc);
    80                 return;
    81         }
     87        size_t count = pcap_dumper_get_ops_number();
    8288
    83         assert(str_length(data) == size && "Data were damaged during transmission.\n");
     89        log_msg(LOG_DEFAULT, LVL_NOTE, "Getting number of ops.\n");
    8490
    85         rc = pcap_dumper_set_ops(dumper, (const char *)data);
    86         free(data);
    87         if (rc != EOK) {
    88                 log_msg(LOG_DEFAULT, LVL_DEBUG, "Setting ops for dumper was not successful.\n");
    89         }
    90 
    91         log_msg(LOG_DEFAULT, LVL_NOTE, "Setting ops for dumper was successful.\n");
    92 
    93         async_answer_0(icall, EOK);
     91        async_answer_1(icall, EOK, count);
    9492}
    9593
     
    119117                        pcapdump_stop_srv(&call, dumper);
    120118                        break;
    121                 case PCAP_CONTROL_SET_OPS:
    122                         pcapdump_set_ops_srv(&call, dumper);
     119                case PCAP_CONTROL_GET_OPS_NUM:
     120                        pcapdump_get_ops_num_srv(&call);
    123121                        break;
    124122                default:
Note: See TracChangeset for help on using the changeset viewer.