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