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