summaryrefslogtreecommitdiff
path: root/source4/lib/util.c
diff options
context:
space:
mode:
authorAndrew Tridgell <tridge@samba.org>2004-10-27 03:15:42 +0000
committerGerald (Jerry) Carter <jerry@samba.org>2007-10-10 13:04:49 -0500
commit9d055846f225bea4953822f40fab1d2f1a2e2d07 (patch)
tree9a513f3eeb7223a96e1df1d65060b095002e534e /source4/lib/util.c
parent5ae448116165a6bb9d792686db825b8b47f27201 (diff)
downloadsamba-9d055846f225bea4953822f40fab1d2f1a2e2d07.tar.gz
samba-9d055846f225bea4953822f40fab1d2f1a2e2d07.tar.bz2
samba-9d055846f225bea4953822f40fab1d2f1a2e2d07.zip
r3278: - rewrote the client side rpc connection code to use lib/socket/
rather than doing everything itself. This greatly simplifies the code, although I really don't like the socket_recv() interface (it always allocates memory for you, which means an extra memcpy in this code) - fixed several bugs in the socket_ipv4.c code, in particular client side code used a non-blocking connect but didn't handle EINPROGRESS, so it had no chance of working. Also fixed the error codes, using map_nt_error_from_unix() - cleaned up and expanded map_nt_error_from_unix() - changed interpret_addr2() to not take a mem_ctx. It makes absolutely no sense to allocate a fixed size 4 byte structure like this. Dozens of places in the code were also using interpret_addr2() incorrectly (precisely because the allocation made no sense) (This used to be commit 7f2c771b0e0e98c5c9e5cf662592d64d34ff1205)
Diffstat (limited to 'source4/lib/util.c')
-rw-r--r--source4/lib/util.c24
1 files changed, 11 insertions, 13 deletions
diff --git a/source4/lib/util.c b/source4/lib/util.c
index 0982694823..d7c5661f7d 100644
--- a/source4/lib/util.c
+++ b/source4/lib/util.c
@@ -406,16 +406,18 @@ BOOL is_ipaddress(const char *str)
/****************************************************************************
Interpret an internet address or name into an IP address in 4 byte form.
****************************************************************************/
-
uint32_t interpret_addr(const char *str)
{
struct hostent *hp;
uint32_t res;
- if (strcmp(str,"0.0.0.0") == 0)
- return(0);
- if (strcmp(str,"255.255.255.255") == 0)
- return(0xFFFFFFFF);
+ if (str == NULL ||
+ strcmp(str,"0.0.0.0") == 0) {
+ return 0;
+ }
+ if (strcmp(str,"255.255.255.255") == 0) {
+ return 0xFFFFFFFF;
+ }
/* if it's in the form of an IP address then get the lib to interpret it */
if (is_ipaddress(str)) {
@@ -444,16 +446,12 @@ uint32_t interpret_addr(const char *str)
/*******************************************************************
A convenient addition to interpret_addr().
******************************************************************/
-
-struct in_addr *interpret_addr2(TALLOC_CTX *mem_ctx, const char *str)
+struct in_addr interpret_addr2(const char *str)
{
- struct in_addr *ret;
+ struct in_addr ret;
uint32_t a = interpret_addr(str);
-
- ret = talloc(mem_ctx, sizeof(struct in_addr));
- if (!ret) return NULL;
- ret->s_addr = a;
- return(ret);
+ ret.s_addr = a;
+ return ret;
}
/*******************************************************************