Figure local address of established TCP session

This commit is contained in:
Andreas Öman 2008-02-05 19:13:26 +00:00
parent 9df2cfbe53
commit 3d01c3b914
2 changed files with 5 additions and 0 deletions

4
tcp.c
View file

@ -584,6 +584,10 @@ tcp_server_callback(int events, void *opaque, int fd)
ses->tcp_server = srv;
memcpy(&ses->tcp_peer_addr, &from, socklen);
socklen = sizeof(struct sockaddr_storage);
if(getsockname(newfd, (struct sockaddr *)&ses->tcp_self_addr, &socklen))
memset(&ses->tcp_self_addr, 0, sizeof(struct sockaddr_storage));
tcp_start_session(ses);
}

1
tcp.h
View file

@ -56,6 +56,7 @@ typedef struct tcp_session {
void *tcp_dispatch_handle;
int tcp_fd;
struct sockaddr_storage tcp_peer_addr;
struct sockaddr_storage tcp_self_addr;
char tcp_peer_txt[100];
tcp_callback_t *tcp_callback;
tcp_server_t *tcp_server; /* if this is NULL, then we are spawned