/* -*- mode: c; c-basic-offset: 8; indent-tabs-mode: nil; -*-
* vim:expandtab:shiftwidth=8:tabstop=8:
- *
- * Author: Liang Zhen <liangzhen@clusterfs.com>
*
- * This file is part of Lustre, http://www.lustre.org
+ * GPL HEADER START
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 only,
+ * as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License version 2 for more details (a copy is included
+ * in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License
+ * version 2 along with this program; If not, see
+ * http://www.sun.com/software/products/lustre/docs/GPLv2.pdf
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ *
+ * GPL HEADER END
+ */
+/*
+ * Copyright (c) 2007, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Use is subject to license terms.
+ */
+/*
+ * This file is part of Lustre, http://www.lustre.org/
+ * Lustre is a trademark of Sun Microsystems, Inc.
+ *
+ * lnet/selftest/conctl.c
+ *
+ * Author: Liang Zhen <liangzhen@clusterfs.com>
*/
+
#include <stdio.h>
#include <stdlib.h>
#include <getopt.h>
unsigned int libcfs_subsystem_debug = ~0 - (S_LNET | S_LND);
unsigned int libcfs_debug = 0;
-extern int sfw_session_removed(void);
-
static struct option lstjn_options[] =
{
- {"sesid", required_argument, 0, 's' },
- {"group", required_argument, 0, 'g' },
- {0, 0, 0, 0 }
+ {"sesid", required_argument, 0, 's' },
+ {"group", required_argument, 0, 'g' },
+ {"server_mode", no_argument, 0, 'm' },
+ {0, 0, 0, 0 }
};
void
srpc_mksn_reply_t *srep;
int rc;
- sesid.nid = libcfs_str2nid(ses);
sesid.pid = LUSTRE_LNET_PID;
+ sesid.nid = libcfs_str2nid(ses);
+ if (sesid.nid == LNET_NID_ANY) {
+ fprintf(stderr, "Invalid session NID: %s\n", ses);
+ return -1;
+ }
rpc = sfw_create_rpc(sesid, SRPC_SERVICE_JOIN, 0,
0, lstjn_rpc_done, NULL);
return -1;
}
- fprintf(stdout, "Session %s, ID: %s, %Lu\n",
+ fprintf(stdout, "Session %s, ID: %s, "LPU64"\n",
ses, libcfs_nid2str(rep->join_sid.ses_nid),
rep->join_sid.ses_stamp);
{
char *ses = NULL;
char *grp = NULL;
+ int server_mode_flag = 0;
int optidx;
int c;
int rc;
+ const char *usage_string =
+ "Usage: lstclient --sesid ID --group GROUP [--server_mode]\n";
+
while (1) {
- c = getopt_long(argc, argv, "s:g:",
+ c = getopt_long(argc, argv, "s:g:m",
lstjn_options, &optidx);
if (c == -1)
case 'g':
grp = optarg;
break;
+ case 'm':
+ server_mode_flag = 1;
+ break;
default:
- fprintf(stderr,
- "Usage: lstclient --sesid ID --group GROUP\n");
+ fprintf(stderr, "%s", usage_string);
return -1;
}
}
if (optind != argc || grp == NULL || ses == NULL) {
- fprintf(stderr, "Usage: lstclient --sesid ID --group GROUP\n");
+ fprintf(stderr, "%s", usage_string);
return -1;
}
return -1;
}
+ if (server_mode_flag)
+ lnet_server_mode();
+
rc = lnet_selftest_init();
if (rc != 0) {
fprintf(stderr, "Can't startup selftest\n");
return -1;
}
-
+
rc = lstjn_join_session(ses, grp);
if (rc != 0)
goto out;