unit-tests: Add a simple thread_cancel() test
[strongswan.git] / src / libstrongswan / networking / host.h
index cae2a4f..4fc6cf3 100644 (file)
@@ -34,17 +34,7 @@ typedef struct host_t host_t;
 #include <netinet/in.h>
 #include <arpa/inet.h>
 
-#include <chunk.h>
-
-/**
- * Differences between two hosts. They differ in
- * address, port, or both.
- */
-enum host_diff_t {
-       HOST_DIFF_NONE = 0,
-       HOST_DIFF_ADDR = 1,
-       HOST_DIFF_PORT = 2,
-};
+#include <utils/chunk.h>
 
 /**
  * Representates a Host
@@ -102,7 +92,7 @@ struct host_t {
         *
         * Returned chunk points to internal data.
         *
-        * @return              address string,
+        * @return              address blob
         */
        chunk_t (*get_address) (host_t *this);
 
@@ -116,7 +106,7 @@ struct host_t {
        /**
         * Set the port of this host
         *
-        * @param port  port numer
+        * @param port  port number
         */
        void (*set_port) (host_t *this, u_int16_t port);
 
@@ -137,14 +127,6 @@ struct host_t {
        bool (*equals) (host_t *this, host_t *other);
 
        /**
-        * Compare two hosts and return the differences.
-        *
-        * @param other the other to compare
-        * @return              differences in a combination of host_diff_t's
-        */
-       host_diff_t (*get_differences) (host_t *this, host_t *other);
-
-       /**
         * Destroy this host object.
         */
        void (*destroy) (host_t *this);
@@ -160,6 +142,17 @@ struct host_t {
 host_t *host_create_from_string(char *string, u_int16_t port);
 
 /**
+ * Same as host_create_from_string(), but with the option to enforce a family.
+ *
+ * @param string               string of an address
+ * @param family               address family, or AF_UNSPEC
+ * @param port                 port number
+ * @return                             host_t, NULL if string not an address.
+ */
+host_t *host_create_from_string_and_family(char *string, int family,
+                                                                                  u_int16_t port);
+
+/**
  * Constructor to create a host_t from a DNS name.
  *
  * @param string               hostname to resolve
@@ -199,6 +192,15 @@ host_t *host_create_from_sockaddr(sockaddr_t *sockaddr);
 host_t *host_create_from_subnet(char *string, int *bits);
 
 /**
+ * Create a netmask host having the first netbits bits set.
+ *
+ * @param family               family of the netmask host
+ * @param netbits              number of leading bits set in the host
+ * @return                             netmask host
+ */
+host_t *host_create_netmask(int family, int netbits);
+
+/**
  * Create a host without an address, a "any" host.
  *
  * @param family               family of the any host