0 Вопрос: Почему я получаю ERROR_DIAL_ALREADY_IN_PROGRESS при синхронизации с вызовом RasDial?

вопрос создан в Thu, May 2, 2019 12:00 AM

Вот мой код RasDial:

RASDIALPARAMS params={.dwSize=sizeof params,.szEntryName="VPN Connection"};
HRASCONN conn;
RasDialA(NULL,NULL,&params,0,NULL,&conn);

Я запускаю один поток в цикле, набирая новое соединение, пока оно не будет установлено, однако недавно я заметил, что мой цикл выполняется бесконечно с кодом ошибки ERROR_DIAL_ALREADY_IN_PROGRESS.

Как получается, что соединение набирается, когда мой вызов синхронизирован (arg5 - NULL), а мой код однопоточный.

Я просматривал панель соединений на панели задач, но мое VPN-соединение не подключено или не подключается.

Вот мой полный код для полноты картины:

RASDIALPARAMS params={.dwSize=sizeof params,.szEntryName="VPN Connection"};
DWORD dwPrevIndex;
dialup()
{
    extern const char *const servers[];
    int success;do
    {static HRASCONN conn;
    static DWORD serverIndex=1;
    RASCONNSTATUS status={.dwSize=sizeof status};
    strcpy(params.szPhoneNumber,servers[serverIndex]);

    {

        while(RasGetConnectStatusA(conn,&status)!=ERROR_INVALID_HANDLE)
                        RasHangUpA(conn),Sleep(500);}
    conn=NULL, success = serverIndex ? RasDialA(NULL,NULL,&params,0,NULL,&conn) : 0;
    printf("%s - %d\n",serverIndex[servers], success),
    dwPrevIndex=serverIndex,
    (serverIndex+1 == sizeof servers/sizeof(void *) ? serverIndex = 0 : ++serverIndex);}while(Sleep(500),success);
}

Я звоню

BOOL noCare;
RasGetEntryDialParamsA(NULL,&params,&noCare);

в начале моей программы.

Функция dialup вызывается из обработчика сообщений, отвечающего на сообщения из окна «Только мои сообщения».

В нулевом индексе указан localhost - поэтому я не набираю ни одного сервера.

Хорошо, я получаю ERROR_VPN_TIMEOUT как ошибку до этого. Может быть, это ключ.

    
0
  1. Вы пытались пропинговать VPN-сервер, чтобы узнать, можно ли достичь его при получении ошибки ERROR_VPN_TIMEOUT?
    2019-05-03 10: 12: 27Z
0 ответов                              0                         
источник размещен Вот