コード例 #1
0
ファイル: apiclient.cpp プロジェクト: heyLinsir/railgun
void ApiClient::report(HwScore const& score)
{
  // Construct the post data
  std::ostringstream oss;
  score.writeJson(&oss);
  AESCipher aes(commKey_);
  std::string cipher = aes.encrypt(oss.str());

  // Construct post action
  char action[128];
  std::string uuid_s;
  UnicodetoUTF8(score.uuid, &uuid_s);
  snprintf(action, sizeof(action), "/handin/report/%s/", uuid_s.c_str());

  // Do post
  std::string result = doPOST(action, cipher);
  if (result != "OK") {
    char exmsg[256];
    snprintf(exmsg, sizeof(exmsg), "Save result failed for handin(%s): %s.",
             uuid_s.c_str(), result.c_str());
    throw std::runtime_error(exmsg);
  }
}
コード例 #2
0
ファイル: blueutils.cpp プロジェクト: B1gSmoke/autotools
string blue_utils_get_msg_content(const string& str,int sig)
{
    if(sig  == 4)
    {
        if(str.substr(2,4).compare("0500") == 0)
        {
            string content;
            size_t msg_length = blue_utils_number_to10(str.substr(0,2));

            if(str.length()>msg_length+2)
            {
                string msg = str.substr(14,msg_length*2+2);

                unsigned char ch[CHINA_SET_MAX], *p = NULL, *e = NULL;

                for(int i=0; i<msg.length(); i+=4)
                {
                    int x = blue_utils_unicode_int(strdup(msg.substr(i,4).c_str()));
                    memset((char *)ch, 0, CHINA_SET_MAX);

                    e = UnicodetoUTF8(x,ch);
                    content+=(const char *)ch;
                }
                return content;
            }

        }
        else
        {
            string content;

            size_t msg_length = blue_utils_number_to10(str.substr(0,2));

            if(str.length()>msg_length+2)
            {
                string msg = str.substr(2,msg_length*2+2);

                unsigned char ch[CHINA_SET_MAX], *p = NULL, *e = NULL;

                for(int i=0; i<msg.length(); i+=4)
                {
                    int x = blue_utils_unicode_int(strdup(msg.substr(i,4).c_str()));
                    memset((char *)ch, 0, CHINA_SET_MAX);

                    e = UnicodetoUTF8(x,ch);
                    content+=(const char *)ch;
                }

                return content;

            }

        }
    }
    else
    {
        if(str.substr(2,4).compare("0500") == 0)
        {
            string content;
            size_t msg_length = blue_utils_number_to10(str.substr(0,2));

            if(str.length()>msg_length+2)
            {
                string msg = str.substr(14,msg_length*2+2);	

				char out[512];
				char *dest=(char *)PDU_7BIT_Decoding(out,strdup(msg.c_str()));
				
				content+=out;

                return content;
            }
        }
        else
        {
            string content;

            size_t msg_length = blue_utils_number_to10(str.substr(0,2));

            cout<<msg_length<<endl;

            if(str.length()>msg_length+2)
            {
                string msg = str.substr(2,msg_length*2+2);
                char out[512];

                char *dest=(char *)PDU_7BIT_Decoding(out,strdup(msg.c_str()));

                content+=out;

                return content;

            }
        }
    }

    return "test";
}
コード例 #3
0
ファイル: blueutils.cpp プロジェクト: B1gSmoke/autotools
char *blue_utils_get_msg_content(const char *str,int arg)
{
    if(4 == arg )
    {

//		printf("str12=%s\n",str);

        unsigned char ch[CHINA_SET_MAX], *p = NULL, *e = NULL;

        char *msg = (char *)malloc(sizeof(char *)*512);
        memset(msg,'\0',strlen(msg));

        char mark[5];

        mark[0] = str[2];
        mark[1] = str[3];
        mark[2] = str[4];
        mark[3] = str[5];
        mark[4]='\0';

        if(strcmp(mark,"0500") ==0 )
        {   char tmp[3];

            tmp[0] = str[0];
            tmp[1] = str[1];
            tmp[2] = '\0';

            int size = blue_utils_number_to10(strdup(tmp));

            int length = size*2+2;

            char *str1 = (char *)malloc(sizeof(char *)*512);
            memset(str1,'\0',strlen(str1));

            int i = 14;
            int j=0;

            for(i=14; i<length; i++)
            {
                str1[j] = str[i];
                j++;
            }

            str1[j] = '\0';

            i=0;
            while(str1[i] !='\0')
            {
                char tmp[5];

                tmp[0] = str1[i];
                tmp[1] = str1[i+1];
                tmp[2] = str1[i+2];
                tmp[3] = str1[i+3];
                tmp[4] = '\0';

                int x = blue_utils_unicode_int(strdup(tmp));

                memset((char *)ch, 0, CHINA_SET_MAX);

                /* if(e = (UnicodetoUTF8(x, ch)) > ch)
                 {
                     e = '\0';
                 }
                */

                e = UnicodetoUTF8(x,ch);


                strcat(msg,(const char *)ch);

                i+=4;
            }

            char *message = strdup(msg);

            free(msg);
            msg = NULL;

            free(str1);
            str1 = NULL;

            return message;

        }
        else
        {

            char tmp[3];

            tmp[0] = str[0];
            tmp[1] = str[1];
            tmp[2] = '\0';

//            printf("tmp = %s\n",tmp);
            int size = blue_utils_number_to10(strdup(tmp));

            int length = size*2+2;
            //          printf("size=%d\n",size*2);

            char *str1 = (char *)malloc(sizeof(char *)*512);
            memset(str1,'\0',strlen(str1));

            int i = 2;
            int j=0;

            for(i=2; i<length; i++)
            {
                str1[j] = str[i];
                j++;
            }

            str1[j] = '\0';

            i=0;
            while(str1[i] !='\0')
            {
                char tmp[5];

                tmp[0] = str1[i];
                tmp[1] = str1[i+1];
                tmp[2] = str1[i+2];
                tmp[3] = str1[i+3];
                tmp[4] = '\0';

                int x = blue_utils_unicode_int(strdup(tmp));

                memset((char *)ch, 0, CHINA_SET_MAX);

                /*if(e = (UnicodetoUTF8(x, ch)) > ch)
                {
                    e = '\0';
                }*/
                e = UnicodetoUTF8(x,ch);

                strcat(msg,(const char*)ch);

                i+=4;
            }

            char *message = strdup(msg);

            free(msg);
            msg = NULL;

            free(str1);
            str1 = NULL;

            return message;
        }
    }
    else
    {
        unsigned char ch[CHINA_SET_MAX], *p = NULL, *e = NULL;

        char *msg = (char *)malloc(sizeof(char *)*512);
        memset(msg,'\0',strlen(msg));

        char mark[5];

        mark[0] = str[2];
        mark[1] = str[3];
        mark[2] = str[4];
        mark[3] = str[5];
        mark[4]='\0';

        printf("************str = %s\n",str);

        if(strcmp(mark,"0500") ==0 )
        {
            char tmp[3];
            tmp[0] = str[0];
            tmp[1] = str[1];
            tmp[2] = '\0';

            int size = blue_utils_number_to10(strdup(tmp));

            int length = size*2+2;
            printf("size=%d\n",size*2);

            char *str1 = (char *)malloc(sizeof(char *)*512);
            memset(str1,'\0',strlen(str1));

            int i = 16;
            int j=0;

            for(i=16; i<length; i++)
            {
                str1[j] = str[i];
                j++;
            }

            str1[j] = '\0';

            printf("str1 = %s\n",str1);

            char out[512];

            char *msg1=(char*)PDU_7BIT_Decoding(out,strdup(str1));

            printf("msg = %s\n",out);

            free(str1);
            str1 = NULL;

            return strdup(out);

        }
        else
        {
            char tmp[3];
            tmp[0] = str[0];
            tmp[1] = str[1];
            tmp[2] = '\0';


            int size = blue_utils_number_to10(strdup(tmp));

            printf("size = %d\n",size);

            int length = size*2+2;

            char *str1 = (char *)malloc(sizeof(char *)*512);
            memset(str1,'\0',strlen(str1));

            int i = 2;
            int j=0;

            for(i=2; i<length; i++)
            {
                str1[j] = str[i];
                j++;
            }

            str1[j] = '\0';

            printf("str1 = %s\n",str1);

            char out[512];

            char *msg1=(char *)PDU_7BIT_Decoding(out,strdup(str1));

            printf("msg = %s\n",out);

            free(str1);
            str1 = NULL;

            return strdup(out);

        }

    }
}