"Life is all about sharing. If we are good at something, pass it on." - Mary Berry

How to show all HTTP2 headers using tshark?

2020-05-05

After sniffing with tcpdump, how can I show all HTTP2 header using tshark?

First, find the frame number based on method:

$ tshark -r grpc.pcapng -Y 'http2.headers.path contains "getBook"'
214 923.033174    127.0.0.1 → 127.0.0.1    HTTP2 150 HEADERS[1]: POST /book.BookInfo/getBook

and then show the packet details:

tshark -r grpc.pcapng -Y "frame.number == 214" -V

HyperText Transfer Protocol 2
    Stream: HEADERS, Stream ID: 1, Length 85, POST /book.BookInfo/getBook
        Length: 85
        Type: HEADERS (1)
        Flags: 0x04
            .... ...0 = End Stream: False
            .... .1.. = End Headers: True
            .... 0... = Padded: False
            ..0. .... = Priority: False
            00.0 ..0. = Unused: 0x00
        0... .... .... .... .... .... .... .... = Reserved: 0x0
        .000 0000 0000 0000 0000 0000 0000 0001 = Stream Identifier: 1
        [Pad Length: 0]
        Header Block Fragment: 8386459162339faaf74e7eb92a94ec4c54dd39faff418b08…
        [Header Length: 216]
        [Header Count: 8]
        Header: :method: POST
            Name Length: 7
            Name: :method
            Value Length: 4
            Value: POST
            :method: POST
            [Unescaped: POST]
            Representation: Indexed Header Field
            Index: 3
        Header: :scheme: http
            Name Length: 7
            Name: :scheme
            Value Length: 4
            Value: http
            :scheme: http
            [Unescaped: http]
            Representation: Indexed Header Field
            Index: 6
        Header: :path: /book.BookInfo/getBook
            Name Length: 5
            Name: :path
            Value Length: 22
            Value: /book.BookInfo/getBook
            :path: /book.BookInfo/getBook
            [Unescaped: /book.BookInfo/getBook]
            Representation: Literal Header Field with Incremental Indexing - Indexed Name
            Index: 5
        Header: :authority: 127.0.0.1:50051
            Name Length: 10
            Name: :authority
            Value Length: 15
            Value: 127.0.0.1:50051
            :authority: 127.0.0.1:50051
            [Unescaped: 127.0.0.1:50051]
            Representation: Literal Header Field with Incremental Indexing - Indexed Name
            Index: 1
        Header: content-type: application/grpc
            Name Length: 12
            Name: content-type
            Value Length: 16
            Value: application/grpc
            content-type: application/grpc
            [Unescaped: application/grpc]
            Representation: Literal Header Field with Incremental Indexing - Indexed Name
            Index: 31
        Header: user-agent: grpc-go/1.24.0
            Name Length: 10
            Name: user-agent
            Value Length: 14
            Value: grpc-go/1.24.0
            user-agent: grpc-go/1.24.0
            [Unescaped: grpc-go/1.24.0]
            Representation: Literal Header Field with Incremental Indexing - Indexed Name
            Index: 58
        Header: te: trailers
            Name Length: 2
            Name: te
            Value Length: 8
            Value: trailers
            [Unescaped: trailers]
            Representation: Literal Header Field with Incremental Indexing - New Name
        Header: grpc-client: evans
            Name Length: 11
            Name: grpc-client
            Value Length: 5
            Value: evans
            [Unescaped: evans]
            Representation: Literal Header Field with Incremental Indexing - New Name

Read More...


brew info gets stuck

2020-04-25

I managed my Mac with SaltStack.

For some reasons, it gets stuck when running brew state:

[INFO    ] Executing command '/usr/local/bin/brew info --json=v1 --installed' as user 'quanta' in directory '/Users/quanta'

As usual, whenever you get a problem, let’s enable debug mode to see what happens:

brew info --json=v1 --installed -d

Now I can see that it stucked at drone/drone repo. By just untap this repo, and it’s solved.


Google Calendar CLI

2020-04-13

Our company allows us to work from home some days a week. To do that, we have to create an event in Google Calendar.

