mirror of
https://github.com/wg/wrk
synced 2026-06-10 00:55:51 +08:00
Compare commits
3 Commits
@@ -21,7 +21,7 @@ SRC := wrk.c net.c ssl.c aprintf.c stats.c script.c units.c \
|
||||
BIN := wrk
|
||||
|
||||
ODIR := obj
|
||||
OBJ := $(patsubst %.c,$(ODIR)/%.o,$(SRC))
|
||||
OBJ := $(patsubst %.c,$(ODIR)/%.o,$(SRC)) $(ODIR)/bytecode.o
|
||||
|
||||
LDIR = deps/luajit/src
|
||||
LIBS := -lluajit $(LIBS)
|
||||
@@ -34,25 +34,25 @@ clean:
|
||||
$(RM) $(BIN) obj/*
|
||||
@$(MAKE) -C deps/luajit clean
|
||||
|
||||
$(BIN): $(OBJ) $(ODIR)/bytecode.o
|
||||
$(BIN): $(OBJ)
|
||||
@echo LINK $(BIN)
|
||||
@$(CC) $(LDFLAGS) -o $@ $^ $(LIBS)
|
||||
|
||||
$(OBJ): config.h Makefile | $(ODIR)
|
||||
$(OBJ): config.h Makefile $(LDIR)/libluajit.a | $(ODIR)
|
||||
|
||||
$(ODIR): $(LDIR)/libluajit.a
|
||||
$(ODIR):
|
||||
@mkdir -p $@
|
||||
|
||||
$(ODIR)/bytecode.o: scripts/wrk.lua
|
||||
@echo LUAJIT $<
|
||||
@$(SHELL) -c 'cd $(LDIR) && ./luajit -b $(PWD)/$< $(PWD)/$@'
|
||||
@$(SHELL) -c 'cd $(LDIR) && ./luajit -b $(CURDIR)/$< $(CURDIR)/$@'
|
||||
|
||||
$(ODIR)/%.o : %.c
|
||||
@echo CC $<
|
||||
@$(CC) $(CFLAGS) -c -o $@ $<
|
||||
|
||||
$(LDIR)/libluajit.a:
|
||||
@echo Building LuaJit...
|
||||
@echo Building LuaJIT...
|
||||
@$(MAKE) -C $(LDIR) BUILDMODE=static
|
||||
|
||||
.PHONY: all clean
|
||||
|
||||
+20
-4
@@ -9,14 +9,16 @@ local wrk = {
|
||||
}
|
||||
|
||||
function wrk.format(method, path, headers, body)
|
||||
local host = wrk.host
|
||||
local method = method or wrk.method
|
||||
local path = path or wrk.path
|
||||
local headers = headers or wrk.headers
|
||||
local body = body or wrk.body
|
||||
local s = {}
|
||||
|
||||
headers["Host"] = port and (host .. ":" .. port) or host
|
||||
if not headers["Host"] then
|
||||
headers["Host"] = wrk.headers["Host"]
|
||||
end
|
||||
|
||||
headers["Content-Length"] = body and string.len(body)
|
||||
|
||||
s[1] = string.format("%s %s HTTP/1.1", method, path)
|
||||
@@ -30,8 +32,22 @@ function wrk.format(method, path, headers, body)
|
||||
return table.concat(s, "\r\n")
|
||||
end
|
||||
|
||||
function wrk.init(args) req = wrk.format() end
|
||||
function wrk.request() return req end
|
||||
function wrk.init(args)
|
||||
if not wrk.headers["Host"] then
|
||||
local host = wrk.host
|
||||
local port = wrk.port
|
||||
|
||||
host = host:find(":") and ("[" .. host .. "]") or host
|
||||
host = port and (host .. ":" .. port) or host
|
||||
|
||||
wrk.headers["Host"] = host
|
||||
end
|
||||
req = wrk.format()
|
||||
end
|
||||
|
||||
function wrk.request()
|
||||
return req
|
||||
end
|
||||
|
||||
init = wrk.init
|
||||
request = wrk.request
|
||||
|
||||
Reference in New Issue
Block a user