summaryrefslogtreecommitdiff
blob: b823078487f89a1825d0d0e85d3ad2e01c64d58e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
#include "../error/error.h"

#include "../irc/irc.h"
#include "../parameters/parameters.h"

#include "meta_net.h"

void JH_meta_net_handle_reply
(
   struct JH_meta_net socket [const restrict static 1],
   struct JH_irc irc [const restrict static 1],
   const struct JH_parameters params [const restrict static 1]
)
{
   if (socket->in.index == 0)
   {
      /* No reply to handle. */
      return;
   }

   socket->in.data[socket->in.index] = '\0';

   if (JH_IS_PREFIX("!CPV ", socket->in.data))
   {
   }
   else if (JH_IS_PREFIX("!CPS ", socket->in.data))
   {
   }
   else if (JH_IS_PREFIX("!GR ", socket->in.data))
   {
      /* TODO: /me vs message should be handled prior to this. */
      JH_irc_send_message(irc, (socket->in.data + 4));

      JH_DEBUG
      (
         stderr,
         /* TODO: Parameter dependent behavior. */
         JH_DEBUG_DISPLAY_IRC_MSG_EXCHANGES,
         "<%s> %s",
         JH_parameters_get_irc_nick(params),
         (socket->in.data + 4)
      );
   }
   else if (JH_IS_PREFIX("!AI ", socket->in.data))
   {
      /* TODO: Parameter dependent behavior. */
      JH_DEBUG
      (
         stderr,
         1,
         "Received: %s.",
         socket->in.data
      );
   }
   else if (JH_IS_PREFIX("!P ", socket->in.data))
   {
      socket->has_request_in_progress = 0;
   }
   else if (JH_IS_PREFIX("!N ", socket->in.data))
   {
      JH_S_WARNING(stderr, "Received Negative reply.");

      socket->has_request_in_progress = 0;
   }
   else
   {
      JH_WARNING
      (
         stderr,
         "Unsupported reply received: %s.",
         socket->in.data
      );
   }
}