xref: /aosp_15_r20/external/tcpdump/print-http.c (revision 05b00f6010a2396e3db2409989fc67270046269f)
1*05b00f60SXin Li /*
2*05b00f60SXin Li  * Redistribution and use in source and binary forms, with or without
3*05b00f60SXin Li  * modification, are permitted provided that: (1) source code
4*05b00f60SXin Li  * distributions retain the above copyright notice and this paragraph
5*05b00f60SXin Li  * in its entirety, and (2) distributions including binary code include
6*05b00f60SXin Li  * the above copyright notice and this paragraph in its entirety in
7*05b00f60SXin Li  * the documentation or other materials provided with the distribution.
8*05b00f60SXin Li  * THIS SOFTWARE IS PROVIDED ``AS IS'' AND
9*05b00f60SXin Li  * WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, WITHOUT
10*05b00f60SXin Li  * LIMITATION, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
11*05b00f60SXin Li  * FOR A PARTICULAR PURPOSE.
12*05b00f60SXin Li  */
13*05b00f60SXin Li 
14*05b00f60SXin Li /* \summary: Hypertext Transfer Protocol (HTTP) printer */
15*05b00f60SXin Li 
16*05b00f60SXin Li #ifdef HAVE_CONFIG_H
17*05b00f60SXin Li #include <config.h>
18*05b00f60SXin Li #endif
19*05b00f60SXin Li 
20*05b00f60SXin Li #include "netdissect-stdinc.h"
21*05b00f60SXin Li 
22*05b00f60SXin Li #include "netdissect.h"
23*05b00f60SXin Li 
24*05b00f60SXin Li /*
25*05b00f60SXin Li  * Includes WebDAV requests.
26*05b00f60SXin Li  */
27*05b00f60SXin Li static const char *httpcmds[] = {
28*05b00f60SXin Li 	"GET",
29*05b00f60SXin Li 	"PUT",
30*05b00f60SXin Li 	"COPY",
31*05b00f60SXin Li 	"HEAD",
32*05b00f60SXin Li 	"LOCK",
33*05b00f60SXin Li 	"MOVE",
34*05b00f60SXin Li 	"POLL",
35*05b00f60SXin Li 	"POST",
36*05b00f60SXin Li 	"BCOPY",
37*05b00f60SXin Li 	"BMOVE",
38*05b00f60SXin Li 	"MKCOL",
39*05b00f60SXin Li 	"TRACE",
40*05b00f60SXin Li 	"LABEL",
41*05b00f60SXin Li 	"MERGE",
42*05b00f60SXin Li 	"DELETE",
43*05b00f60SXin Li 	"SEARCH",
44*05b00f60SXin Li 	"UNLOCK",
45*05b00f60SXin Li 	"REPORT",
46*05b00f60SXin Li 	"UPDATE",
47*05b00f60SXin Li 	"NOTIFY",
48*05b00f60SXin Li 	"BDELETE",
49*05b00f60SXin Li 	"CONNECT",
50*05b00f60SXin Li 	"OPTIONS",
51*05b00f60SXin Li 	"CHECKIN",
52*05b00f60SXin Li 	"PROPFIND",
53*05b00f60SXin Li 	"CHECKOUT",
54*05b00f60SXin Li 	"CCM_POST",
55*05b00f60SXin Li 	"SUBSCRIBE",
56*05b00f60SXin Li 	"PROPPATCH",
57*05b00f60SXin Li 	"BPROPFIND",
58*05b00f60SXin Li 	"BPROPPATCH",
59*05b00f60SXin Li 	"UNCHECKOUT",
60*05b00f60SXin Li 	"MKACTIVITY",
61*05b00f60SXin Li 	"MKWORKSPACE",
62*05b00f60SXin Li 	"UNSUBSCRIBE",
63*05b00f60SXin Li 	"RPC_CONNECT",
64*05b00f60SXin Li 	"VERSION-CONTROL",
65*05b00f60SXin Li 	"BASELINE-CONTROL",
66*05b00f60SXin Li 	NULL
67*05b00f60SXin Li };
68*05b00f60SXin Li 
69*05b00f60SXin Li void
http_print(netdissect_options * ndo,const u_char * pptr,u_int len)70*05b00f60SXin Li http_print(netdissect_options *ndo, const u_char *pptr, u_int len)
71*05b00f60SXin Li {
72*05b00f60SXin Li 	ndo->ndo_protocol = "http";
73*05b00f60SXin Li 	txtproto_print(ndo, pptr, len, httpcmds, RESP_CODE_SECOND_TOKEN);
74*05b00f60SXin Li }
75