@miconda commented on this pull request.


> @@ -204,6 +204,10 @@ static inline int msg_send_buffer(
                        goto error;
                }
 
+               if(!dst->id) {
+                       dst->id = con->id;
+               }
+

Any more details about why this is needed? I cannot easy relate it to the 
commit message.

> @@ -828,7 +829,22 @@ static inline int lumps_len(
                        send_proto_id = send_sock->proto;
        }
        /* init recv_address_str, recv_port_str & recv_port_no */
-       if(msg->rcv.bind_address) {
+       if (ksr_tcp_accept_haproxy && msg->rcv.proto_reserved2) {
+               if (msg->rcv.bind_address->proto == PROTO_TLS && 
msg->rcv.bind_address != NULL && msg->rcv.bind_address->useinfo.address_str.len 
> 0) {
+                       recv_address_str = 
&msg->rcv.bind_address->useinfo.address_str;

It should be formatted with clang-format in order to match the coding style.

> @@ -2845,6 +2876,47 @@ int branch_builder(unsigned int hash_index,
        return size;
 }
 
+static int is_haproxy(struct dest_info *send_info, struct receive_info 
*haproxy_rcv) {

Can you add some comment to describe the purpose of the function? The name is 
rather generic, from C code point of view it looks like it tries to figure out 
if the target via via haproxy...

> @@ -396,6 +396,7 @@ typedef struct sip_msg
        char *unparsed; /*!< here we stopped parsing*/
 
        struct receive_info rcv; /*!< source & dest ip, ports, proto a.s.o*/
+       struct receive_info haproxy_rcv; /*!< source & dest ip, ports, proto 
a.s.o for the message from haproxy*/

Traffic via haproxy is not very common, does it make sense to add a full 
value-structure for every message instead of a pointer that is allocated only 
when it is the case. Practically the size of message increases for common 
traffic over direct UDP/TCP/TLS/SCTP/WebSocket. On the other hand, cloning in 
shm has to be done if allocated. This is just to ponder on what would be 
better...

> @@ -1843,13 +1843,17 @@ inline static int handle_io(struct fd_map *fm, short 
> events, int idx)
                         * handle_io might decide to del. the new connection =>
                         * must be in the list */
                        tcpconn_listadd(tcp_conn_lst, con, c_next, c_prev);
-                       t = get_ticks_raw();
-                       con->timeout = t + S_TO_TICKS(TCP_CHILD_TIMEOUT);
-                       /* re-activate the timer */
-                       con->timer.f = tcpconn_read_timeout;
-                       local_timer_reinit(&con->timer);
-                       local_timer_add(&tcp_reader_ltimer, &con->timer,
-                                       S_TO_TICKS(TCP_CHILD_TIMEOUT), t);
+                       if(con->rcv.proto_reserved2 && con->type == PROTO_WSS) {
+                               //not setting up timers for haproxy WSS 
connections

The patch is quite consistent to important parts of the core. It has to be 
reviewed properly, so far I did a quick walk through, other developers are 
welcome to jump in.

-- 
Reply to this email directly or view it on GitHub:
https://github.com/kamailio/kamailio/pull/3731#pullrequestreview-1849803321
You are receiving this because you are subscribed to this thread.

Message ID: <kamailio/kamailio/pull/3731/review/[email protected]>
_______________________________________________
Kamailio (SER) - Development Mailing List
To unsubscribe send an email to [email protected]

Reply via email to