Fix #338: Incorrect port 0 for IPv6 socket on Windows
On Windows calling purple_network_get_port_from_fd() on an IPv6 socket
always generates the following error message
network: getsockname: Windows socket error #10014
and then returns the default port 0. This incorrect port then leads to
a 504 error from the SIP server.
Searching for the error message leads to the following SO question
https://stackoverflow.com/questions/861154/winsock-error-code-10014
which points to the root cause: getsockname() doesn't like the address
buffer to be on the stack.
- purple: write a replacement transport_port_from_fd()
- purple: update sipe_backend_transport_ip_address()
In both functions we now use g_new(struct sockaddr_storage, 1) which
should ensure proper alignment of the buffer.