Skip to content

Commit 19b1c76

Browse files
committed
Use is_cidr in INET/CIDR structure, rather than the generic 'type'.
1 parent 726b42a commit 19b1c76

File tree

2 files changed

+26
-26
lines changed

2 files changed

+26
-26
lines changed

src/backend/utils/adt/network.c

Lines changed: 24 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
/*
22
* PostgreSQL type definitions for the INET and CIDR types.
33
*
4-
* $PostgreSQL: pgsql/src/backend/utils/adt/network.c,v 1.58 2006/01/11 08:43:12 neilc Exp $
4+
* $PostgreSQL: pgsql/src/backend/utils/adt/network.c,v 1.59 2006/01/23 21:45:47 momjian Exp $
55
*
66
* Jon Postel RIP 16 Oct 1998
77
*/
@@ -22,7 +22,7 @@
2222
#include "utils/inet.h"
2323

2424

25-
static Datum text_network(text *src, int type);
25+
static Datum text_network(text *src, int is_cidr);
2626
static int32 network_cmp_internal(inet *a1, inet *a2);
2727
static int bitncmp(void *l, void *r, int n);
2828
static bool addressOK(unsigned char *a, int bits, int family);
@@ -38,8 +38,8 @@ static int ip_addrsize(inet *inetptr);
3838
#define ip_bits(inetptr) \
3939
(((inet_struct *)VARDATA(inetptr))->bits)
4040

41-
#define ip_type(inetptr) \
42-
(((inet_struct *)VARDATA(inetptr))->type)
41+
#define ip_is_cidr(inetptr) \
42+
(((inet_struct *)VARDATA(inetptr))->is_cidr)
4343

4444
#define ip_addr(inetptr) \
4545
(((inet_struct *)VARDATA(inetptr))->ipaddr)
@@ -66,7 +66,7 @@ ip_addrsize(inet *inetptr)
6666

6767
/* Common input routine */
6868
static inet *
69-
network_in(char *src, int type)
69+
network_in(char *src, bool is_cidr)
7070
{
7171
int bits;
7272
inet *dst;
@@ -85,18 +85,18 @@ network_in(char *src, int type)
8585
ip_family(dst) = PGSQL_AF_INET;
8686

8787
bits = inet_net_pton(ip_family(dst), src, ip_addr(dst),
88-
type ? ip_addrsize(dst) : -1);
88+
is_cidr ? ip_addrsize(dst) : -1);
8989
if ((bits < 0) || (bits > ip_maxbits(dst)))
9090
ereport(ERROR,
9191
(errcode(ERRCODE_INVALID_TEXT_REPRESENTATION),
9292
/* translator: first %s is inet or cidr */
9393
errmsg("invalid input syntax for type %s: \"%s\"",
94-
type ? "cidr" : "inet", src)));
94+
is_cidr ? "cidr" : "inet", src)));
9595

9696
/*
9797
* Error check: CIDR values must not have any bits set beyond the masklen.
9898
*/
99-
if (type)
99+
if (is_cidr)
100100
{
101101
if (!addressOK(ip_addr(dst), bits, ip_family(dst)))
102102
ereport(ERROR,
@@ -109,7 +109,7 @@ network_in(char *src, int type)
109109
+ ((char *) ip_addr(dst) - (char *) VARDATA(dst))
110110
+ ip_addrsize(dst);
111111
ip_bits(dst) = bits;
112-
ip_type(dst) = type;
112+
ip_is_cidr(dst) = is_cidr;
113113

114114
return dst;
115115
}
@@ -152,7 +152,7 @@ inet_out(PG_FUNCTION_ARGS)
152152
errmsg("could not format inet value: %m")));
153153

