Example #1
0
char* EncodeResponse(int status, const char* serverName, const char* contentType, const char* content, size_t contentLen)
{
    char buf[PLAIN_TEXT_BUFLEN];

    size_t len = sprintf(buf, "HTTP/1.1 %d %s\r\n"
            "Server: %s\r\n"
            "Accept-Ranges: bytes\r\n"
            "Content-Length: %zu\r\n"
            "Vary: Accept-Encoding\r\n"
            "Content-Type: %s\r\n\r\n",
            status, StatusName(status),
            serverName,
            contentLen,
            contentType);

	char* response = malloc(len + contentLen + 3);

    strcpy(response, buf);
	memcpy(response + len, content, contentLen);

    response[len + contentLen] = '\r';
	response[len + contentLen + 1] = '\n';
	response[len + contentLen + 2] = 0;
    
    return response;
}
Example #2
0
const char*
Instruction::GetDescription() const
{
    static char desc[1024];

    switch (action) {
    case VECTOR:
        if (farcast)
        sprintf_s(desc, Game::GetText("instr.long.farcast").data(), rgn_name.data());
        else
        sprintf_s(desc, Game::GetText("instr.long.vector").data(), rgn_name.data());
        break;

    case LAUNCH:
        sprintf_s(desc, Game::GetText("instr.long.launch").data(), tgt_name.data());
        break;

    case DOCK:
        sprintf_s(desc, Game::GetText("instr.long.dock").data(), tgt_name.data());
        break;

    case RTB:
        sprintf_s(desc, Game::GetText("instr.long.return-to-base").data());
        break;

    case DEFEND:
        if (priority == PRIMARY) {
            sprintf_s(desc, Game::GetText("instr.long.defend").data(), ActionName(action), tgt_desc.data());
        }
        else {
            sprintf_s(desc, Game::GetText("instr.long.protect").data(), tgt_desc.data());
        }
        break;

    case ESCORT:
        if (priority == PRIMARY) {
            sprintf_s(desc, Game::GetText("instr.long.escort").data(), ActionName(action), tgt_desc.data());
        }
        else {
            sprintf_s(desc, Game::GetText("instr.long.protect").data(), tgt_desc.data());
        }
        break;

    case PATROL:
        sprintf_s(desc, Game::GetText("instr.long.patrol").data(),
        tgt_desc.data(),
        rgn_name.data());
        break;

    case SWEEP:
        sprintf_s(desc, Game::GetText("instr.long.sweep").data(),
        tgt_desc.data(),
        rgn_name.data());
        break;

    case INTERCEPT:
        sprintf_s(desc, Game::GetText("instr.long.intercept").data(), tgt_desc.data());
        break;

    case STRIKE:
        sprintf_s(desc, Game::GetText("instr.long.strike").data(), tgt_desc.data());
        break;

    case ASSAULT:
        sprintf_s(desc, Game::GetText("instr.long.assault").data(), tgt_desc.data());
        break;

    case RECON:
        sprintf_s(desc, Game::GetText("instr.long.recon").data(), tgt_desc.data());
        break;

    default:
        sprintf_s(desc, "%s", ActionName(action));
        break;
    }

    if (status != PENDING) {
        strcat_s(desc, " - ");
        strcat_s(desc, Game::GetText(StatusName(status)));
    }

    return desc;
}