Commit c640e69a authored by Poul-Henning Kamp's avatar Poul-Henning Kamp

Centralize the '-n' option handling for the log tools in libvarnishapi.



git-svn-id: http://www.varnish-cache.org/svn/trunk/varnish-cache@4774 d4fa192b-c00b-0410-8231-f00ffab90ce4
parent 6f31b027
...@@ -320,15 +320,11 @@ main(int argc, char **argv) ...@@ -320,15 +320,11 @@ main(int argc, char **argv)
{ {
int o; int o;
struct VSL_data *vd; struct VSL_data *vd;
const char *n_arg = NULL;
vd = VSL_New(); vd = VSL_New();
while ((o = getopt(argc, argv, VSL_ARGS "n:Vw:")) != -1) { while ((o = getopt(argc, argv, VSL_ARGS "Vw:")) != -1) {
switch (o) { switch (o) {
case 'n':
n_arg = optarg;
break;
case 'V': case 'V':
varnish_version("varnishhist"); varnish_version("varnishhist");
exit(0); exit(0);
...@@ -342,7 +338,7 @@ main(int argc, char **argv) ...@@ -342,7 +338,7 @@ main(int argc, char **argv)
} }
} }
if (VSL_OpenLog(vd, n_arg)) if (VSL_OpenLog(vd))
exit(1); exit(1);
log_ten = log(10.0); log_ten = log(10.0);
......
...@@ -311,7 +311,6 @@ main(int argc, char **argv) ...@@ -311,7 +311,6 @@ main(int argc, char **argv)
{ {
int c; int c;
int a_flag = 0, D_flag = 0, o_flag = 0, u_flag = 0; int a_flag = 0, D_flag = 0, o_flag = 0, u_flag = 0;
const char *n_arg = NULL;
const char *P_arg = NULL; const char *P_arg = NULL;
const char *w_arg = NULL; const char *w_arg = NULL;
struct pidfh *pfh = NULL; struct pidfh *pfh = NULL;
...@@ -319,7 +318,7 @@ main(int argc, char **argv) ...@@ -319,7 +318,7 @@ main(int argc, char **argv)
vd = VSL_New(); vd = VSL_New();
while ((c = getopt(argc, argv, VSL_ARGS "aDon:P:uVw:")) != -1) { while ((c = getopt(argc, argv, VSL_ARGS "aDoP:uVw:")) != -1) {
switch (c) { switch (c) {
case 'a': case 'a':
a_flag = 1; a_flag = 1;
...@@ -335,9 +334,6 @@ main(int argc, char **argv) ...@@ -335,9 +334,6 @@ main(int argc, char **argv)
case 'D': case 'D':
D_flag = 1; D_flag = 1;
break; break;
case 'n':
n_arg = optarg;
break;
case 'o': case 'o':
o_flag = 1; o_flag = 1;
break; break;
...@@ -363,7 +359,7 @@ main(int argc, char **argv) ...@@ -363,7 +359,7 @@ main(int argc, char **argv)
if (o_flag && w_arg != NULL) if (o_flag && w_arg != NULL)
usage(); usage();
if (VSL_OpenLog(vd, n_arg)) if (VSL_OpenLog(vd))
exit(1); exit(1);
if (P_arg && (pfh = vpf_open(P_arg, 0644, NULL)) == NULL) { if (P_arg && (pfh = vpf_open(P_arg, 0644, NULL)) == NULL) {
......
...@@ -521,7 +521,6 @@ main(int argc, char *argv[]) ...@@ -521,7 +521,6 @@ main(int argc, char *argv[])
{ {
int c; int c;
int a_flag = 0, D_flag = 0; int a_flag = 0, D_flag = 0;
const char *n_arg = NULL;
const char *P_arg = NULL; const char *P_arg = NULL;
const char *w_arg = NULL; const char *w_arg = NULL;
struct pidfh *pfh = NULL; struct pidfh *pfh = NULL;
...@@ -530,7 +529,7 @@ main(int argc, char *argv[]) ...@@ -530,7 +529,7 @@ main(int argc, char *argv[])
vd = VSL_New(); vd = VSL_New();
while ((c = getopt(argc, argv, VSL_ARGS "aDn:P:Vw:f")) != -1) { while ((c = getopt(argc, argv, VSL_ARGS "aDP:Vw:f")) != -1) {
switch (c) { switch (c) {
case 'a': case 'a':
a_flag = 1; a_flag = 1;
...@@ -541,9 +540,6 @@ main(int argc, char *argv[]) ...@@ -541,9 +540,6 @@ main(int argc, char *argv[])
case 'D': case 'D':
D_flag = 1; D_flag = 1;
break; break;
case 'n':
n_arg = optarg;
break;
case 'P': case 'P':
P_arg = optarg; P_arg = optarg;
break; break;
...@@ -569,7 +565,7 @@ main(int argc, char *argv[]) ...@@ -569,7 +565,7 @@ main(int argc, char *argv[])
VSL_Arg(vd, 'c', optarg); VSL_Arg(vd, 'c', optarg);
if (VSL_OpenLog(vd, n_arg)) if (VSL_OpenLog(vd))
exit(1); exit(1);
if (P_arg && (pfh = vpf_open(P_arg, 0644, NULL)) == NULL) { if (P_arg && (pfh = vpf_open(P_arg, 0644, NULL)) == NULL) {
......
...@@ -724,7 +724,7 @@ main(int argc, char *argv[]) ...@@ -724,7 +724,7 @@ main(int argc, char *argv[])
debug = 0; debug = 0;
VSL_Arg(vd, 'c', NULL); VSL_Arg(vd, 'c', NULL);
while ((c = getopt(argc, argv, "a:Dr:")) != -1) { while ((c = getopt(argc, argv, "a:Dr:n:")) != -1) {
switch (c) { switch (c) {
case 'a': case 'a':
address = optarg; address = optarg;
...@@ -743,7 +743,7 @@ main(int argc, char *argv[]) ...@@ -743,7 +743,7 @@ main(int argc, char *argv[])
usage(); usage();
} }
if (VSL_OpenLog(vd, NULL)) if (VSL_OpenLog(vd))
exit(1); exit(1);
addr_info = init_connection(address); addr_info = init_connection(address);
......
...@@ -321,15 +321,11 @@ main(int argc, char **argv) ...@@ -321,15 +321,11 @@ main(int argc, char **argv)
{ {
int o; int o;
struct VSL_data *vd; struct VSL_data *vd;
const char *n_arg = NULL;
vd = VSL_New(); vd = VSL_New();
while ((o = getopt(argc, argv, VSL_ARGS "n:Vw:")) != -1) { while ((o = getopt(argc, argv, VSL_ARGS "Vw:")) != -1) {
switch (o) { switch (o) {
case 'n':
n_arg = optarg;
break;
case 'V': case 'V':
varnish_version("varnishsizes"); varnish_version("varnishsizes");
exit(0); exit(0);
...@@ -343,7 +339,7 @@ main(int argc, char **argv) ...@@ -343,7 +339,7 @@ main(int argc, char **argv)
} }
} }
if (VSL_OpenLog(vd, n_arg)) if (VSL_OpenLog(vd))
exit(1); exit(1);
log_ten = log(10.0); log_ten = log(10.0);
......
...@@ -302,20 +302,16 @@ int ...@@ -302,20 +302,16 @@ int
main(int argc, char **argv) main(int argc, char **argv)
{ {
struct VSL_data *vd; struct VSL_data *vd;
const char *n_arg = NULL;
int o, once = 0; int o, once = 0;
vd = VSL_New(); vd = VSL_New();
while ((o = getopt(argc, argv, VSL_ARGS "1fn:V")) != -1) { while ((o = getopt(argc, argv, VSL_ARGS "1fV")) != -1) {
switch (o) { switch (o) {
case '1': case '1':
VSL_Arg(vd, 'd', NULL); VSL_Arg(vd, 'd', NULL);
once = 1; once = 1;
break; break;
case 'n':
n_arg = optarg;
break;
case 'f': case 'f':
f_flag = 1; f_flag = 1;
break; break;
...@@ -329,7 +325,7 @@ main(int argc, char **argv) ...@@ -329,7 +325,7 @@ main(int argc, char **argv)
} }
} }
if (VSL_OpenLog(vd, n_arg)) if (VSL_OpenLog(vd))
exit (1); exit (1);
if (once) { if (once) {
......
...@@ -43,14 +43,14 @@ typedef int vsl_handler(void *priv, enum shmlogtag tag, unsigned fd, ...@@ -43,14 +43,14 @@ typedef int vsl_handler(void *priv, enum shmlogtag tag, unsigned fd,
unsigned len, unsigned spec, const char *ptr); unsigned len, unsigned spec, const char *ptr);
#define VSL_S_CLIENT (1 << 0) #define VSL_S_CLIENT (1 << 0)
#define VSL_S_BACKEND (1 << 1) #define VSL_S_BACKEND (1 << 1)
#define VSL_ARGS "bCcdI:i:k:r:s:X:x:" #define VSL_ARGS "bCcdI:i:k:n:r:s:X:x:"
#define VSL_USAGE "[-bCcd] [-i tag] [-I regexp] [-k keep]" \ #define VSL_USAGE "[-bCcd] [-i tag] [-I regexp] [-k keep]" \
" [-r file] [-s skip] [-X regexp] [-x tag]" " [-r file] [-s skip] [-X regexp] [-x tag]"
vsl_handler VSL_H_Print; vsl_handler VSL_H_Print;
struct VSL_data; struct VSL_data;
struct VSL_data *VSL_New(void); struct VSL_data *VSL_New(void);
void VSL_Select(struct VSL_data *vd, unsigned tag); void VSL_Select(struct VSL_data *vd, unsigned tag);
int VSL_OpenLog(struct VSL_data *vd, const char *varnish_name); int VSL_OpenLog(struct VSL_data *vd);
void VSL_NonBlocking(struct VSL_data *vd, int nb); void VSL_NonBlocking(struct VSL_data *vd, int nb);
int VSL_Dispatch(struct VSL_data *vd, vsl_handler *func, void *priv); int VSL_Dispatch(struct VSL_data *vd, vsl_handler *func, void *priv);
int VSL_NextLog(struct VSL_data *lh, unsigned char **pp); int VSL_NextLog(struct VSL_data *lh, unsigned char **pp);
......
...@@ -69,6 +69,7 @@ struct VSL_data { ...@@ -69,6 +69,7 @@ struct VSL_data {
unsigned rbuflen; unsigned rbuflen;
unsigned char *rbuf; unsigned char *rbuf;
char *n_opt;
int b_opt; int b_opt;
int c_opt; int c_opt;
int d_opt; int d_opt;
...@@ -201,7 +202,7 @@ VSL_Select(struct VSL_data *vd, unsigned tag) ...@@ -201,7 +202,7 @@ VSL_Select(struct VSL_data *vd, unsigned tag)
/*--------------------------------------------------------------------*/ /*--------------------------------------------------------------------*/
int int
VSL_OpenLog(struct VSL_data *vd, const char *varnish_name) VSL_OpenLog(struct VSL_data *vd)
{ {
unsigned char *p; unsigned char *p;
...@@ -209,7 +210,7 @@ VSL_OpenLog(struct VSL_data *vd, const char *varnish_name) ...@@ -209,7 +210,7 @@ VSL_OpenLog(struct VSL_data *vd, const char *varnish_name)
if (vd->fd != -1) if (vd->fd != -1)
return (0); return (0);
if (vsl_shmem_map(varnish_name)) if (vsl_shmem_map(vd->n_opt))
return (-1); return (-1);
vd->head = vsl_lh; vd->head = vsl_lh;
...@@ -562,6 +563,11 @@ VSL_Arg(struct VSL_data *vd, int arg, const char *opt) ...@@ -562,6 +563,11 @@ VSL_Arg(struct VSL_data *vd, int arg, const char *opt)
vd->flags |= F_NON_BLOCKING; vd->flags |= F_NON_BLOCKING;
return (1); return (1);
case 'i': case 'x': return (vsl_ix_arg(vd, opt, arg)); case 'i': case 'x': return (vsl_ix_arg(vd, opt, arg));
case 'n':
free(vd->n_opt);
vd->n_opt = strdup(opt);
assert(vd->n_opt != NULL);
return (1);
case 'r': return (vsl_r_arg(vd, opt)); case 'r': return (vsl_r_arg(vd, opt));
case 'I': case 'X': return (vsl_IX_arg(vd, opt, arg)); case 'I': case 'X': return (vsl_IX_arg(vd, opt, arg));
case 'C': vd->regflags = VRE_CASELESS; return (1); case 'C': vd->regflags = VRE_CASELESS; return (1);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment