windows-nim-amd64-20070828
authorJeffrey Altman <jaltman@secure-endpoints.com>
Tue, 28 Aug 2007 17:53:26 +0000 (17:53 +0000)
committerJeffrey Altman <jaltman@secure-endpoints.com>
Tue, 28 Aug 2007 17:53:26 +0000 (17:53 +0000)
Add support for 64-bit Windows.

src/WINNT/netidmgr_plugin/NTMakefile
src/WINNT/netidmgr_plugin/afsconfigdlg.c
src/WINNT/netidmgr_plugin/afscred.h
src/WINNT/netidmgr_plugin/afsfuncs.c
src/WINNT/netidmgr_plugin/afsnewcreds.c
src/WINNT/netidmgr_plugin/afsplugin.c
src/WINNT/netidmgr_plugin/dynimport.c
src/WINNT/netidmgr_plugin/dynimport.h

index edaf803..96ed6ce 100644 (file)
@@ -93,8 +93,13 @@ OBJFILES=                            \
        $(OUT)\dynimport.obj            \
        $(OUT)\krb5common.obj
 
+!if "$(CPU)" == "AMD64"
+LIBFILES=                              \
+       $(KFWLIBDIR)\nidmgr64.lib
+!else
 LIBFILES=                              \
        $(KFWLIBDIR)\nidmgr32.lib
+!endif
 
 SDKLIBFILES=                           \
        $(DESTDIR)\lib\afsauthent.lib   \
index 908050f..bcc82c1 100644 (file)
@@ -234,7 +234,7 @@ set_service_status(HWND hwnd) {
     static DWORD wait_start = 0;
     DWORD status = 0;
     DWORD wait_hint = 0;
-    int i;
+    unsigned int i;
     wchar_t status_strings_csv[1024];
     wchar_t status_strings_ms[1024];
     khm_size cb;
@@ -457,7 +457,7 @@ afs_cfg_main_proc(HWND hwnd,
                                 L"ImagePath",
                                 NULL, NULL,
                                 (LPBYTE) imagepath,
-                                &cb);
+                                (DWORD *)&cb);
             if (l != ERROR_SUCCESS)
                 goto _close_key;
 
@@ -483,7 +483,7 @@ afs_cfg_main_proc(HWND hwnd,
             if (!VerQueryValue(ver_info, 
                                L"\\VarFileInfo\\Translation",
                                (LPVOID*) &translations,
-                               &cb) ||
+                               (PUINT)&cb) ||
                 cb == 0)
                 goto _free_buffer;
 
@@ -495,7 +495,7 @@ afs_cfg_main_proc(HWND hwnd,
             if (!VerQueryValue(ver_info,
                                blockname,
                                (LPVOID*) &value,
-                               &cb) ||
+                               (PUINT)&cb) ||
                 cb == 0)
                 goto _free_buffer;
 
@@ -509,7 +509,7 @@ afs_cfg_main_proc(HWND hwnd,
             if (!VerQueryValue(ver_info,
                                blockname,
                                (LPVOID*) &value,
-                               &cb) ||
+                               (PUINT)&cb) ||
                 cb == 0)
                 goto _free_buffer;
 
index 5a63d83..1824bc6 100644 (file)
 #ifndef __KHIMAIRA_AFSCRED_H
 #define __KHIMAIRA_AFSCRED_H
 
+#ifndef _WIN64
 #define _USE_32BIT_TIME_T 1
+#endif
+
 #define _WINSOCKAPI_
 #include<windows.h>
 #include<time.h>
index 9b416a0..580e875 100644 (file)
@@ -593,11 +593,11 @@ _no_krb5:
                            &aserver, sizeof(aserver));
 
         if(cell) {
-            kcdb_cred_set_attr(cred, afs_attr_cell, cell, KCDB_CBSIZE_AUTO);
+            kcdb_cred_set_attr(cred, afs_attr_cell, cell, (khm_size)KCDB_CBSIZE_AUTO);
         }
 
         kcdb_cred_set_attr(cred, KCDB_ATTR_LOCATION, 
-                           location, KCDB_CBSIZE_AUTO);
+                           location, (khm_size)KCDB_CBSIZE_AUTO);
 
         kcdb_credset_add_cred(afs_credset, cred, -1);
 
@@ -1112,7 +1112,7 @@ afs_klog(khm_handle identity,
         StringCchCopyA(aserver.cell, MAXKTCREALMLEN, CellName);
 
         memset(&atoken, '\0', sizeof(atoken));
-        atoken.kvno = creds.kvno;
+        atoken.kvno = (short)creds.kvno;
         atoken.startTime = creds.issue_date;
         atoken.endTime = (*pkrb_life_to_time)(creds.issue_date,creds.lifetime);
         memcpy(&atoken.sessionKey, creds.session, 8);
@@ -1199,7 +1199,7 @@ afs_realm_of_cell(afs_conf_cell *cellconfig, BOOL referral_fallback)
     static char krbrlm[REALM_SZ+1]="";
     krb5_context  ctx = 0;
     char ** realmlist=NULL;
-    krb5_error_code r;
+    krb5_error_code r = 0;
 
     if (!cellconfig)
         return 0;
@@ -1211,7 +1211,11 @@ afs_realm_of_cell(afs_conf_cell *cellconfig, BOOL referral_fallback)
            StringCbCopyA(krbrlm, sizeof(krbrlm), p);
        else
            StringCbCopyA(krbrlm, sizeof(krbrlm), cellconfig->name);
-       strupr(krbrlm);
+#if _MSC_VER >= 1400
+        _strupr_s(krbrlm, sizeof(krbrlm));
+#else
+        _strupr(krbrlm);
+#endif
     } else {
        if ( pkrb5_init_context ) {
            r = pkrb5_init_context(&ctx); 
@@ -1240,7 +1244,11 @@ afs_realm_of_cell(afs_conf_cell *cellconfig, BOOL referral_fallback)
                    StringCbCopyA(krbrlm, sizeof(krbrlm), p);
                else
                    StringCbCopyA(krbrlm, sizeof(krbrlm), cellconfig->name);
-               strupr(krbrlm);
+#if _MSC_VER >= 1400
+               _strupr_s(krbrlm, sizeof(krbrlm));
+#else
+                _strupr(krbrlm);
+#endif
            }
        }
     }
