---
 include/types/stream_interface.h |    2 ++
 src/frontend.c                   |    1 +
 src/proto_tcp.c                  |    1 +
 3 files changed, 4 insertions(+), 0 deletions(-)

diff --git a/include/types/stream_interface.h b/include/types/stream_interface.h
index d59e3fb..16af806 100644
--- a/include/types/stream_interface.h
+++ b/include/types/stream_interface.h
@@ -73,6 +73,8 @@ enum {
        SI_FL_INDEP_STR  = 0x0040,  /* independant streams = don't update rex 
on write */
        SI_FL_NOLINGER   = 0x0080,  /* may close without lingering. One-shot. */
        SI_FL_SRC_ADDR   = 0x1000,  /* get the source ip/port with getsockname 
*/
+       SI_FL_TO_SET     = 0x2000,  /* addr.to is set */
+       SI_FL_FROM_SET   = 0x4000,  /* addr.from is set */
 };
 
 /* target types */
diff --git a/src/frontend.c b/src/frontend.c
index 12dc2c8..35c3ef3 100644
--- a/src/frontend.c
+++ b/src/frontend.c
@@ -54,6 +54,7 @@ void get_frt_addr(struct session *s)
 
        if (get_original_dst(s->si[0].fd, (struct sockaddr_in 
*)&s->si[0].addr.to, &namelen) == -1)
                getsockname(s->si[0].fd, (struct sockaddr *)&s->si[0].addr.to, 
&namelen);
+       s->si[0].flags |= SI_FL_TO_SET;
        s->flags |= SN_FRT_ADDR_SET;
 }
 
diff --git a/src/proto_tcp.c b/src/proto_tcp.c
index 6324196..39ef26b 100644
--- a/src/proto_tcp.c
+++ b/src/proto_tcp.c
@@ -443,6 +443,7 @@ int tcp_connect_server(struct stream_interface *si)
                if (getsockname(fd, (struct sockaddr *)&si->addr.from, 
&addrlen) == -1) {
                        Warning("Cannot get source address for logging.\n");
                }
+               si->flags |= SI_FL_FROM_SET;
        }
 
        fdtab[fd].owner = si;
-- 
1.7.5.3


Reply via email to