xref: /dragonfly/contrib/tcpdump/print-http.c (revision 59c07fbdf8168fa08c76c515186d561b5a92690c)
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 #ifdef HAVE_CONFIG_H
17 #include <config.h>
18 #endif
19 
20 #include "netdissect-stdinc.h"
21 
22 #include "netdissect.h"
23 
24 /*
25  * Includes WebDAV requests.
26  */
27 static const char *httpcmds[] = {
28           "GET",
29           "PUT",
30           "COPY",
31           "HEAD",
32           "LOCK",
33           "MOVE",
34           "POLL",
35           "POST",
36           "BCOPY",
37           "BMOVE",
38           "MKCOL",
39           "TRACE",
40           "LABEL",
41           "MERGE",
42           "DELETE",
43           "SEARCH",
44           "UNLOCK",
45           "REPORT",
46           "UPDATE",
47           "NOTIFY",
48           "BDELETE",
49           "CONNECT",
50           "OPTIONS",
51           "CHECKIN",
52           "PROPFIND",
53           "CHECKOUT",
54           "CCM_POST",
55           "SUBSCRIBE",
56           "PROPPATCH",
57           "BPROPFIND",
58           "BPROPPATCH",
59           "UNCHECKOUT",
60           "MKACTIVITY",
61           "MKWORKSPACE",
62           "UNSUBSCRIBE",
63           "RPC_CONNECT",
64           "VERSION-CONTROL",
65           "BASELINE-CONTROL",
66           NULL
67 };
68 
69 void
http_print(netdissect_options * ndo,const u_char * pptr,u_int len)70 http_print(netdissect_options *ndo, const u_char *pptr, u_int len)
71 {
72           ndo->ndo_protocol = "http";
73           txtproto_print(ndo, pptr, len, httpcmds, RESP_CODE_SECOND_TOKEN);
74 }
75