Compare commits
11 Commits
feature_se
...
snyk-fix-1
Author | SHA1 | Date | |
---|---|---|---|
|
9433cdb40d | ||
|
6d490aec65 | ||
|
41f8f8553c | ||
|
bc1f8d0cfb | ||
|
a8e1bc89f0 | ||
|
5b5a480943 | ||
|
a190a214f1 | ||
|
54b7550e31 | ||
|
e4deeca506 | ||
|
365ad90adc | ||
|
2984880b6e |
3
.github/workflows/ci.yml
vendored
3
.github/workflows/ci.yml
vendored
@@ -41,8 +41,7 @@ jobs:
|
||||
run: cd build && cmake --build . --config Release
|
||||
- name: Build RPC (Debug)
|
||||
run: cd build && cmake --build . --config Debug
|
||||
|
||||
|
||||
|
||||
build-linux:
|
||||
runs-on: ${{ matrix.os }}
|
||||
strategy:
|
||||
|
29
.github/workflows/docker-ci.yml
vendored
Normal file
29
.github/workflows/docker-ci.yml
vendored
Normal file
@@ -0,0 +1,29 @@
|
||||
#*********************************************************************
|
||||
# Copyright (c) Intel Corporation 2020
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
#*********************************************************************/
|
||||
|
||||
name: Docker Image CI
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: [ master ]
|
||||
jobs:
|
||||
build:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- name: Build the Docker image
|
||||
run: docker build -f "Dockerfile" --tag vprodemo.azurecr.io/rpc:${{ github.sha }} --tag vprodemo.azurecr.io/rpc:latest .
|
||||
- name: Docker Login
|
||||
uses: docker/login-action@v1.6.0
|
||||
with:
|
||||
registry: vprodemo.azurecr.io
|
||||
username: ${{ secrets.DOCKER_USERNAME }}
|
||||
password: ${{ secrets.DOCKER_PASSWORD }}
|
||||
logout: true
|
||||
- name: Push the Docker image to the registry
|
||||
run: docker push vprodemo.azurecr.io/rpc:${{ github.sha }}
|
||||
- name: Push the Docker image to the registry
|
||||
run: docker push vprodemo.azurecr.io/rpc:latest
|
@@ -1,6 +1,6 @@
|
||||
cmake_minimum_required (VERSION 3.1)
|
||||
|
||||
project (rpc VERSION 1.1.0)
|
||||
project (rpc VERSION 1.2.0)
|
||||
|
||||
set (CMAKE_CXX_STANDARD 11)
|
||||
|
||||
@@ -98,6 +98,8 @@ add_executable (rpc
|
||||
commands.cpp
|
||||
activation.h
|
||||
activation.cpp
|
||||
heartbeat.h
|
||||
heartbeat.cpp
|
||||
lms.h
|
||||
lms.cpp
|
||||
main.cpp
|
||||
|
37
Dockerfile
Normal file
37
Dockerfile
Normal file
@@ -0,0 +1,37 @@
|
||||
#*********************************************************************
|
||||
# Copyright (c) Intel Corporation 2021
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
#*********************************************************************/
|
||||
|
||||
FROM ubuntu:groovy-20210325 AS rpc-builder
|
||||
|
||||
WORKDIR /
|
||||
ARG DEBIAN_FRONTEND=noninteractive
|
||||
RUN \
|
||||
apt-get update -y -qq && \
|
||||
apt install -y -qq \
|
||||
git cmake build-essential libssl-dev zlib1g-dev \
|
||||
curl unzip zip pkg-config
|
||||
RUN git clone https://github.com/open-amt-cloud-toolkit/rpc.git
|
||||
WORKDIR /rpc
|
||||
RUN mkdir -p build
|
||||
RUN git clone --branch 2020.11-1 https://github.com/microsoft/vcpkg.git
|
||||
RUN cd vcpkg && ./bootstrap-vcpkg.sh
|
||||
RUN ./vcpkg/vcpkg install cpprestsdk[websockets]
|
||||
|
||||
WORKDIR /rpc/build
|
||||
RUN cmake -DCMAKE_BUILD_TYPE=Debug -DCMAKE_TOOLCHAIN_FILE=/rpc/vcpkg/scripts/buildsystems/vcpkg.cmake ..
|
||||
RUN cmake --build .
|
||||
|
||||
FROM ubuntu:groovy-20210325
|
||||
|
||||
LABEL license='SPDX-License-Identifier: Apache-2.0' \
|
||||
copyright='Copyright (c) 2021: Intel'
|
||||
|
||||
WORKDIR /root
|
||||
RUN \
|
||||
apt-get update -y -qq && \
|
||||
apt install -y -qq \
|
||||
libssl-dev
|
||||
COPY --from=rpc-builder /rpc/build/rpc .
|
||||
ENTRYPOINT ["/root/rpc"]
|
@@ -236,7 +236,7 @@ bool act_create_request(std::string commands, std::string dns_suffix, std::strin
|
||||
utility::string_t tmp = utility::conversions::convertstring(commands);
|
||||
msg[U("method")] = web::json::value::string(tmp);
|
||||
|
||||
tmp = utility::conversions::convertstring("key");
|
||||
tmp = utility::conversions::convertstring("");
|
||||
msg[U("apiKey")] = web::json::value::string(tmp);
|
||||
|
||||
tmp = utility::conversions::convertstring(PROJECT_VER);
|
||||
@@ -245,10 +245,10 @@ bool act_create_request(std::string commands, std::string dns_suffix, std::strin
|
||||
tmp = utility::conversions::convertstring(PROTOCOL_VERSION);
|
||||
msg[U("protocolVersion")] = web::json::value::string(tmp);
|
||||
|
||||
tmp = utility::conversions::convertstring("ok");
|
||||
tmp = utility::conversions::convertstring("");
|
||||
msg[U("status")] = web::json::value::string(tmp);
|
||||
|
||||
tmp = utility::conversions::convertstring("ok");
|
||||
tmp = utility::conversions::convertstring("");
|
||||
msg[U("message")] = web::json::value::string(tmp);
|
||||
|
||||
// get the activation payload
|
||||
@@ -281,7 +281,7 @@ bool act_create_response(std::string payload, std::string& response)
|
||||
utility::string_t tmp = utility::conversions::convertstring("response");
|
||||
msg[U("method")] = web::json::value::string(tmp);
|
||||
|
||||
tmp = utility::conversions::convertstring("key");
|
||||
tmp = utility::conversions::convertstring("");
|
||||
msg[U("apiKey")] = web::json::value::string(tmp);
|
||||
|
||||
tmp = utility::conversions::convertstring(PROJECT_VER);
|
||||
@@ -290,10 +290,10 @@ bool act_create_response(std::string payload, std::string& response)
|
||||
tmp = utility::conversions::convertstring(PROTOCOL_VERSION);
|
||||
msg[U("protocolVersion")] = web::json::value::string(tmp);
|
||||
|
||||
tmp = utility::conversions::convertstring("ok");
|
||||
tmp = utility::conversions::convertstring("");
|
||||
msg[U("status")] = web::json::value::string(tmp);
|
||||
|
||||
tmp = utility::conversions::convertstring("ok");
|
||||
tmp = utility::conversions::convertstring("");
|
||||
msg[U("message")] = web::json::value::string(tmp);
|
||||
|
||||
tmp = utility::conversions::convertstring(util_encode_base64(payload));
|
||||
|
@@ -8,7 +8,7 @@
|
||||
|
||||
#include <string>
|
||||
|
||||
#define PROTOCOL_VERSION "3.0.0"
|
||||
#define PROTOCOL_VERSION "4.0.0"
|
||||
|
||||
#ifdef _WIN32
|
||||
#define convertstring to_utf16string
|
||||
|
48
heartbeat.cpp
Normal file
48
heartbeat.cpp
Normal file
@@ -0,0 +1,48 @@
|
||||
/*********************************************************************
|
||||
* Copyright (c) Intel Corporation 2019 - 2020
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
**********************************************************************/
|
||||
|
||||
#include "heartbeat.h"
|
||||
#include <cpprest/ws_client.h>
|
||||
#include <cpprest/json.h>
|
||||
#include <cpprest/streams.h>
|
||||
#include <iostream>
|
||||
#include <string>
|
||||
#include "activation.h"
|
||||
#include "version.h"
|
||||
#include "commands.h"
|
||||
#include "network.h"
|
||||
#include "utils.h"
|
||||
|
||||
bool heartbeat_create_response(std::string& response)
|
||||
{
|
||||
web::json::value msg;
|
||||
|
||||
utility::string_t tmp = utility::conversions::convertstring("heartbeat_response");
|
||||
msg[U("method")] = web::json::value::string(tmp);
|
||||
|
||||
tmp = utility::conversions::convertstring("");
|
||||
msg[U("apiKey")] = web::json::value::string(tmp);
|
||||
|
||||
tmp = utility::conversions::convertstring(PROJECT_VER);
|
||||
msg[U("appVersion")] = web::json::value::string(tmp);
|
||||
|
||||
tmp = utility::conversions::convertstring(PROTOCOL_VERSION);
|
||||
msg[U("protocolVersion")] = web::json::value::string(tmp);
|
||||
|
||||
tmp = utility::conversions::convertstring("success");
|
||||
msg[U("status")] = web::json::value::string(tmp);
|
||||
|
||||
tmp = utility::conversions::convertstring("");
|
||||
msg[U("message")] = web::json::value::string(tmp);
|
||||
|
||||
// set empty payload
|
||||
tmp = utility::conversions::convertstring("");
|
||||
msg[U("payload")] = web::json::value::string(tmp);
|
||||
|
||||
// serialize the entire message
|
||||
response = utility::conversions::to_utf8string(msg.serialize());
|
||||
|
||||
return true;
|
||||
}
|
13
heartbeat.h
Normal file
13
heartbeat.h
Normal file
@@ -0,0 +1,13 @@
|
||||
/*********************************************************************
|
||||
* Copyright (c) Intel Corporation 2019 - 2020
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
**********************************************************************/
|
||||
|
||||
#ifndef __HEARTBEAT_H__
|
||||
#define __HEARTBEAT_H__
|
||||
|
||||
#include <string>
|
||||
|
||||
bool heartbeat_create_response(std::string& response);
|
||||
|
||||
#endif
|
20
main.cpp
20
main.cpp
@@ -11,6 +11,7 @@
|
||||
#include "lms.h"
|
||||
#include "commands.h"
|
||||
#include "activation.h"
|
||||
#include "heartbeat.h"
|
||||
#include "utils.h"
|
||||
#include "usage.h"
|
||||
#include "args.h"
|
||||
@@ -246,10 +247,25 @@ int main(int argc, char* argv[])
|
||||
return;
|
||||
}
|
||||
|
||||
if (msgMethod.compare("heartbeat_request") == 0)
|
||||
{
|
||||
// create the response
|
||||
std::string response;
|
||||
if (!heartbeat_create_response(response)) return;
|
||||
|
||||
// send it
|
||||
web::websockets::client::websocket_outgoing_message send_websocket_msg;
|
||||
std::string send_websocket_buffer(response);
|
||||
send_websocket_msg.set_utf8_message(send_websocket_buffer);
|
||||
client.send(send_websocket_msg).wait();
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
// process any messages we can
|
||||
// - if success, done
|
||||
// - if error, get out
|
||||
if (msgMethod.compare("success")==0)
|
||||
if (msgStatus.compare("success")==0)
|
||||
{
|
||||
// cleanup
|
||||
g_timeout_val = 0;
|
||||
@@ -258,7 +274,7 @@ int main(int argc, char* argv[])
|
||||
std::cout << std::endl << msgMessage << std::endl;
|
||||
return;
|
||||
}
|
||||
else if (msgMethod.compare("error")==0)
|
||||
else if (msgStatus.compare("failed")==0)
|
||||
{
|
||||
// cleanup
|
||||
g_timeout_val = 0;
|
||||
|
Reference in New Issue
Block a user