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); }