154154
/* For CIDR, add /n if not present */
155-
if (ip_type(src) && strchr(tmp, '/') == NULL)
155+
if (ip_is_cidr(src) && strchr(tmp, '/') == NULL)
156156
{
157157
len = strlen(tmp);
158158
snprintf(tmp + len, sizeof(tmp) - len, "/%u", ip_bits(src));
@@ -174,7 +174,7 @@ cidr_out(PG_FUNCTION_ARGS)
174174
* inet_recv - converts external binary format to inet
175175
*
176176
* The external representation is (one byte apiece for)
177-
* family, bits, type, address length, address in network byte order.
177+
* family, bits, is_cidr, address length, address in network byte order.
178178
*/
179179
Datum
180180
inet_recv(PG_FUNCTION_ARGS)
@@ -201,8 +201,8 @@ inet_recv(PG_FUNCTION_ARGS)
201201
(errcode(ERRCODE_INVALID_BINARY_REPRESENTATION),
202202
errmsg("invalid bits in external \"inet\" value")));
203203
ip_bits(addr) = bits;
204-
ip_type(addr) = pq_getmsgbyte(buf);
205-
if (ip_type(addr) != 0 && ip_type(addr) != 1)
204+
ip_is_cidr(addr) = pq_getmsgbyte(buf);
205+
if (ip_is_cidr(addr) != false && ip_is_cidr(addr) != true)
206206
ereport(ERROR,
207207
(errcode(ERRCODE_INVALID_BINARY_REPRESENTATION),
208208
errmsg("invalid type in external \"inet\" value")));
@@ -222,7 +222,7 @@ inet_recv(PG_FUNCTION_ARGS)
222222
/*
223223
* Error check: CIDR values must not have any bits set beyond the masklen.
224224
*/
225-
if (ip_type(addr))
225+
if (ip_is_cidr(addr))
226226
{
227227
if (!addressOK(ip_addr(addr), bits, ip_family(addr)))
228228
ereport(ERROR,
@@ -256,7 +256,7 @@ inet_send(PG_FUNCTION_ARGS)
256256
pq_begintypsend(&buf);
257257
pq_sendbyte(&buf, ip_family(addr));
258258
pq_sendbyte(&buf, ip_bits(addr));
259-
pq_sendbyte(&buf, ip_type(addr));
259+
pq_sendbyte(&buf, ip_is_cidr(addr));
260260
nb = ip_addrsize(addr);
261261
if (nb < 0)
262262
nb = 0;
@@ -276,7 +276,7 @@ cidr_send(PG_FUNCTION_ARGS)
276276

277277

278278
static Datum
279-
text_network(text *src, int type)
279+
text_network(text *src, bool is_cidr)
280280
{
281281
int len = VARSIZE(src) - VARHDRSZ;
282282

@@ -285,7 +285,7 @@ text_network(text *src, int type)
285285
memcpy(str, VARDATA(src), len);
286286
*(str + len) = '\0';
287287

288-
PG_RETURN_INET_P(network_in(str, type));
288+
PG_RETURN_INET_P(network_in(str, is_cidr));
289289
}
290290

291291

@@ -425,8 +425,8 @@ network_ne(PG_FUNCTION_ARGS)
425425
/*
426426
* Support function for hash indexes on inet/cidr.
427427
*
428-
* Since network_cmp considers only ip_family, ip_bits, and ip_addr,
429-
* only these fields may be used in the hash; in particular don't use type.
428+
* Since network_cmp considers only ip_family, ip_bits, and ip_addr, only
429+
* these fields may be used in the hash; in particular don't use is_cidr.
430430
*/
431431
Datum
432432
hashinet(PG_FUNCTION_ARGS)
@@ -575,7 +575,7 @@ network_abbrev(PG_FUNCTION_ARGS)
575575
int len;
576576
char tmp[sizeof("xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:255.255.255.255/128")];
577577

578-
if (ip_type(ip))
578+
if (ip_is_cidr(ip))
579579
dst = inet_cidr_ntop(ip_family(ip), ip_addr(ip),
580580
ip_bits(ip), tmp, sizeof(tmp));
581581
else
@@ -666,7 +666,7 @@ network_broadcast(PG_FUNCTION_ARGS)
666666

667667
ip_family(dst) = ip_family(ip);
668668
ip_bits(dst) = ip_bits(ip);
669-
ip_type(dst) = 0;
669+
ip_is_cidr(dst) = false;
670670
VARATT_SIZEP(dst) = VARHDRSZ
671671
+ ((char *) ip_addr(dst) - (char *) VARDATA(dst))
672672
+ ip_addrsize(dst);
@@ -712,7 +712,7 @@ network_network(PG_FUNCTION_ARGS)
712712

713713
ip_family(dst) = ip_family(ip);
714714
ip_bits(dst) = ip_bits(ip);
715-
ip_type(dst) = 1;
715+
ip_is_cidr(dst) = true;
716716
VARATT_SIZEP(dst) = VARHDRSZ
717717
+ ((char *) ip_addr(dst) - (char *) VARDATA(dst))
718718
+ ip_addrsize(dst);
@@ -756,7 +756,7 @@ network_netmask(PG_FUNCTION_ARGS)
756756

757757
ip_family(dst) = ip_family(ip);
758758
ip_bits(dst) = ip_maxbits(ip);
759-
ip_type(dst) = 0;
759+
ip_is_cidr(dst) = false;
760760
VARATT_SIZEP(dst) = VARHDRSZ
761761
+ ((char *) ip_addr(dst) - (char *) VARDATA(dst))
762762
+ ip_addrsize(dst);
@@ -806,7 +806,7 @@ network_hostmask(PG_FUNCTION_ARGS)
806806

807807
ip_family(dst) = ip_family(ip);
808808
ip_bits(dst) = ip_maxbits(ip);
809-
ip_type(dst) = 0;
809+
ip_is_cidr(dst) = false;
810810
VARATT_SIZEP(dst) = VARHDRSZ
811811
+ ((char *) ip_addr(dst) - (char *) VARDATA(dst))
812812
+ ip_addrsize(dst);

src/include/utils/inet.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
* Portions Copyright (c) 1996-2005, PostgreSQL Global Development Group
88
* Portions Copyright (c) 1994, Regents of the University of California
99
*
10-
* $PostgreSQL: pgsql/src/include/utils/inet.h,v 1.20 2004/12/31 22:03:46 pgsql Exp $
10+
* $PostgreSQL: pgsql/src/include/utils/inet.h,v 1.21 2006/01/23 21:45:47 momjian Exp $
1111
*
1212
*-------------------------------------------------------------------------
1313
*/
@@ -22,7 +22,7 @@ typedef struct
2222
{
2323
unsigned char family; /* PGSQL_AF_INET or PGSQL_AF_INET6 */
2424
unsigned char bits; /* number of bits in netmask */
25-
unsigned char type; /* 0 = inet, 1 = cidr */
25+
bool is_cidr; /* is cidr? */
2626
unsigned char ipaddr[16]; /* up to 128 bits of address */
2727
} inet_struct;
2828

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy