Line data Source code
1 : #include "burp.h"
2 : #include "cmd.h"
3 :
4 0 : static char *cmd_to_text(enum cmd cmd)
5 : {
6 : static char buf[256];
7 0 : size_t len=sizeof(buf);
8 0 : *buf='\0';
9 0 : switch(cmd)
10 : {
11 : case CMD_ATTRIBS:
12 0 : snprintf(buf, len, "File attribute information"); break;
13 : case CMD_ATTRIBS_SIGS:
14 0 : snprintf(buf, len, "File attribute information preceding block signatures"); break;
15 : case CMD_SIG:
16 0 : snprintf(buf, len, "Block signature"); break;
17 : case CMD_DATA_REQ:
18 0 : snprintf(buf, len, "Request for block of data"); break;
19 : case CMD_DATA:
20 0 : snprintf(buf, len, "Block data"); break;
21 : case CMD_WRAP_UP:
22 0 : snprintf(buf, len, "Control packet"); break;
23 : case CMD_FILE:
24 0 : snprintf(buf, len, "Plain file"); break;
25 : case CMD_ENC_FILE:
26 0 : snprintf(buf, len, "Encrypted file"); break;
27 : case CMD_DIRECTORY:
28 0 : snprintf(buf, len, "Directory"); break;
29 : case CMD_SOFT_LINK:
30 0 : snprintf(buf, len, "Soft link"); break;
31 : case CMD_HARD_LINK:
32 0 : snprintf(buf, len, "Hard link"); break;
33 : case CMD_SPECIAL:
34 0 : snprintf(buf, len, "Special file - fifo, socket, device node"); break;
35 : case CMD_METADATA:
36 0 : snprintf(buf, len, "Extra meta data"); break;
37 : case CMD_GEN:
38 0 : snprintf(buf, len, "Generic command"); break;
39 : case CMD_ERROR:
40 0 : snprintf(buf, len, "Error message"); break;
41 : case CMD_APPEND:
42 0 : snprintf(buf, len, "Append to a file"); break;
43 : case CMD_INTERRUPT:
44 0 : snprintf(buf, len, "Interrupt"); break;
45 : case CMD_MESSAGE:
46 0 : snprintf(buf, len, "Message"); break;
47 : case CMD_WARNING:
48 0 : snprintf(buf, len, "Warning"); break;
49 : case CMD_END_FILE:
50 0 : snprintf(buf, len, "End of file transmission"); break;
51 : case CMD_ENC_METADATA:
52 0 : snprintf(buf, len, "Encrypted meta data"); break;
53 : case CMD_EFS_FILE:
54 0 : snprintf(buf, len, "Windows EFS file"); break;
55 : case CMD_FILE_CHANGED:
56 0 : snprintf(buf, len, "Plain file changed"); break;
57 : case CMD_TIMESTAMP:
58 0 : snprintf(buf, len, "Backup timestamp"); break;
59 : case CMD_TIMESTAMP_END:
60 0 : snprintf(buf, len, "Timestamp now/end"); break;
61 : case CMD_MANIFEST:
62 0 : snprintf(buf, len, "Path to a manifest"); break;
63 : case CMD_FINGERPRINT:
64 0 : snprintf(buf, len, "Fingerprint part of a signature"); break;
65 : case CMD_SAVE_PATH:
66 0 : snprintf(buf, len, "Save path part of a signature"); break;
67 :
68 : // For the status server/client */
69 :
70 : case CMD_TOTAL:
71 0 : snprintf(buf, len, "Total counter"); break;
72 : case CMD_GRAND_TOTAL:
73 0 : snprintf(buf, len, "Grand total counter"); break;
74 : case CMD_BYTES_ESTIMATED:
75 0 : snprintf(buf, len, "Bytes estimated"); break;
76 : case CMD_BYTES:
77 0 : snprintf(buf, len, "Bytes"); break;
78 : case CMD_BYTES_RECV:
79 0 : snprintf(buf, len, "Bytes received"); break;
80 : case CMD_BYTES_SENT:
81 0 : snprintf(buf, len, "Bytes sent"); break;
82 :
83 : // Protocol1 only.
84 : case CMD_DATAPTH:
85 0 : snprintf(buf, len, "Path to data on the server"); break;
86 : case CMD_VSS:
87 0 : snprintf(buf, len, "Windows VSS header"); break;
88 : case CMD_ENC_VSS:
89 0 : snprintf(buf, len, "Encrypted windows VSS header"); break;
90 : case CMD_VSS_T:
91 0 : snprintf(buf, len, "Windows VSS footer"); break;
92 : case CMD_ENC_VSS_T:
93 0 : snprintf(buf, len, "Encrypted windows VSS footer"); break;
94 : // No default so that we get compiler warnings when we forget
95 : // to add new ones here.
96 : }
97 0 : if(!*buf) snprintf(buf, len, "----------------");
98 0 : return buf;
99 : }
100 :
101 0 : void cmd_print_all(void)
102 : {
103 0 : int i=0;
104 0 : char cmds[256]="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
105 0 : printf("\nIndex of symbols\n\n");
106 0 : for(i=0; cmds[i]; i++)
107 0 : printf(" %c: %s\n", cmds[i], cmd_to_text((enum cmd)cmds[i]));
108 0 : printf("\n");
109 0 : }
110 :
111 58464 : int cmd_is_filedata(enum cmd cmd)
112 : {
113 : return cmd==CMD_FILE
114 32018 : || cmd==CMD_ENC_FILE
115 11118 : || cmd==CMD_METADATA
116 10923 : || cmd==CMD_ENC_METADATA
117 69192 : || cmd==CMD_EFS_FILE;
118 : }
119 :
120 10920 : int cmd_is_vssdata(enum cmd cmd)
121 : {
122 : return cmd==CMD_VSS
123 10695 : || cmd==CMD_ENC_VSS
124 10470 : || cmd==CMD_VSS_T
125 21283 : || cmd==CMD_ENC_VSS_T;
126 : }
127 :
128 29322 : int cmd_is_link(enum cmd cmd)
129 : {
130 29322 : return cmd==CMD_SOFT_LINK || cmd==CMD_HARD_LINK;
131 : }
132 :
133 256 : int cmd_is_endfile(enum cmd cmd)
134 : {
135 256 : return cmd==CMD_END_FILE;
136 : }
137 :
138 256 : int cmd_is_encrypted(enum cmd cmd)
139 : {
140 : return cmd==CMD_ENC_FILE
141 255 : || cmd==CMD_ENC_METADATA
142 254 : || cmd==CMD_ENC_VSS
143 253 : || cmd==CMD_ENC_VSS_T
144 508 : || cmd==CMD_EFS_FILE;
145 : }
146 :
147 256 : int cmd_is_metadata(enum cmd cmd)
148 : {
149 256 : return cmd_is_vssdata(cmd)
150 252 : || cmd==CMD_METADATA
151 507 : || cmd==CMD_ENC_METADATA;
152 : }
|