[master] 6e062834f Stylistic overhaul
Poul-Henning Kamp
phk at FreeBSD.org
Tue Mar 12 09:48:07 UTC 2019
commit 6e062834fbf261759b5edcf7c1aa0c505beb87c1
Author: Poul-Henning Kamp <phk at FreeBSD.org>
Date: Tue Mar 12 09:23:03 2019 +0000
Stylistic overhaul
diff --git a/include/vrt.h b/include/vrt.h
index 0d4b339a3..cbbfd533a 100644
--- a/include/vrt.h
+++ b/include/vrt.h
@@ -53,6 +53,7 @@
*
*
* 9.0 (scheduled for 2019-03-15)
+ * Remove VCL_{INT|BYTES}_{MIN|MAX} macros
* Make 'len' in vmod_priv 'long'
* HTTP_Copy() removed
* HTTP_Dup() added
@@ -213,21 +214,6 @@ typedef vtim_real VCL_TIME;
typedef struct vcl * VCL_VCL;
typedef void VCL_VOID;
-/*
- * technically, as our VCL_INT is int64_t, its limits are INT64_MIN/INT64_MAX.
- *
- * Yet, for conversions, we use VNUMpfx with a double intermediate, so above
- * 2^53 we see rounding errors. In order to catch a potential floor rounding
- * error, we make our limit 2^53-1
- *
- * Ref: https://stackoverflow.com/a/1848762
- */
-#define VCL_INT_MAX ((INT64_C(1)<<53)-1)
-#define VCL_INT_MIN (-VCL_INT_MAX)
-
-#define VCL_BYTES_MAX VCL_INT_MAX
-#define VCL_BYTES_MIN 0
-
struct vrt_type {
unsigned magic;
#define VRT_TYPE_MAGIC 0xa943bc32
diff --git a/lib/libvmod_std/vmod_std_conversions.c b/lib/libvmod_std/vmod_std_conversions.c
index c20402b1c..e7a2172f0 100644
--- a/lib/libvmod_std/vmod_std_conversions.c
+++ b/lib/libvmod_std/vmod_std_conversions.c
@@ -30,7 +30,6 @@
#include "config.h"
#include <ctype.h>
-#include <limits.h>
#include <string.h>
#include <stdlib.h>
#include <sys/socket.h>
@@ -44,7 +43,22 @@
#include "vtim.h"
#include "vcc_if.h"
-static inline int onearg(VRT_CTX, const char *f, int nargs)
+/*
+ * technically, as our VCL_INT is int64_t, its limits are INT64_MIN/INT64_MAX.
+ *
+ * Yet, for conversions, we use VNUMpfx with a double intermediate, so above
+ * 2^53 we see rounding errors. In order to catch a potential floor rounding
+ * error, we make our limit 2^53-1
+ *
+ * Ref: https://stackoverflow.com/a/1848762
+ */
+#define VCL_INT_MAX ((INT64_C(1)<<53)-1)
+#define VCL_INT_MIN (-VCL_INT_MAX)
+
+#define VCL_BYTES_MAX VCL_INT_MAX
+
+static
+int onearg(VRT_CTX, const char *f, int nargs)
{
if (nargs == 1)
return (1);
@@ -68,20 +82,20 @@ vmod_duration(VRT_CTX, struct VARGS(duration) *a)
nargs = a->valid_s + a->valid_real + a->valid_integer;
- if (! onearg(ctx, "duration", nargs))
+ if (!onearg(ctx, "duration", nargs))
return (0);
if (a->valid_real)
return ((VCL_DURATION)a->real);
+
if (a->valid_integer)
return ((VCL_DURATION)a->integer);
- assert(a->valid_s);
-
- r = VNUM_duration(a->s);
-
- if (! isnan(r))
- return (r);
+ if (a->valid_s) {
+ r = VNUM_duration(a->s);
+ if (!isnan(r))
+ return (r);
+ }
if (a->valid_fallback)
return (a->fallback);
@@ -94,7 +108,6 @@ VCL_BYTES v_matchproto_(td_std_bytes)
vmod_bytes(VRT_CTX, struct VARGS(bytes) *a)
{
uintmax_t r;
- VCL_BYTES b;
VCL_REAL rr;
int nargs;
@@ -102,26 +115,22 @@ vmod_bytes(VRT_CTX, struct VARGS(bytes) *a)
nargs = a->valid_s + a->valid_real + a->valid_integer;
- if (! onearg(ctx, "bytes", nargs))
+ if (!onearg(ctx, "bytes", nargs))
return (0);
- b = -1;
- if (a->valid_s) {
- if (VNUM_2bytes(a->s, &r, 0) == NULL &&
- r <= VCL_BYTES_MAX)
- b = (VCL_BYTES)r;
- } else if (a->valid_real) {
+ if (a->valid_s &&
+ VNUM_2bytes(a->s, &r, 0) == NULL &&
+ r <= VCL_BYTES_MAX)
+ return((VCL_BYTES)r);
+
+ if (a->valid_real) {
rr = trunc(a->real);
if (rr <= (VCL_REAL)VCL_BYTES_MAX)
- b = (VCL_BYTES)rr;
- } else if (a->valid_integer) {
- b = (VCL_BYTES)a->integer;
- } else {
- INCOMPL();
+ return((VCL_BYTES)rr);
}
- if (b >= 0)
- return (b);
+ if (a->valid_integer)
+ return((VCL_BYTES)a->integer);
if (a->valid_fallback)
return (a->fallback);
@@ -142,31 +151,32 @@ vmod_integer(VRT_CTX, struct VARGS(integer) *a)
nargs = a->valid_s + a->valid_bool + a->valid_bytes +
a->valid_duration + a->valid_real + a->valid_time;
- if (! onearg(ctx, "integer", nargs))
+ if (!onearg(ctx, "integer", nargs))
return (0);
r = NAN;
- if (a->valid_bool) {
- return (!! a->bool);
- } else if (a->valid_bytes) {
+ if (a->valid_bool)
+ return (a->bool ? 1 : 0);
+
+ if (a->valid_bytes)
return (a->bytes);
- } else if (a->valid_s) {
- if (a->s) {
- r = VNUMpfx(a->s, &e);
- if (e != NULL)
- r = NAN;
- }
- } else if (a->valid_duration) {
+
+ if (a->valid_s && a->s != NULL) {
+ r = VNUMpfx(a->s, &e);
+ if (e != NULL)
+ r = NAN;
+ }
+
+ if (a->valid_duration)
r = a->duration;
- } else if (a->valid_real) {
+
+ if (a->valid_real)
r = a->real;
- } else if (a->valid_time) {
+
+ if (a->valid_time)
r = a->time;
- } else {
- INCOMPL();
- }
- if (! isnan(r)) {
+ if (!isnan(r)) {
r = trunc(r);
if (r >= VCL_INT_MIN && r <= VCL_INT_MAX)
return ((VCL_INT)r);
@@ -180,7 +190,7 @@ vmod_integer(VRT_CTX, struct VARGS(integer) *a)
}
VCL_IP
-vmod_ip(VRT_CTX, VCL_STRING s, VCL_IP d, VCL_BOOL n)
+vmod_ip(VRT_CTX, VCL_STRING s, VCL_IP d, VCL_BOOL resolve)
{
struct addrinfo hints, *res0 = NULL;
const struct addrinfo *res;
@@ -204,7 +214,7 @@ vmod_ip(VRT_CTX, VCL_STRING s, VCL_IP d, VCL_BOOL n)
memset(&hints, 0, sizeof(hints));
hints.ai_family = PF_UNSPEC;
hints.ai_socktype = SOCK_STREAM;
- if (!n)
+ if (!resolve)
hints.ai_flags |= AI_NUMERICHOST;
error = getaddrinfo(s, "80", &hints, &res0);
if (!error) {
@@ -235,28 +245,29 @@ vmod_real(VRT_CTX, struct VARGS(real) *a)
nargs = a->valid_s + a->valid_integer + a->valid_bool + a->valid_bytes +
a->valid_duration + a->valid_time;
- if (! onearg(ctx, "real", nargs))
+ if (!onearg(ctx, "real", nargs))
return (0);
if (a->valid_integer)
return ((VCL_REAL)a->integer);
- else if (a->valid_bool)
- return ((VCL_REAL)(!! a->bool));
- else if (a->valid_bytes)
+
+ if (a->valid_bool)
+ return ((VCL_REAL)(a->bool ? 1 : 0));
+
+ if (a->valid_bytes)
return ((VCL_REAL)a->bytes);
- else if (a->valid_duration)
+
+ if (a->valid_duration)
return ((VCL_REAL)a->duration);
- else if (a->valid_time)
- return ((VCL_REAL)a->time);
- assert(a->valid_s);
+ if (a->valid_time)
+ return ((VCL_REAL)a->time);
- r = NAN;
- if (a->s != NULL)
+ if (a->valid_s && a->s != NULL) {
r = VNUM(a->s);
-
- if (!isnan(r))
- return (r);
+ if (!isnan(r))
+ return (r);
+ }
if (a->valid_fallback)
return (a->fallback);
@@ -272,6 +283,44 @@ vmod_round(VRT_CTX, VCL_REAL r)
return (round(r));
}
+VCL_TIME v_matchproto_(td_std_time)
+vmod_time(VRT_CTX, struct VARGS(time)* a)
+{
+ double r;
+ int nargs;
+
+ CHECK_OBJ_NOTNULL(ctx, VRT_CTX_MAGIC);
+
+ nargs = a->valid_s + a->valid_real + a->valid_integer;
+
+ if (!onearg(ctx, "time", nargs))
+ return (0);
+
+ if (a->valid_integer)
+ return ((VCL_REAL)a->integer);
+
+ if (a->valid_real)
+ return ((VCL_REAL)a->real);
+
+ if (a->valid_s && a->s != NULL) {
+ r = VTIM_parse(a->s);
+ if (r)
+ return (r);
+
+ r = VNUM(a->s);
+
+ if (!isnan(r) && r > 0)
+ return (r);
+ }
+
+ if (a->valid_fallback)
+ return (a->fallback);
+
+ VRT_fail(ctx, "std.time: conversion failed");
+ return (0);
+}
+
+/* These functions are deprecated as of 2019-03-15 release */
VCL_INT v_matchproto_(td_std_real2integer)
vmod_real2integer(VRT_CTX, VCL_REAL r, VCL_INT i)
@@ -321,40 +370,3 @@ vmod_time2real(VRT_CTX, VCL_TIME t, VCL_REAL r)
return (t);
}
-VCL_TIME v_matchproto_(td_std_time)
-vmod_time(VRT_CTX, struct VARGS(time)* a)
-{
- double r;
- int nargs;
-
- CHECK_OBJ_NOTNULL(ctx, VRT_CTX_MAGIC);
-
- nargs = a->valid_s + a->valid_real + a->valid_integer;
-
- if (! onearg(ctx, "time", nargs))
- return (0);
-
- if (a->valid_integer)
- return ((VCL_REAL)a->integer);
- else if (a->valid_real)
- return ((VCL_REAL)a->real);
-
- assert(a->valid_s);
-
- if (a->s) {
- r = VTIM_parse(a->s);
- if (r)
- return (r);
-
- r = VNUM(a->s);
-
- if (!isnan(r) && r > 0)
- return (r);
- }
-
- if (a->valid_fallback)
- return (a->fallback);
-
- VRT_fail(ctx, "std.time: conversion failed");
- return (0);
-}
More information about the varnish-commit
mailing list