]> source.dussan.org Git - rspamd.git/commitdiff
[Feature] Add function for pretty printing of inet addresses
authorVsevolod Stakhov <vsevolod@highsecure.ru>
Mon, 16 May 2016 11:38:02 +0000 (12:38 +0100)
committerVsevolod Stakhov <vsevolod@highsecure.ru>
Mon, 16 May 2016 11:39:07 +0000 (12:39 +0100)
src/libutil/addr.c
src/libutil/addr.h

index 18414a98cc6ef8bdc1769bd362e7bb197b149169..5c5a51e130805164efd55ea7d555685cb6b7005b 100644 (file)
@@ -667,6 +667,36 @@ rspamd_inet_address_to_string (const rspamd_inet_addr_t *addr)
        return "undefined";
 }
 
+const char *
+rspamd_inet_address_to_string_pretty (const rspamd_inet_addr_t *addr)
+{
+       static char addr_str[PATH_MAX + 5];
+
+       if (addr == NULL) {
+               return "<empty inet address>";
+       }
+
+       switch (addr->af) {
+       case AF_INET:
+               rspamd_snprintf (addr_str, sizeof (addr_str), "%s:%d",
+                               rspamd_inet_address_to_string (addr),
+                               rspamd_inet_address_get_port (addr));
+               break;
+       case AF_INET6:
+               rspamd_snprintf (addr_str, sizeof (addr_str), "[%s]:%d",
+                               rspamd_inet_address_to_string (addr),
+                               rspamd_inet_address_get_port (addr));
+               break;
+       case AF_UNIX:
+               rspamd_snprintf (addr_str, sizeof (addr_str), "unix:%s",
+                               rspamd_inet_address_to_string (addr),
+                               rspamd_inet_address_get_port (addr));
+               break;
+       }
+
+       return addr_str;
+}
+
 uint16_t
 rspamd_inet_address_get_port (const rspamd_inet_addr_t *addr)
 {
index afed3f8fc5ee566160ad2d5b7005bbc9b88ce8cb..bb9fd25736028d2bf52ae646a83c1c6b4ef14ad2 100644 (file)
@@ -107,6 +107,13 @@ gboolean rspamd_parse_inet_address (rspamd_inet_addr_t **target,
  */
 const char * rspamd_inet_address_to_string (const rspamd_inet_addr_t *addr);
 
+/**
+ * Returns pretty string representation of inet address
+ * @param addr
+ * @return statically allocated string pointer (not thread safe)
+ */
+const char * rspamd_inet_address_to_string_pretty (const rspamd_inet_addr_t *addr);
+
 /**
  * Returns port number for the specified inet address in host byte order
  * @param addr