LCOV - code coverage report
Current view: top level - minipot/http - http_minipot_session_report.c (source / functions) Hit Total Coverage
Test: sentinel-minipot-2.3.0 Code Coverage Lines: 0 47 0.0 %
Date: 2022-11-27 17:36:11 Functions: 0 4 0.0 %
Legend: Lines: hit not hit

          Line data    Source code
       1             : #include "http_minipot_session_report.h"
       2             : #include <minipot_utils.h>
       3             : #include "log.h"
       4             : 
       5             : #define CONNECT_EV "connect"
       6             : #define MSG_EV "message"
       7             : #define LOGIN_EV "login"
       8             : #define INVALID_EV "invalid"
       9             : 
      10             : #define TYPE "http"
      11             : 
      12             : #define METHOD "method"
      13             : #define URL "url"
      14             : #define USER_AG "user_agent"
      15             : #define USERNAME "username"
      16             : #define PASSWORD "password"
      17             : 
      18           0 : int http_report_connect(struct http_minipot_session *s) {
      19           0 :         MINIPOT_TRACE_FUNC_FD(s->parent.fd);
      20           0 :         struct minipot_sentinel_msg msg = {
      21           0 :                 .ts = time(NULL),
      22             :                 .type = TYPE,
      23           0 :                 .ip = s->parent.ip_addr,
      24             :                 .action = CONNECT_EV,
      25             :                 .data = NULL,
      26             :                 .data_len = 0,
      27             :         };
      28           0 :         return minipot_report(s->http_minipot->parent.report_fd,
      29           0 :                 s->http_minipot->parent.smsg_packer, &msg);
      30             : }
      31             : 
      32           0 : int http_report_invalid(struct http_minipot_session *s) {
      33           0 :         MINIPOT_TRACE_FUNC_FD(s->parent.fd);
      34           0 :         struct minipot_sentinel_msg msg = {
      35           0 :                 .ts = time(NULL),
      36             :                 .type = TYPE,
      37           0 :                 .ip = s->parent.ip_addr,
      38             :                 .action = INVALID_EV,
      39             :                 .data = NULL,
      40             :                 .data_len = 0,
      41             :         };
      42           0 :         return minipot_report(s->http_minipot->parent.report_fd,
      43           0 :                 s->http_minipot->parent.smsg_packer, &msg);
      44             : }
      45             : 
      46           0 : int http_report_login(struct http_minipot_session *s, const char *username,
      47             :                 size_t username_len, const char *password, size_t password_len) {
      48           0 :         MINIPOT_TRACE_FUNC_FD(s->parent.fd);
      49           0 :         if (username_len == 0
      50           0 :                         || minipot_check_data(username, username_len)
      51           0 :                         || minipot_check_data(password, password_len)
      52           0 :                         || minipot_check_data(s->url, s->url_len)
      53           0 :                         || minipot_check_data(s->user_ag, s->user_ag_len))
      54           0 :                 return http_report_invalid(s);
      55           0 :         struct minipot_uint8_t_pair data[] = {
      56           0 :                 {METHOD, strlen(METHOD), s->method, s->method_len},
      57           0 :                 {URL, strlen(URL), s->url, s->url_len},
      58             :                 {USERNAME, strlen(USERNAME), username, username_len},
      59             :                 {PASSWORD, strlen(PASSWORD), password, password_len},
      60             :                 // MUST BE THE LAST ONE - IT IS OPTIONAL !!!
      61           0 :                 {USER_AG, strlen(USER_AG), s->user_ag, s->user_ag_len},
      62             :         };
      63           0 :         struct minipot_sentinel_msg msg = {
      64           0 :                 .ts = time(NULL),
      65             :                 .type = TYPE,
      66           0 :                 .ip = s->parent.ip_addr,
      67             :                 .action = LOGIN_EV,
      68             :                 .data = data,
      69             :                 // method, url, username, password + optional user agent
      70           0 :                 .data_len = s->user_ag_len == 0 ? 4 : 5,
      71             :         };
      72           0 :         return minipot_report(s->http_minipot->parent.report_fd,
      73           0 :                 s->http_minipot->parent.smsg_packer, &msg);
      74             : }
      75             : 
      76           0 : int http_report_message(struct http_minipot_session *s) {
      77           0 :         MINIPOT_TRACE_FUNC_FD(s->parent.fd);
      78           0 :         if (minipot_check_data(s->url, s->url_len)
      79           0 :                         || minipot_check_data(s->user_ag, s->user_ag_len))
      80           0 :                 return http_report_invalid(s);
      81           0 :         struct minipot_uint8_t_pair data[] = {
      82           0 :                 {METHOD, strlen(METHOD), s->method, s->method_len},
      83           0 :                 {URL, strlen(URL), s->url, s->url_len},
      84             :                 // MUST BE THE LAST ONE - IT IS OPTIONAL !!!
      85           0 :                 {USER_AG, strlen(USER_AG), s->user_ag, s->user_ag_len},
      86             :         };
      87           0 :         struct minipot_sentinel_msg msg = {
      88           0 :                 .ts = time(NULL),
      89             :                 .type = TYPE,
      90           0 :                 .ip = s->parent.ip_addr,
      91             :                 .action = MSG_EV,
      92             :                 .data = data,
      93             :                 // method, url + optional user
      94           0 :                 .data_len = s->user_ag_len == 0 ? 2 : 3,
      95             :         };
      96           0 :         return minipot_report(s->http_minipot->parent.report_fd,
      97           0 :                 s->http_minipot->parent.smsg_packer, &msg);
      98             : }

Generated by: LCOV version 1.16