| 139 | | |
|---|
| 140 | | |
|---|
| 141 | | |
|---|
| 142 | | logmsg(LOG_DEBUG, 1, "SubmitNebula - Compressing attack data.\n"); |
|---|
| 143 | | cbuf_len = attack->a_conn.payload.size + (attack->a_conn.payload.size * 0.0001) + 12; |
|---|
| 144 | | if ((cbuf = calloc(1, cbuf_len)) == NULL) { |
|---|
| 145 | | logmsg(LOG_ERR, 1, "SubmitNebula Error - Unable to allocate memory: %m.\n"); |
|---|
| 146 | | return(-1); |
|---|
| 147 | | } |
|---|
| 148 | | switch (compress(cbuf, (unsigned long *)&cbuf_len, attack->a_conn.payload.data, attack->a_conn.payload.size)) { |
|---|
| 149 | | case Z_OK: |
|---|
| 150 | | break; |
|---|
| 151 | | case Z_MEM_ERROR: |
|---|
| 152 | | logmsg(LOG_ERR, 1, "SubmitNebula Error - Cannot compress attack data: Out of memory.\n"); |
|---|
| 153 | | return(-1); |
|---|
| 154 | | case Z_BUF_ERROR: |
|---|
| 155 | | logmsg(LOG_ERR, 1, "SubmitNebula Error - Cannot compress attack data: Output buffer too small.\n"); |
|---|
| 156 | | return(-1); |
|---|
| 157 | | default: |
|---|
| 158 | | logmsg(LOG_ERR, 1, "SubmitNebula Error - Cannot compress attack data: Unknown error.\n"); |
|---|
| 159 | | return(-1); |
|---|
| 160 | | } |
|---|
| 161 | | logmsg(LOG_DEBUG, 1, "SubmitNebula - Compressed data has %u bytes.\n", cbuf_len); |
|---|
| | 226 | // compress attack |
|---|
| | 227 | logmsg(LOG_DEBUG, 1, "SubmitNebula - Compressing attack data.\n"); |
|---|
| | 228 | cbuf_len = attack->a_conn.payload.size + (attack->a_conn.payload.size * 0.002) + 12; |
|---|
| | 229 | if ((cbuf = calloc(1, cbuf_len)) == NULL) { |
|---|
| | 230 | logmsg(LOG_ERR, 1, "SubmitNebula Error - Unable to allocate memory: %m.\n"); |
|---|
| | 231 | return(-1); |
|---|
| | 232 | } |
|---|
| | 233 | switch (compress(cbuf, (unsigned long *)&cbuf_len, attack->a_conn.payload.data, attack->a_conn.payload.size)) { |
|---|
| | 234 | case Z_OK: |
|---|
| | 235 | break; |
|---|
| | 236 | case Z_MEM_ERROR: |
|---|
| | 237 | logmsg(LOG_ERR, 1, "SubmitNebula Error - Cannot compress attack data: Out of memory.\n"); |
|---|
| | 238 | return(-1); |
|---|
| | 239 | case Z_BUF_ERROR: |
|---|
| | 240 | logmsg(LOG_ERR, 1, "SubmitNebula Error - Cannot compress attack data: Output buffer too small.\n"); |
|---|
| | 241 | return(-1); |
|---|
| | 242 | default: |
|---|
| | 243 | logmsg(LOG_ERR, 1, "SubmitNebula Error - Cannot compress attack data: Unknown error.\n"); |
|---|
| | 244 | return(-1); |
|---|
| | 245 | } |
|---|
| | 246 | logmsg(LOG_DEBUG, 1, "SubmitNebula - Compressed data has %u bytes.\n", cbuf_len); |
|---|
| | 247 | |
|---|
| | 262 | // wait for OK |
|---|
| | 263 | logmsg(LOG_DEBUG, 1, "SubmitNebula - Attack sent, waiting for OK.\n"); |
|---|
| | 264 | if (!read_line(sock_fd, (char *) response, 8, 10)) { |
|---|
| | 265 | logmsg(LOG_WARN, 1, "SubmitNebula Warning - Nebula server did not respond within 10 seconds.\n"); |
|---|
| | 266 | } else if (strlen((char *) response) != 2 || strncmp((char *) response, "OK", 2) != 0) |
|---|
| | 267 | logmsg(LOG_WARN, 1, "SubmitNebula - Invalid response from Nebula server.\n"); |
|---|
| | 268 | |
|---|