Use common net utility code (address and sockaddr manipulation).
[samba.git] / lib / util / util.h
index 47adf067f0a8c6e251f91fd46a1393a186b3e6e4..c2407ae9c9f260c9d2bbaa78ce2469adbdf275bb 100644 (file)
@@ -44,33 +44,7 @@ extern const char *panic_action;
 #include "../lib/util/xfile.h"
 #include "../lib/util/mutex.h"
 #include "../lib/util/byteorder.h"
-
-/**
-  this is a warning hack. The idea is to use this everywhere that we
-  get the "discarding const" warning from gcc. That doesn't actually
-  fix the problem of course, but it means that when we do get to
-  cleaning them up we can do it by searching the code for
-  discard_const.
-
-  It also means that other error types aren't as swamped by the noise
-  of hundreds of const warnings, so we are more likely to notice when
-  we get new errors.
-
-  Please only add more uses of this macro when you find it
-  _really_ hard to fix const warnings. Our aim is to eventually use
-  this function in only a very few places.
-
-  Also, please call this via the discard_const_p() macro interface, as that
-  makes the return type safe.
-*/
-#ifndef discard_const
-#define discard_const(ptr) ((void *)((uintptr_t)(ptr)))
-#endif
-
-/** Type-safe version of discard_const */
-#ifndef discard_const_p
-#define discard_const_p(type, ptr) ((type *)discard_const(ptr))
-#endif
+#include "../lib/util/talloc_stack.h"
 
 /**
  * assert macros 
@@ -236,12 +210,12 @@ _PUBLIC_ char *safe_strcat(char *dest, const char *src, size_t maxlength);
 
 
 **/
-_PUBLIC_ size_t strhex_to_str(char *p, size_t len, const char *strhex);
+_PUBLIC_ size_t strhex_to_str(char *p, size_t p_len, const char *strhex, size_t strhex_len);
 
 /** 
  * Parse a hex string and return a data blob. 
  */
-_PUBLIC_ _PURE_ DATA_BLOB strhex_to_data_blob(const char *strhex) ;
+_PUBLIC_ _PURE_ DATA_BLOB strhex_to_data_blob(TALLOC_CTX *mem_ctx, const char *strhex) ;
 
 /**
  * Routine to print a buffer as HEX digits, into an allocated string.
@@ -458,6 +432,9 @@ load a file into memory from a fd.
 **/
 _PUBLIC_ char *fd_load(int fd, size_t *size, size_t maxsize, TALLOC_CTX *mem_ctx);
 
+
+char **file_lines_parse(char *p, size_t size, int *numlines, TALLOC_CTX *mem_ctx);
+
 /**
 load a file into memory
 **/
@@ -564,12 +541,14 @@ _PUBLIC_ struct in_addr interpret_addr2(const char *str);
 /**
  Check if an IP is the 0.0.0.0.
 **/
-_PUBLIC_ bool is_zero_ip(struct in_addr ip);
+_PUBLIC_ bool is_zero_ip_v4(struct in_addr ip);
 
 /**
  Are two IPs on the same subnet?
 **/
-_PUBLIC_ bool same_net(struct in_addr ip1,struct in_addr ip2,struct in_addr mask);
+_PUBLIC_ bool same_net_v4(struct in_addr ip1,struct in_addr ip2,struct in_addr mask);
+
+_PUBLIC_ bool is_ipaddress_v4(const char *str);
 
 /**
  Check if a process exists. Does this work on all unixes?
@@ -612,6 +591,8 @@ _PUBLIC_ void *smb_xmemdup(const void *p, size_t size);
 **/
 _PUBLIC_ char *smb_xstrdup(const char *s);
 
+char *smb_xstrndup(const char *s, size_t n);
+
 /**
  Like strdup but for memory.
 **/
@@ -636,6 +617,8 @@ _PUBLIC_ bool all_zero(const uint8_t *ptr, size_t size);
 */
 _PUBLIC_ void *realloc_array(void *ptr, size_t el_size, unsigned count, bool free_on_fail);
 
+void *malloc_array(size_t el_size, unsigned int count);
+
 /* The following definitions come from lib/util/fsusage.c  */
 
 
@@ -742,4 +725,8 @@ _PUBLIC_ void *talloc_check_name_abort(const void *ptr, const char *name);
 #define talloc_get_type_abort(ptr, type) \
        (type *)talloc_check_name_abort(ptr, #type)
 
+bool unmap_file(void *start, size_t size);
+
+void print_asc(int level, const uint8_t *buf,int len);
+
 #endif /* _SAMBA_UTIL_H_ */