add support for querying local/remote address
[project/uclient.git] / uclient-http.c
index 05dd3aa..ee354c7 100644 (file)
@@ -503,6 +503,7 @@ uclient_http_send_headers(struct uclient_http *uh)
 static void uclient_http_headers_complete(struct uclient_http *uh)
 {
        enum auth_type auth_type = uh->auth_type;
+       socklen_t sl;
 
        uh->state = HTTP_STATE_RECV_DATA;
        uh->uc.meta = uh->meta.head;
@@ -515,6 +516,13 @@ static void uclient_http_headers_complete(struct uclient_http *uh)
                return;
        }
 
+       memset(&uh->uc.local_addr, 0, sizeof(uh->uc.local_addr));
+       memset(&uh->uc.remote_addr, 0, sizeof(uh->uc.remote_addr));
+
+       sl = sizeof(uh->uc.local_addr);
+       getsockname(uh->ufd.fd.fd, &uh->uc.local_addr.sa, &sl);
+       getpeername(uh->ufd.fd.fd, &uh->uc.remote_addr.sa, &sl);
+
        if (uh->uc.cb->header_done)
                uh->uc.cb->header_done(&uh->uc);