#ifdef __CYGWIN__ #define STRICT #include #include "includes.h" #include #include #include #include #include #include "log.h" // MAX_PATH is defined as 260 in windef.h int ssh_agent_reg(char *socket_name) { HKEY hKey; DWORD dwSize, dwReturnValue; BYTE nValue[1024]; static CHAR RegPath[MAX_PATH] = ""; LRESULT status; strcpy(RegPath, "SYSTEM\\CurrentControlSet\\Control\\Session Manager\\Environment"); if ((status = RegOpenKeyEx( HKEY_LOCAL_MACHINE, RegPath, 0, KEY_SET_VALUE, &hKey ))) { error("RegOpenKeyEx: %lu", (unsigned long)status); return 1; } strcpy(nValue, socket_name); dwSize = strlen(nValue) + 1; if ((status = RegSetValueEx( hKey, "SSH_AUTH_SOCK", 0, REG_SZ, (BYTE *)nValue, dwSize ))) { error("RegSetValueEx (SSH_AUTH_SOCK): %lu", (unsigned long)status); return 1; } if ((status = RegCloseKey( hKey ))) { error("RegCloseKey: %lu", (unsigned long)status); return 1; } SendMessageTimeout( HWND_BROADCAST, WM_SETTINGCHANGE, 0, (LPARAM) "Environment", SMTO_ABORTIFHUNG, 5000, &dwReturnValue ); return 0; } #endif