Go: x/net: httplex ํŒจํ‚ค์ง€๊ฐ€ googlegit์— ์˜ํ•ด ์ด๋™๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์— ๋งŒ๋“  2018๋…„ 05์›” 23์ผ  ยท  1๋…ผํ‰  ยท  ์ถœ์ฒ˜: golang/go

์–ด๋–ค ๋ฒ„์ „์˜ Go๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๊นŒ( go version )?

์ด๋™ ๋ฒ„์ „ go1.9.2 linux/amd64

์ด ๋ฌธ์ œ๋Š” ์ตœ์‹  ๋ฆด๋ฆฌ์Šค์—์„œ ์žฌํ˜„๋ฉ๋‹ˆ๊นŒ?

์ตœ์‹ ๋ฒ„์ „์€ ์ƒ๊ด€์—†์Šต๋‹ˆ๋‹ค.

์–ด๋–ค ์šด์˜ ์ฒด์ œ ๋ฐ ํ”„๋กœ์„ธ์„œ ์•„ํ‚คํ…์ฒ˜๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๊นŒ( go env )?

[ root@host-172-19-146-103 netplugin]# ํ™˜๊ฒฝ์œผ๋กœ ์ด๋™
GOARCH="amd64"
๊ณ ๋นˆ=""
GOEXE=""
GOHOSTARCH="amd64"
GOHOSTOS="๋ฆฌ๋ˆ…์Šค"
GOOS="๋ฆฌ๋ˆ…์Šค"
GOPATH="/๋ฃจํŠธ/์ปจํ‹ฐ๋ธŒ/"
๊ณ ๋ผ์Šค=""
GOROOT="/usr/local/go"
GOTOOLDIR="/usr/local/go/pkg/tool/linux_amd64"
GCCGO="gccgo"
CC="gcc"
GOGCCFLAGS="-fPIC -m64 -pthread -fmessage-length=0 -fdebug-prefix-map=/tmp/go-build112525786=/tmp/go-build -gno-record-gcc-switches"
CXX="g++"
CGO_ENABLED="1"
CGO_CFLAGS="-g -O2"
CGO_CPPFLAGS=""
CGO_CXXFLAGS="-g -O2"
CGO_FFLAGS="-g -O2"
CGO_LDFLAGS="-g -O2"
PKG_CONFIG="pkg-config"

๋ญ ํ–ˆ์–ด?

  1. go get -u golang.org/x/net/lex/httplex
  2. ์œ„ ๋‹จ๊ณ„์˜ ๊ฒฐ๊ณผ:
    [ root@host-172-19-146-103 netplugin]# golang.org/x/net/lex/httplex ๊ฐ€์ ธ์˜ค๊ธฐ
    golang.org/x/net/lex/httplex ํŒจํ‚ค์ง€: ๋‹ค์Œ ์ค‘ ํ•˜๋‚˜์—์„œ "golang.org/x/net/lex/httplex" ํŒจํ‚ค์ง€๋ฅผ ์ฐพ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.
    /usr/local/go/src/golang.org/x/net/lex/httplex($GOROOT์—์„œ)
    /root/contiv/src/golang.org/x/net/lex/httplex($GOPATH์—์„œ)
  3. googlegit์—์„œ ํŒจํ‚ค์ง€๋ฅผ ํ™•์ธํ•˜๊ณ  ์ปค๋ฐ‹์„ ์ฐพ์•˜์Šต๋‹ˆ๋‹ค.
    lex/httplex, http/httpguts: httplex ํŒจํ‚ค์ง€๋ฅผ httpguts๋กœ ๋ณ‘ํ•ฉ

    httplex๋Š” net/http ๊ฐ„์˜ ๊ณต์œ  ์ฝ”๋“œ์— ๋Œ€ํ•œ ์›๋ž˜ ํŒจํ‚ค์ง€ ์ด๋ฆ„์ด์—ˆ์Šต๋‹ˆ๋‹ค.
    ๋ฐ x/net/http2์ด์ง€๋งŒ ์ด๋ฆ„์ด ๋„ˆ๋ฌด ๊ตฌ์ฒด์ ์ด๊ณ  http/httpguts๊ฐ€
    ๋‚˜์ค‘์— ๋‹ค๋ฅธ ๊ณต์œ  ์ฝ”๋“œ์— ์ถ”๊ฐ€๋ฉ๋‹ˆ๋‹ค.

    ์šฐ๋ฆฌ๋Š” ๋‹น์‹œ httplex๋ฅผ httpguts๋กœ ๋ณ‘ํ•ฉํ•˜๋Š” ๊ฒƒ์— ๋Œ€ํ•ด ๋…ผ์˜ํ–ˆ์ง€๋งŒ, ๊ทธ๋ ‡์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.
    ๋” ์ผ์ฐ ์ผ์–ด๋‚œ๋‹ค. ์ด๊ฒƒ์œผ๋กœ ์ด๋™์ด ์™„๋ฃŒ๋ฉ๋‹ˆ๋‹ค.

    ์—…๋ฐ์ดํŠธ golang/go#23908
    ํŒจํ‚ค์ง€ ์ด๋ฆ„์€ ์ด๋ฏธ http/httpguts/๋กœ ์ด๋™๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
    ๊ทธ๋ž˜์„œ ๋งˆ์Šคํ„ฐ ๋ธŒ๋žœ์น˜์—์„œ ์ฐพ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

  4. 4๊ฐœ์˜ ํŒŒ์ผ์—์„œ ๊ฐ€์ ธ์˜ค๊ธฐ ๊ฒฝ๋กœ๋ฅผ ์ˆ˜์ •ํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.
    /contiv-netplugin-etcdv3/netplugin/vendor/golang.org/x/net/http2/frame.go:
    16
    17 "golang.org/x/net/http2/hpack"
    18: "golang.org/x/net/lex/httplex"
    19 )
    20