I created this tool to run it from CLI.

First, take a look at this quickstart.

Create initical code by running:

$ cobra init

$ tree -L 2
.
├── LICENSE
├── cmd
│   └── root.go
├── main.go

Create event command:

$ cobra add event
$ cobra add insert -p 'eventCmd'

$ tree -L 2
.
├── LICENSE
├── cmd
│   ├── event.go
│   ├── event_insert.go
│   └── root.go
├── main.go

Read More...


Kể tên 10 ứng dụng mà bạn muốn có

2020-04-12

  1. Tổng hợp các co-working spaces ở Hà Nội, gửi mail khi có khuyến mại
  2. Ước lượng thời gian đi từ A đến B, kết hợp với tình hình thời tiết xem có nên đi không
  3. Chia sẻ tài liệu, cách thực hành, … để cải thiện khả năng nghĩ ra các ý tưởng
  4. Tự động đặt lịch rửa xe nếu cả tuần tới không mưa
  5. Ứng dụng cho phép mọi người ghi lại những khó khăn trong công việc hàng ngày để người khác hoặc chính họ tìm cách giải quyết

Read More...


Đầu tư

2020-03-12

Goland free evaluation

Nghĩ nhiều khi cũng lạ.

Hãy nhớ:

Read More...


36 things I learned before turning 37

2020-01-20

  1. Đọc sách chưa biết bổ ngang dọc ở đâu nhưng góc nhìn rộng hơn, tính tình thuần hơn.


  2. Dành xèng để có những trải nghiệm bên người thân, bạn bè, … hình như vui lâu hơn mua thứ gì đó.


  3. Giữ một cái đầu mở thì sẽ học được nhiều thứ hơn.

  4. Cách tăng lương nhanh nhất có lẽ là… nhảy việc.


  5. Kể cả bạn không có ý định nhảy việc thì 2, 3 năm cũng nên thử đi phỏng vấn để biết xem mình đang yếu, thiếu gì và thị trường đang cần gì.


Read More...


Activities to be happy

2019-12-03


Đạm Thủy (Tamsui)

2019-11-28

Tamsui Taiwan Tamsui, Taiwan.

Đáp MRT từ suối nước nóng Beitou về không kịp.

Hoàng hôn đã tắt.

Đèn đã lên.

Chỗ thuê xe đạp đã đóng cửa.

Đành lang thang chợ đêm vậy.

Phượt thủ nhí vẫn đi băng băng. Mỗi ngày bạn ấy đi bộ khoảng 5, 6 km là chuyện bình thường. Tối về hơi kêu tí thôi 😛.

Google cho biết gần đây có một quán ăn mà lúc nhỏ một ca sĩ nổi tiếng của Đài Loan hay đến ăn. Vì thế, chủ quán đã dùng tên của anh để đặt cho phần ăn này (có lẽ từ đó mà quán này cũng nổi tiếng luôn 😃).

Read More...


Giải quyết 10 vấn đề khó khăn trong cuộc sống bằng thái độ biết ơn

2019-11-27

  1. Lạc đường khi đi chơi -> sau này nhớ lại mới có chuyện để nói chứ.
  2. Tắc đường khi đi làm về -> có thời gian để nghĩ về các ý tưởng.
  3. Làm việc ở nhà -> tiết kiệm thời gian đi trên đường.
  4. -> có thời gian đón con.
  5. -> đi ăn trưa cùng bạn bè.
  6. Thất nghiệp -> có cơ hội để học thứ gì đó.
  7. Phỏng vấn tạch -> biết kiến thức của mình còn hổng ở đâu.

Read More...


Những người tốt quanh ta

2019-11-01

Sun Yat-sen University On the way go to Sun Yat-sen university.

Xuống xe buýt.

Google Maps chỉ một đường, người dân chỉ đường khác.

Đang phân vân thì:

Bạn xuống xe, đi bộ cùng cả nhà. Vừa đi, vừa nói chuyện. Bạn học ĐHQG, đang làm TS toán tối ưu bên này. Bạn vừa dẫn đi vừa giới thiệu lịch sử, … Rồi còn chụp ảnh giúp.

Read More...