Exemple #1
0
nsresult
nsEnigMsgCompose::MakeBoundary(const char *prefix)
{
  DEBUG_LOG(("nsEnigMsgCompose::MakeBoundary:\n"));

  nsresult rv;

  if (!mRandomSeeded) {
    PRUint32 ranTime = 1;

    rv = GetRandomTime(&ranTime);
    if (NS_FAILED(rv))
      return rv;

    srand( ranTime );
    mRandomSeeded = PR_TRUE;
  }


  unsigned char ch[13];
  for( PRUint32 j = 0; j < 12; j++)
    ch[j] = rand() % 256;

  char* boundary = PR_smprintf("------------%s"
           "%02X%02X%02X%02X"
           "%02X%02X%02X%02X"
           "%02X%02X%02X%02X",
           prefix,
           ch[0], ch[1], ch[2], ch[3],
           ch[4], ch[5], ch[6], ch[7],
           ch[8], ch[9], ch[10], ch[11]);

  if (!boundary)
    return NS_ERROR_OUT_OF_MEMORY;

  DEBUG_LOG(("nsEnigMsgCompose::MakeBoundary: boundary='%s'\n",
         boundary));


  mBoundary = boundary;

  PR_Free(boundary);

  return NS_OK;
}
/*******************************************************************************
函 数 名:	Upload_Idle
功能说明: 	空闲时间,设备属性状态上报,防止死机
参	  数: 	无
返 回 值:	无
注    意:	1h-2h 离散度1s-3600s
*******************************************************************************/
void Upload_Idle(void)
{
	u32 time = 3600000 + (GetRandomTime()%3600)*1000;
	Thread_Login(ONCEDELAY , 0, time, &Upload_Attr);
}