/contiv-netplugin-etcdv3/netplugin/vendor/golang.org/x/net/http2/http2.go:
30 "๋™๊ธฐํ™”"
31
32: "golang.org/x/net/lex/httplex"
33)
34

/contiv-netplugin-etcdv3/netplugin/vendor/golang.org/x/net/http2/transport.go:
29 "golang.org/x/net/http2/hpack"
30 "golang.org/x/net/idna"
31: "golang.org/x/net/lex/httplex"
32)
33

/contiv-netplugin-etcdv3/netplugin/vendor/golang.org/x/net/http2/write.go:
14
15 "golang.org/x/net/http2/hpack"
16: "golang.org/x/net/lex/httplex"
17)
18

๋ฌด์—‡์„ ๋ณผ ๊ฒƒ์œผ๋กœ ์˜ˆ์ƒํ–ˆ์Šต๋‹ˆ๊นŒ?

์ •์ƒ์œผ๋กœ ๊ฐ€๋‹ค

๋Œ€์‹  ๋ฌด์—‡์„ ๋ณด์•˜์Šต๋‹ˆ๊นŒ?

  1. 4๊ฐœ์˜ ํŒŒ์ผ์—์„œ ๊ฐ€์ ธ์˜ค๊ธฐ ๊ฒฝ๋กœ๋ฅผ ์ˆ˜์ •ํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.
    /contiv-netplugin-etcdv3/netplugin/vendor/golang.org/x/net/http2/frame.go:
    16
    17 "golang.org/x/net/http2/hpack"
    18: "golang.org/x/net/lex/httplex"
    19)
    20

/contiv-netplugin-etcdv3/netplugin/vendor/golang.org/x/net/http2/http2.go:
30 "๋™๊ธฐํ™”"
31
32: "golang.org/x/net/lex/httplex"
33)
34

/contiv-netplugin-etcdv3/netplugin/vendor/golang.org/x/net/http2/transport.go:
29 "golang.org/x/net/http2/hpack"
30 "golang.org/x/net/idna"
31: "golang.org/x/net/lex/httplex"
32)
33

/contiv-netplugin-etcdv3/netplugin/vendor/golang.org/x/net/http2/write.go:
14
15 "golang.org/x/net/http2/hpack"
16: "golang.org/x/net/lex/httplex"
17)
18

FrozenDueToAge NeedsInvestigation

>๋ชจ๋“  ๋Œ“๊ธ€

์ž˜๋ชป๋œ ๋ฒ„๊ทธ์ž…๋‹ˆ๋‹ค. ๋‹ซ์•„์ฃผ์„ธ์š”.

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