ubik-clone-support-20010212
[openafs.git] / src / ptserver / ptserver.c
index 7906d8f..e29fe7c 100644 (file)
@@ -1,7 +1,10 @@
-/* Copyright (C) 1990, 1998 Transarc Corporation - All rights reserved */
 /*
- * (C) COPYRIGHT IBM CORPORATION 1988
- * LICENSED MATERIALS - PROPERTY OF IBM
+ * Copyright 2000, International Business Machines Corporation and others.
+ * All Rights Reserved.
+ * 
+ * This software has been released under the terms of the IBM Public
+ * License.  For details, see the LICENSE file in the top-level source
+ * directory or online at http://www.openafs.org/dl/license10.html
  */
 
 #include <afs/param.h>
@@ -61,7 +64,6 @@ void main (argc, argv)
   char **argv;
 {
     register afs_int32 code;
-    afs_int32 serverList[MAXSERVERS];
     afs_int32 myHost;
     register struct hostent *th;
     char hostname[64];
@@ -78,6 +80,7 @@ void main (argc, argv)
     int kerberosKeys;                  /* set if found some keys */
     afs_int32 i,j;
     int lwps = 3;
+    char clones[MAXHOSTSPERCELL];
 
     const char *pr_dbaseName;
     char *whoami = "ptserver";
@@ -186,7 +189,8 @@ void main (argc, argv)
     bcopy(th->h_addr,&myHost,sizeof(afs_int32));
         
     /* get list of servers */
-    code = afsconf_GetCellInfo(prdir,(char *)0,"afsprot",&info);
+    code = afsconf_GetExtendedCellInfo(prdir,(char *)0,"afsprot",
+                       &info, &clones);
     if (code) {
        com_err (whoami, code, "Couldn't get server list");
        PT_EXIT(2);
@@ -194,11 +198,6 @@ void main (argc, argv)
     pr_realmName = info.name;
     pr_realmNameLen = strlen (pr_realmName);
 
-    for (i=0,j=0;i<info.numServers;i++)
-       if (info.hostAddr[i].sin_addr.s_addr != myHost) /* ubik already tacks myHost onto list */
-           serverList[j++] = info.hostAddr[i].sin_addr.s_addr;
-    serverList[j] = 0;
-
 #if 0
     /* get keys */
     code = afsconf_GetKey(prdir,999,&tkey);
@@ -231,8 +230,8 @@ void main (argc, argv)
      * and the header are in separate Ubik buffers then 120 buffers may be
      * required. */
     ubik_nBuffers = 120 + /*fudge*/40;
-    code = ubik_ServerInit(myHost, htons(AFSCONF_PROTPORT), serverList,
-                          pr_dbaseName, &dbase);
+    code = ubik_ServerInitByInfo(myHost, htons(AFSCONF_PROTPORT), &info,
+                           &clones, pr_dbaseName, &dbase);
     if (code) {
        com_err (whoami, code, "Ubik init failed");
        PT_EXIT(2);