Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
U
unique-xids
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
uplex-varnish
unique-xids
Commits
7da07a6e
Commit
7da07a6e
authored
Apr 03, 2013
by
Poul-Henning Kamp
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Fold cnt_hit() into cnt_lookup()
parent
ffe4da24
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
33 additions
and
61 deletions
+33
-61
cache_req_fsm.c
bin/varnishd/cache/cache_req_fsm.c
+33
-60
steps.h
include/tbl/steps.h
+0
-1
No files found.
bin/varnishd/cache/cache_req_fsm.c
View file @
7da07a6e
...
...
@@ -713,65 +713,6 @@ cnt_fetchbody(struct worker *wrk, struct req *req)
return
(
REQ_FSM_MORE
);
}
/*--------------------------------------------------------------------
* HIT
* We had a cache hit. Ask VCL, then march off as instructed.
*
DOT subgraph xcluster_hit {
DOT hit [
DOT shape=record
DOT label="{cnt_hit:|{vcl_hit()|{req.|obj.}}|{<err>error?|<rst>restart?}|{<del>deliver?|<pass>pass?}}"
DOT ]
DOT }
XDOT hit:err -> err_hit [label="error"]
XDOT err_hit [label="ERROR",shape=plaintext]
XDOT hit:rst -> rst_hit [label="restart",color=purple]
XDOT rst_hit [label="RESTART",shape=plaintext]
DOT hit:pass -> pass [label=pass,style=bold,color=red]
DOT hit:del -> prepresp [label="deliver",style=bold,color=green]
*/
static
enum
req_fsm_nxt
cnt_hit
(
struct
worker
*
wrk
,
struct
req
*
req
)
{
CHECK_OBJ_NOTNULL
(
wrk
,
WORKER_MAGIC
);
CHECK_OBJ_NOTNULL
(
req
,
REQ_MAGIC
);
CHECK_OBJ_NOTNULL
(
req
->
obj
,
OBJECT_MAGIC
);
CHECK_OBJ_NOTNULL
(
req
->
vcl
,
VCL_CONF_MAGIC
);
AZ
(
req
->
objcore
);
AZ
(
req
->
busyobj
);
assert
(
!
(
req
->
obj
->
objcore
->
flags
&
OC_F_PASS
));
VCL_lookup_method
(
req
);
if
(
req
->
handling
==
VCL_RET_DELIVER
)
{
//AZ(req->busyobj->bereq->ws);
//AZ(req->busyobj->beresp->ws);
(
void
)
HTTP1_DiscardReqBody
(
req
);
// XXX: handle err
req
->
req_step
=
R_STP_PREPRESP
;
return
(
REQ_FSM_MORE
);
}
/* Drop our object, we won't need it */
(
void
)
HSH_Deref
(
&
wrk
->
stats
,
NULL
,
&
req
->
obj
);
req
->
objcore
=
NULL
;
switch
(
req
->
handling
)
{
case
VCL_RET_PASS
:
req
->
req_step
=
R_STP_PASS
;
return
(
REQ_FSM_MORE
);
case
VCL_RET_ERROR
:
req
->
req_step
=
R_STP_ERROR
;
return
(
REQ_FSM_MORE
);
case
VCL_RET_RESTART
:
req
->
req_step
=
R_STP_RESTART
;
return
(
REQ_FSM_MORE
);
default:
WRONG
(
"Illegal action in vcl_hit{}"
);
}
}
/*--------------------------------------------------------------------
* LOOKUP
...
...
@@ -863,7 +804,39 @@ cnt_lookup(struct worker *wrk, struct req *req)
wrk
->
stats
.
cache_hit
++
;
VSLb
(
req
->
vsl
,
SLT_Hit
,
"%u"
,
req
->
obj
->
vxid
);
req
->
req_step
=
R_STP_HIT
;
AZ
(
req
->
objcore
);
AZ
(
req
->
busyobj
);
assert
(
!
(
req
->
obj
->
objcore
->
flags
&
OC_F_PASS
));
VCL_lookup_method
(
req
);
if
(
req
->
handling
==
VCL_RET_DELIVER
)
{
//AZ(req->busyobj->bereq->ws);
//AZ(req->busyobj->beresp->ws);
(
void
)
HTTP1_DiscardReqBody
(
req
);
// XXX: handle err
req
->
req_step
=
R_STP_PREPRESP
;
return
(
REQ_FSM_MORE
);
}
/* Drop our object, we won't need it */
(
void
)
HSH_Deref
(
&
wrk
->
stats
,
NULL
,
&
req
->
obj
);
req
->
objcore
=
NULL
;
switch
(
req
->
handling
)
{
case
VCL_RET_PASS
:
req
->
req_step
=
R_STP_PASS
;
break
;
case
VCL_RET_ERROR
:
req
->
req_step
=
R_STP_ERROR
;
break
;
case
VCL_RET_RESTART
:
req
->
req_step
=
R_STP_RESTART
;
break
;
default:
WRONG
(
"Illegal action in vcl_lookup{}"
);
}
return
(
REQ_FSM_MORE
);
}
...
...
include/tbl/steps.h
View file @
7da07a6e
...
...
@@ -42,7 +42,6 @@ REQ_STEP(pipe, PIPE, (wrk, req))
REQ_STEP
(
pass
,
PASS
,
(
wrk
,
req
))
REQ_STEP
(
lookup
,
LOOKUP
,
(
wrk
,
req
))
REQ_STEP
(
miss
,
MISS
,
(
wrk
,
req
))
REQ_STEP
(
hit
,
HIT
,
(
wrk
,
req
))
REQ_STEP
(
fetch
,
FETCH
,
(
wrk
,
req
))
REQ_STEP
(
fetchbody
,
FETCHBODY
,
(
wrk
,
req
))
REQ_STEP
(
prepresp
,
PREPRESP
,
(
wrk
,
req
))
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment