/*
- * Copyright (c) 2007,2008 Zmanda, Inc. All Rights Reserved.
+ * Copyright (c) 2007, 2008, 2010 Zmanda, Inc. All Rights Reserved.
*
* This program is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 as published
* Utility routines for handling sockaddrs
*/
+#include "amanda.h"
#include "sockaddr-util.h"
void
return mystr_sockaddr;
}
+int
+str_to_sockaddr(
+ const char *src,
+ sockaddr_union *dst)
+{
+ int result;
+
+ g_debug("parsing %s", src);
+ /* try AF_INET first */
+ SU_INIT(dst, AF_INET);
+ if ((result = inet_pton(AF_INET, src, &dst->sin.sin_addr)) == 1)
+ return result;
+
+ /* otherwise try AF_INET6, if supported */
+#ifdef WORKING_IPV6
+ SU_INIT(dst, AF_INET6);
+ return inet_pton(AF_INET6, src, &dst->sin6.sin6_addr);
+#else
+ return result;
+#endif
+}
+
/* Unmap a V4MAPPED IPv6 address into its equivalent IPv4 address. The location
* TMP is used to store the rewritten address, if necessary. Returns a pointer
* to the unmapped address.