return host_and_port((struct sockaddr *)&ss, sslen);
}
+/**
+ * Look up the local side of a connected socket structure.
+ *
+ * \param sockfd The file descriptor of the socket.
+ *
+ * \return A pointer to a static buffer containing hostname an port. This
+ * buffer must not be freed by the caller.
+ *
+ * \sa remote_name().
+ */
char *local_name(int sockfd)
{
return __get_sock_name(sockfd, getsockname);
}
+/**
+ * Look up the remote side of a connected socket structure.
+ *
+ * \param sockfd The file descriptor of the socket.
+ *
+ * \return Analogous to the return value of \ref local_name() but for the
+ * remote side.
+ *
+ * \sa local_name().
+ */
char *remote_name(int sockfd)
{
return __get_sock_name(sockfd, getpeername);
struct in_addr ia = {.s_addr = 0};
if (ss->ss_family == AF_INET)
- ia.s_addr = ((struct sockaddr_in *)ss)->sin_addr.s_addr;
+ ia.s_addr = ((struct sockaddr_in *)ss)->sin_addr.s_addr;
if (ss->ss_family == AF_INET6) {
const struct in6_addr v6_addr = ((struct sockaddr_in6 *)ss)->sin6_addr;
* \param len The length of \a buf.
*
* Check if encryption is available. If yes, encrypt the given buffer. Send
- * out the buffer, encrypted or not, and try to resend the remaing part in case
- * of short writes.
+ * out the buffer, encrypted or not, and try to resend the remaining part in
+ * case of short writes.
*
* \return Standard.
*/