Ras Api тип соединения, Не получается выставить нужный тип :(

Тема в разделе "Delphi - Сети", создана пользователем MadMas, 19 янв 2009.

Статус темы:
Закрыта.
  1. MadMas

    MadMas Гость

    Задача - создать vpn соединение. Возникла проблема с типом соединения - почему-то автоматом ставится L2TP, в то время когда нужно PPTP.

    Пробовала просто через szDeviceName:='WAN Miniport (PPTP)' и через построение списка устройств и выбор нужного. Результат один и тот же.

    Если же выставляю свойство dwVpnStrategy в любое из значений - соединение вообще перестает создаваться. Помогите, пожалуйста..

    Код:
    Код (Text):
    Fillchar(RasEntry, sizeof(TRasEntry), 0);

    {find device with pptp and type=vpn}
    devs := 0;
    devices := nil;
    NeedBytes := SizeOf(TRasDevInfo);
    GetMem(devices, NeedBytes);
    Fillchar(devices^, sizeof(TRasDevInfo), 0);

    try
    devices^.dwSize := NeedBytes;
    dwError := RasEnumDevices(devices, NeedBytes, devs);

    if dwError=603 then //ERROR_BUFFER_TOO_SMALL
    begin
    NeedBytes:=sizeof(TRasDevInfo)*devs;

    FreeMem(devices, NeedBytes);
    GetMem(devices, NeedBytes);
    if devices <> nil then
    begin
    Fillchar(devices^, NeedBytes, 0);
    devices^.dwSize := sizeof(TRasDevInfo);
    dwError := RasEnumDevices(devices, NeedBytes, devs);
    end;

    if dwError=0 then
    begin
    while devs > 0 do
    begin
    if ((pos('PPTP',devices^.szDeviceName)>0) AND (devices^.szDeviceType='vpn'))
    then
    StrPCopy(RasEntry.szDeviceName, devices^.szDeviceName);
    Inc(devices);
    Dec(devs);
    end;
    end;
    end;

    finally;
    end;

    with RasEntry do
    begin
    dwSize := sizeof(TRasEntry);
    dwCountryID := 7;
    dwCountryCode := 7;
    szAreaCode := '';
    szLocalPhoneNumber:=ip_VPN;
    szDeviceType:= RASDT_Vpn;
    dwfNetProtocols := RASNP_Ip;
    dwFramingProtocol := RASFP_Ppp;
    //dwVpnStrategy := 1;
    dwfOptions := RASEO_PreviewUserPw;
    end;


    RasSetEntryPropertiesA(nil,
    PChar(name_of_connection),
    @RasEntry,
    sizeof(TRasEntry),
    nil,
    0);
    end;
     
Загрузка...
Статус темы:
Закрыта.

Поделиться этой страницей