/* ** This function verify that the last SQL error number was -39100 and that the ** error text starts with the E_GC0132 text, to return a additional ** warning to explain why the "register as link" command failed. ** ** Input parameters ** csDestNodeName : ** csCurrentNodeName : ** ** return value ** The additional warning or Empty string. */ CString VerifyStarSqlError(LPCTSTR csDestNodeName, LPCTSTR csCurrentNodeName) { TCHAR *szErrNo132 = _T("E_GC0132"); LPSQLERRORINFO lpsqlErrInfo; CString csTemp; csTemp.Empty(); lpsqlErrInfo = GetNewestSqlError(); if (lpsqlErrInfo && lpsqlErrInfo->sqlcode == -39100L && x_strncmp((LPTSTR)lpsqlErrInfo->lpSqlErrTxt,szErrNo132,lstrlen(szErrNo132)) == 0) { csTemp.Format(IDS_E_VNODE_NOT_DEFINE,(LPCTSTR)csDestNodeName, (IsLocalNodeName((const char*)csCurrentNodeName, FALSE) ? (LPCTSTR)GetLocalHostName():(LPCTSTR)csCurrentNodeName)); } return csTemp; }
void CxDlgCheckPointLst::fillListCtrl() { if (m_csCurDBName.IsEmpty() || m_csCurDBOwner.IsEmpty() || m_csCurVnodeName.IsEmpty()) return; m_CaCheckPointList.m_csDB_Name = m_csCurDBName; m_CaCheckPointList.m_csDB_Owner = m_csCurDBOwner; m_CaCheckPointList.m_csVnode_Name = m_csCurVnodeName; m_CaCheckPointList.RetrieveCheckPointList(); CaCheckPoint* pCheckPt = NULL; POSITION pos = m_CaCheckPointList.GetCheckPointList().GetHeadPosition(); int index, nCount=m_cListCtrl.GetItemCount(); while (pos != NULL) { pCheckPt = m_CaCheckPointList.GetCheckPointList().GetNext (pos); if (pCheckPt) { index = m_cListCtrl.InsertItem(nCount,pCheckPt->GetDate()); m_cListCtrl.SetItemText (index, 1, pCheckPt->GetCheckSequence()); m_cListCtrl.SetItemText (index, 2, pCheckPt->GetFirstJnl()); m_cListCtrl.SetItemText (index, 3, pCheckPt->GetLastJnl()); if (x_strncmp(pCheckPt->GetValid(),_T("1"),1) == 0) m_cListCtrl.SetCheck(index, 4,TRUE); else m_cListCtrl.SetCheck(index, 4,FALSE); m_cListCtrl.SetItemText (index, 5, pCheckPt->GetMode()); if ( m_csCurrentSelectedCheckPoint == pCheckPt->GetCheckSequence()) { m_cListCtrl.SetItemState(index,LVIS_SELECTED|LVIS_FOCUSED, LVIS_SELECTED|LVIS_FOCUSED); m_cListCtrl.EnsureVisible( index, FALSE ); } nCount++; } } }
int protocol_parse(tcp_request_t *r, u_char *start, u_char *end) { size_t data_len; u_char c, *p; protocol_t *pro; pro = r->protocol; enum { sw_start = 0, sw_type, sw_type_cr, sw_type_lf, sw_headers, sw_headers_cr, sw_headers_lf, sw_data_len, sw_data_len_cr, sw_data_len_lf, sw_data } state; state = pro->state; data_len = pro->tmp_data_len; for (p = start; p != end; p++) { c = *p; switch (state) { case sw_start: if (is_blank(c)) { break; } if (c < 'A' || c > 'Z') { return err_type_invalid; } pro->start = p; state = sw_type; break; case sw_type: if (c == CR) { pro->end = p; state = sw_type_cr; break; } if (c < 'A' || c > 'Z') { return err_type_invalid; } break; case sw_type_cr: if (c != LF) { return err_only_cr; } switch (pro->end - pro->start) { case 3: if (x_strncmp(pro->start, PUT, 3) == 0) { pro->type = PUT_T; break; } if (x_strncmp(pro->start, GET, 3) == 0) { pro->type = GET_T; break; } return err_type_not_found; case 4: if (x_strncmp(pro->start, LIST, 4) == 0) { pro->type = LIST_T; break; } return err_type_not_found; case 5: if (x_strncmp(pro->start, QUEUE, 5) == 0) { pro->type = QUEUE_T; break; } return err_type_not_found; default: return err_type_not_found; } state = sw_type_lf; break; case sw_type_lf: if (c == CR) { state = sw_headers_cr; break; } if (!is_letter(c) && !is_digit(c) && c != ';' && c != '_' && c != '=') { return err_headers_invalid; } pro->headers_start = p; state = sw_headers; break; case sw_headers: if (c == CR) { pro->headers_end = p; state = sw_headers_cr; break; } if (!is_letter(c) && !is_digit(c) && c != ';' && c != '_' && c != '=') { return err_headers_invalid; } break; case sw_headers_cr: if (c != LF) { return PROTOCOL_ERROR; } state = sw_headers_lf; break; case sw_headers_lf: if (pro->type != PUT_T) { return err_needless_data; } else { if (!is_digit(c)) { return err_data_len_invalid; } pro->start = p; state = sw_data_len; break; } case sw_data_len: if (c == CR) { pro->end = p; state = sw_data_len_cr; break; } if (!is_digit(c)) { return err_data_len_invalid; } break; case sw_data_len_cr: if (c != LF) { return err_only_cr; } *(p - 1) = '\0'; data_len = x_atoi(pro->start); pro->data_len = data_len; *(p - 1) = '\0'; if (data_len <= 0) { return err_data_len_invalid; } state = sw_data_len_lf; break; case sw_data_len_lf: pro->data_start_buf = r->last_buffer; pro->data_start = p; data_len--; state = sw_data; break; case sw_data: if (data_len-- == 0) { return err_needless_data; } break; } } if (pro->type != UNKNOW && pro->type != PUT_T && state == sw_headers_lf) { return PROTOCOL_DONE; } if (pro->type == PUT_T && state == sw_data && data_len == 0) { pro->data_end = p; return PROTOCOL_DONE; } pro->state = state; pro->tmp_data_len = data_len; return PROTOCOL_OK; }
/**************************************************************************** Function : CLI_Parser Description : CLI Parer main function *****************************************************************************/ INT32 CLI_PromptParser(const char *szCmdBuf) { INT32 i4ReturnValue; INT32 i4Argc; UINT32 u4Argc,i; UINT32 u4InCmdLen; char* aszTemp[CLI_MAX_ARGU]; char buf[200]; if (szCmdBuf == NULL) { return CLI_UNKNOWN_CMD; } // prepare argument for (u4InCmdLen = 0; u4InCmdLen < CLI_MAX_ARGU; u4InCmdLen++) { aszTemp[u4InCmdLen] = _aszArgv[u4InCmdLen]; } i4Argc = _CliStringParser(szCmdBuf, CLI_MAX_ARGU, CLI_MAX_ARGU_LEN, aszTemp); u4Argc = (UINT32) i4Argc; cli_print("argc=%d, ", (int)u4Argc); for(i=0;i<u4Argc;i++){ cli_print("argv(%d)=%s ",(int)i,aszTemp[i]); } cli_print("\r\n"); if (u4Argc > 0) { #if 0 //do not porting alias related code // alias handle, replace alias with corresponding string u4InCmdLen = strlen(aszTemp[0]); u4CmdLen = strlen(CLI_ALIAS_CMD_STR); u4CmdAbbrLen = strlen(CLI_ALIAS_CMD_ABBR_STR); if (!(((u4InCmdLen == u4CmdLen) && (x_strncmp(aszTemp[0], CLI_ALIAS_CMD_STR, u4InCmdLen) == 0)) || ((u4InCmdLen == u4CmdAbbrLen) && (x_strncmp(aszTemp[0], CLI_ALIAS_CMD_ABBR_STR, u4InCmdLen) == 0)))) { UINT32 u4Idx; u4Idx = 0; while (u4Idx < u4Argc) { pszAliasString = CLI_AliasCompare(aszTemp[u4Idx]); if (pszAliasString) { UINT32 u4AliasIdx; UINT32 u4AliasArgc; CHAR* aszAliasTemp[CLI_MAX_ARGU]; // prepare alias argument for (u4AliasIdx = 0; u4AliasIdx < CLI_MAX_ARGU; u4AliasIdx++) { aszAliasTemp[u4AliasIdx] = _aszAliasArgv[u4AliasIdx]; } u4AliasArgc = (UINT32) _CliStringParser(pszAliasString, CLI_MAX_ARGU, CLI_MAX_ARGU_LEN, aszAliasTemp); // too many argument after alias parser if (u4AliasArgc > (CLI_MAX_ARGU - (u4Argc + 1))) { u4AliasArgc = CLI_MAX_ARGU - (u4Argc + 1); } // move back string argument after alias for (u4AliasIdx = (u4Argc - 1); u4AliasIdx > u4Idx; u4AliasIdx--) { VERIFY(x_strncpy(aszTemp[u4AliasIdx + (u4AliasArgc - 1)], aszTemp[u4AliasIdx], CLI_MAX_ARGU_LEN) == aszTemp[u4AliasIdx + (u4AliasArgc - 1)]); } // copy alias string arguemnt for (u4AliasIdx = 0; u4AliasIdx < u4AliasArgc; u4AliasIdx++) { VERIFY(x_strncpy(aszTemp[u4Idx+u4AliasIdx], aszAliasTemp[u4AliasIdx], CLI_MAX_ARGU_LEN) == aszTemp[u4Idx+u4AliasIdx]); } u4Argc += (u4AliasArgc - 1); u4Idx--; } u4Idx++; } } #endif i4Argc = (INT32) u4Argc; // command parsing, for all other user command table if (i4Argc > 0) { //IOCTL_WRITE command string #if 1 //command _CliGeneratePrompt(); strcpy(buf, _szCliPromptStr); strcat(buf, _aszArgv[0]); //arguments for (i = 1; i < u4Argc; i++) { strcat(buf, " "); strcat(buf, _aszArgv[i]); } strcat(buf, "\0"); #endif if (_prCurrentCmdTbl == NULL) // root { UINT32 u4Idx; for (u4Idx = (CLI_MANDA_CMD_TBL_IDX + 1); u4Idx < _u4CmdTblNum; u4Idx++) { i4ReturnValue = _CliCmdParser(i4Argc, (const CHAR**)aszTemp, _aprCmdTblBuf[u4Idx], 0); if (i4ReturnValue != CLI_UNKNOWN_CMD) { //IOCTL_WRITE command when arguments are valid i4ReturnValue = write_cmd(buf); return i4ReturnValue; } } } else // sub-directory { i4ReturnValue = _CliCmdParser(i4Argc, (const CHAR**)aszTemp, _prCurrentCmdTbl, 0); if (i4ReturnValue != CLI_UNKNOWN_CMD) { //IOCTL_WRITE command when arguments are valid i4ReturnValue = write_cmd(buf); return i4ReturnValue; } } } // command parsing, mandatory table i4ReturnValue = _CliCmdParser(i4Argc, (const CHAR**)aszTemp, (CLI_EXEC_T *)_arMandatoryCmdTbl, 0); if (i4ReturnValue != CLI_UNKNOWN_CMD) { return i4ReturnValue; } } // cli help _CliShowHelp(_prCurrentCmdTbl); return CLI_UNKNOWN_CMD; // return 0; }