expose struct ast_ha so external code can do things such as printing it
authorLuigi Rizzo <rizzo@icir.org>
Fri, 20 Jul 2007 14:38:36 +0000 (14:38 +0000)
committerLuigi Rizzo <rizzo@icir.org>
Fri, 20 Jul 2007 14:38:36 +0000 (14:38 +0000)
(e.g. chan_sip.c in a subsequent commit).

Obviously exposing the internals of a data structure is far from ideal
(especially in a case like this where the implementation is very
inefficient and will need to be changed at some point).

On the other hand, it was also unclear what additional APIs should
we provide instead, and because exposing the stucture has no impact
on source and binary compatibility, this seemed to me the best option at
this time.

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@76034 65c4cc65-6c06-0410-ace0-fbb531ad65f3

include/asterisk/acl.h
main/acl.c

index 9dba9c1..7b10764 100644 (file)
@@ -36,7 +36,21 @@ extern "C" {
 
 /* Host based access control */
 
-struct ast_ha;
+/*! \brief internal representation of acl entries
+ * In principle user applications would have no need for this,
+ * but there is sometimes a need to extract individual items,
+ * e.g. to print them, and rather than defining iterators to
+ * navigate the list, and an externally visible 'struct ast_ha_entry',
+ * at least in the short term it is more convenient to make the whole
+ * thing public and let users play with them.
+ */
+struct ast_ha {
+        /* Host access rule */
+        struct in_addr netaddr;  
+        struct in_addr netmask;
+        int sense;
+        struct ast_ha *next;
+};
 
 /*! \brief Free host access list */
 void ast_free_ha(struct ast_ha *ha);
index e15f4a3..efbc9d1 100644 (file)
@@ -70,14 +70,6 @@ ASTERISK_FILE_VERSION(__FILE__, "$Revision$")
 #include "asterisk/lock.h"
 #include "asterisk/srv.h"
 
-struct ast_ha {
-       /* Host access rule */
-       struct in_addr netaddr;
-       struct in_addr netmask;
-       int sense;
-       struct ast_ha *next;
-};
-
 struct my_ifreq {
        char ifrn_name[IFNAMSIZ];       /* Interface name, e.g. "eth0", "ppp0", etc.  */
        struct sockaddr_in ifru_addr;