← All posts tagged Windows

rion

беда какая-то. пытаюсь пробросить порт на рутере через IUPnPNAT, но get_StaticPortMappingCollection всегда возвращает успех и 0 в аутпараметре.

на рутере upnp включен и вполне успешно работает (видно по другим приложениям и тому что пишет веб интерфейс).
пробовал делать несколько вызовов get_StaticPortMappingCollection с небольшой задержкой. результат тот же.

rion

и так всегда. примерно в 20 раз больше кода. да апи вендовое выглядит в разы страшнее.

#ifdef Q_OS_UNIX
	uid = QString::number(getuid());
#elif defined(Q_OS_WIN)
	HANDLE Thandle = NULL;
	DWORD size = 0;
	QByteArray userBuf;

	if (OpenProcessToken(GetCurrentProcess(), TOKEN_READ, &Thandle) &&
		!GetTokenInformation(Thandle, TokenUser, NULL, 0, &size) &&
		GetLastError() == ERROR_INSUFFICIENT_BUFFER)
	{
		userBuf.resize(size);
		wchar_t *sidBuf = NULL;
		if (GetTokenInformation(Thandle, TokenUser, userBuf.data(), size, &size) &&
			ConvertSidToStringSid(((PTOKEN_USER)userBuf.constData())->User.Sid, &sidBuf))
		{
			uid = QString::fromWCharArray(sidBuf);
			LocalFree(sidBuf);
		}
	}
	if (Thandle) {
		CloseHandle(Thandle);
	}
#endif

rion

есть в венде какой-то ещё dns кэш помимо того, который сбрасывается посредством ipcofnig /flushdns ?

а то затрахалсо ужо, nslookup показывает одно, а ff и ie грузят из другого места.

rion

а как венда 7 умудряется создавать папочки, с которыми совершенно ничего(как минимум зайти или поменять права/владельца) нельзя сделать даже будучи администратором?

rion

столкнулся с интересной фичей.
имеется:
1) https хост с совершенно правильными сертификатом
2) IE
3) QNetworkAccessManager + openssl

магия по порядку:
1) запрос из qnam на https -> провал, локальный сертификат не найден
2) запрос из IE на https -> успешная загрузка без каких либо ssl ворнингов (в свойствах страницы показывает путь из 3х сертифакатов: корневого, intermediate и собственно сертификата самого хоста)
3) запрос из qnam на https -> успех

так вот, объясните каким таким макаром магия-3 сработала и что надо было такого сделать чтоб она сработала на пунтке 1.
оно конечно понятно что IE выгрузил все сертификаты и куда-то закэшировал, но интересен сам механизм и как сделать всё правильно. ссылки на мануалы где всё описано популярным языком были бы очень полезны. ещё интересно как сбросить этот кэш чтоб заново воспроизвести проблему.

rion

Господа, нужна утилита(совсем простенький вендовый ssh сервер), с помощью которой можно пробросить обратный туннель. т.е. нужно коннектиться к машине, с которой был открыт туннель.
на удаленной стороне простой putty

rion

в продолжение #913114 на этот раз будем собирать 64 битную версию openssl-1.0.0a под windows64 для windows64.
итак нам понадобятся:
1) msys (без сборочного тулчайна! т.е. не должно быть gcc, binutils и прочих пакетов для сборки). стандартный msys вполне подойдет, ну или например тот что поставляется вместе msysgit (версия без тулчайна)
2) perl. либо верся без тулчайна, либо убедись что его нету в PATH (ActivePerl вполне подойдет без каких-либо дополнительных манипуляций)
3) mingw-w64. лучше всего скачать personal build от sezero (mingw-w64-bin_x86_64-mingw_20100925_sezero.zip например, дата может отличаться). ставится по инструкции, но главное добавить в PATH.

После распаковки и установки всего и вся, включая сорсы опенссл, переходим в каталог с опенссл и там
MAKE=mingw32-make perl Configure mingw64 shared enable-static-engine
конфигур должен рапортовать об успехе и далее запускаем
mingw32-make

после того как всё собралось, читаем файл INSTALL.W32 о том какие файлы надо скопировать и куда.

rion

если кому-то приспичит компилять qt под вендой, лучше делайте это в jpsoft tcc, ибо в cmd.exe есть дурацкие ограничения на длину командной строки плохо совместимые со сборкой qt (вебкит модуля в частности), особенно если сборка производится в каталоге отдельном от сорсев