[master] 9d1986f92 Simplify VIN_n_Arg() to return the directory directly.
Poul-Henning Kamp
phk at FreeBSD.org
Tue Aug 24 12:51:05 UTC 2021
commit 9d1986f92c6efccec7e3b8705026088c30f2f166
Author: Poul-Henning Kamp <phk at FreeBSD.org>
Date: Tue Aug 24 12:49:37 2021 +0000
Simplify VIN_n_Arg() to return the directory directly.
diff --git a/bin/varnishd/mgt/mgt_main.c b/bin/varnishd/mgt/mgt_main.c
index 9c2a8f0ef..f5d2ede33 100644
--- a/bin/varnishd/mgt/mgt_main.c
+++ b/bin/varnishd/mgt/mgt_main.c
@@ -782,8 +782,8 @@ main(int argc, char * const *argv)
VJ_master(JAIL_MASTER_LOW);
}
- if (VIN_n_Arg(n_arg, &workdir) != 0)
- ARGV_ERR("Invalid instance (-n) name: %s\n", VAS_errtxt(errno));
+ workdir = VIN_n_Arg(n_arg);
+ AN(workdir);
if (i_arg == NULL || *i_arg == '\0')
i_arg = mgt_HostName();
diff --git a/include/vin.h b/include/vin.h
index 373dda0e1..e7dc3eb8d 100644
--- a/include/vin.h
+++ b/include/vin.h
@@ -34,5 +34,5 @@
#define VIN_H_INCLUDED
/* This function lives in both libvarnish and libvarnishapi */
-int VIN_n_Arg(const char *n_arg, char **dir);
+char *VIN_n_Arg(const char *n_arg);
#endif
diff --git a/include/vrt.h b/include/vrt.h
index d65c19984..24d11fd10 100644
--- a/include/vrt.h
+++ b/include/vrt.h
@@ -54,6 +54,7 @@
* binary/load-time compatible, increment MAJOR version
*
* NEXT (2021-09-15)
+ * VIN_n_Arg() no directly returns the directory name.
* VSB_new() and VSB_delete() removed
* VCL_STRINGLIST, vrt_magic_string_end removed
* VRT_String(), VRT_StringList(), VRT_CollectString() removed
diff --git a/lib/libvarnish/vin.c b/lib/libvarnish/vin.c
index 493486f8d..89f132f4e 100644
--- a/lib/libvarnish/vin.c
+++ b/lib/libvarnish/vin.c
@@ -42,12 +42,11 @@
#include "vin.h"
#include "vsb.h"
-int
-VIN_n_Arg(const char *n_arg, char **dir)
+char *
+VIN_n_Arg(const char *n_arg)
{
struct vsb *vsb;
-
- AN(dir);
+ char *retval;
vsb = VSB_new_auto();
AN(vsb);
@@ -63,9 +62,7 @@ VIN_n_Arg(const char *n_arg, char **dir)
}
AZ(VSB_finish(vsb));
- *dir = strdup(VSB_data(vsb));
+ retval = strdup(VSB_data(vsb));
VSB_destroy(&vsb);
- if (*dir == NULL)
- return (-1);
- return (0);
+ return (retval);
}
diff --git a/lib/libvarnishapi/vsm.c b/lib/libvarnishapi/vsm.c
index 0040e85c8..af1b3b212 100644
--- a/lib/libvarnishapi/vsm.c
+++ b/lib/libvarnishapi/vsm.c
@@ -387,12 +387,12 @@ VSM_Arg(struct vsm *vd, char flag, const char *arg)
}
break;
case 'n':
- if (VIN_n_Arg(arg, &p))
+ if (vd->wdname != NULL)
+ free(vd->wdname);
+ vd->wdname = VIN_n_Arg(arg);
+ if (vd->wdname == NULL)
return (vsm_diag(vd, "Invalid instance name: %s",
strerror(errno)));
- AN(p);
- REPLACE(vd->wdname, p);
- free(p);
break;
default:
return (vsm_diag(vd, "Unknown VSM_Arg('%c')", flag));
More information about the varnish-commit
mailing list