@@ -1493,7 +1501,7 @@ afs_check_for_cell_realm_match(khm_handle identity, char * cell) {
     kcdb_identity_get_name(identity, idname, &cb);
 
     atsign = wcschr(idname, L'@');
-    if (atsign && atsign[1] && !wcsicmp(atsign + 1, wrealm)) {
+    if (atsign && atsign[1] && !_wcsicmp(atsign + 1, wrealm)) {
         return TRUE;
     } else {
         return FALSE;
index e8dcd9e..a2c359f 100644 (file)
@@ -1691,7 +1691,7 @@ afs_dlg_proc(HWND hwnd,
                             }
                             SendDlgItemMessage(hwnd, IDC_NCAFS_CELL, 
                                                CB_SELECTSTRING, 
-                                               -1, (LPARAM) wbuf);
+                                               (WPARAM)-1, (LPARAM) wbuf);
                         }
                     }
 
@@ -1715,7 +1715,7 @@ afs_dlg_proc(HWND hwnd,
                                            CB_SETITEMDATA, idx, TRUE);
                         SendDlgItemMessage(hwnd, IDC_NCAFS_REALM, 
                                            CB_SELECTSTRING, 
-                                           -1, (LPARAM) wbuf);
+                                           (WPARAM)-1, (LPARAM) wbuf);
                     }
 
                     /* load the LRU realms */
@@ -1734,7 +1734,8 @@ afs_dlg_proc(HWND hwnd,
                             s = buf;
                             while(*s) {
                                 if(SendDlgItemMessage(hwnd, IDC_NCAFS_REALM, 
-                                                      CB_FINDSTRINGEXACT, -1, 
+                                                      CB_FINDSTRINGEXACT, 
+                                                      (WPARAM)-1,
                                                       (LPARAM) s) == CB_ERR) {
                                     idx = 
                                         (int)
@@ -1952,7 +1953,8 @@ afs_dlg_proc(HWND hwnd,
                     LoadString(hResModule, IDS_NC_REALM_AUTO, wbuf, 
                                ARRAYLENGTH(wbuf));
                     idx = (int) SendDlgItemMessage(hwnd, IDC_NCAFS_REALM, 
-                                                   CB_FINDSTRINGEXACT, -1, 
+                                                   CB_FINDSTRINGEXACT, 
+                                                   (WPARAM) -1,
                                                    (LPARAM) wbuf);
                     SendDlgItemMessage(hwnd, IDC_NCAFS_REALM, CB_SETCURSEL,
                                        idx, 0);
@@ -2109,13 +2111,13 @@ afs_adjust_token_ident_proc(khm_handle cred, void * vd)
             kcdb_cred_set_identity(cred, b->ident);
             if(l->rows[i].realm)
                 kcdb_cred_set_attr(cred, afs_attr_realm, l->rows[i].realm, 
-                                   KCDB_CBSIZE_AUTO);
+                                   (khm_size)KCDB_CBSIZE_AUTO);
             else
                 kcdb_cred_set_attr(cred, afs_attr_realm, NULL, 0);
 
             method = l->rows[i].method;
             kcdb_cred_set_attr(cred, afs_attr_method, &method, 
-                               KCDB_CBSIZE_AUTO);
+                               (khm_size)KCDB_CBSIZE_AUTO);
 
             break;
         }
index 45256ad..9db999a 100644 (file)
@@ -844,7 +844,7 @@ afs_msg_act(khm_int32 msg_subtype,
     khm_int32 rv = KHM_ERROR_SUCCESS;
 
     if (msg_subtype == KMSG_ACT_ACTIVATE &&
-        uparam == action_id_afs_help) {
+        uparam == (khm_ui_4)action_id_afs_help) {
 
         khui_request_UI_callback(help_launcher, NULL);
 
index bb4b8bd..9d7d823 100644 (file)
@@ -453,6 +453,7 @@ int (*Lcom_err)(LPSTR,long,LPSTR,...);
 LPSTR (*Lerror_message)(long);
 LPSTR (*Lerror_table_name)(long);
 
+#pragma warning (disable: 4213)
 void Leash_load_com_err_callback(FARPROC ce,
                                  FARPROC em,
                                  FARPROC etn)
index 8100be1..fee4d05 100644 (file)
@@ -58,11 +58,15 @@ extern HINSTANCE hProfile;
 
 ///////////////////////////////////////////////////////////////////////////////
 
+#ifdef _WIN64
+#define CCAPI_DLL     "krbcc64.dll"
+#define KRBCC32_DLL   "krbcc64.dll"
+#else
 #define CCAPI_DLL     "krbcc32.dll"
 #define KRBCC32_DLL   "krbcc32.dll"
+#endif
 #define SERVICE_DLL   "advapi32.dll"
 #define SECUR32_DLL   "secur32.dll"
-#define PROFILE_DLL   "xpprof32.dll"
 
 //////////////////////////////////////////////////////////////////////////////