2 * Copyright 2000, International Business Machines Corporation and others.
5 * This software has been released under the terms of the IBM Public
6 * License. For details, see the LICENSE file in the top-level source
7 * directory or online at http://www.openafs.org/dl/license10.html
10 #include <afsconfig.h>
11 #include <afs/param.h>
15 #include <sys/types.h>
20 #include <netinet/in.h>
21 #include <sys/param.h>
29 #define UBIK_INTERNALS
32 /* This file contain useful subroutines for parsing command line args for ubik
36 ubik_ParseServerList(argc, argv, ahost, aothers)
43 register struct hostent *th;
45 afs_int32 myHost, temp, counter;
46 int inServer, sawServer;
48 gethostname(hostname, sizeof(hostname));
49 th = gethostbyname(hostname);
50 if (!th) return UBADHOST;
51 memcpy(&myHost, th->h_addr, sizeof(afs_int32));
54 inServer = 0; /* haven't seen -servers yet */
57 for(i=1; i<argc; i++) {
58 /* look for -servers argument */
66 /* otherwise this is a new host name */
67 th = gethostbyname(tp);
68 if (!th) return UBADHOST;
69 memcpy(&temp, th->h_addr, sizeof(afs_int32));
71 if (counter++ >= MAXSERVERS) return UNHOSTS;
76 /* haven't seen a -server yet */
77 if (!strcmp(tp, "-servers")) {
81 else if (!strcmp(tp, "-dubik")) {
86 /* never saw a -server */
89 if (counter < MAXSERVERS) *aothers++ = 0; /* null terminate if there's room */