bd211b8556ef6b18ebf137419bd5555d65271664semery/*
bd211b8556ef6b18ebf137419bd5555d65271664semery * CDDL HEADER START
bd211b8556ef6b18ebf137419bd5555d65271664semery *
bd211b8556ef6b18ebf137419bd5555d65271664semery * The contents of this file are subject to the terms of the
bd211b8556ef6b18ebf137419bd5555d65271664semery * Common Development and Distribution License (the "License").
bd211b8556ef6b18ebf137419bd5555d65271664semery * You may not use this file except in compliance with the License.
bd211b8556ef6b18ebf137419bd5555d65271664semery *
bd211b8556ef6b18ebf137419bd5555d65271664semery * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
bd211b8556ef6b18ebf137419bd5555d65271664semery * or http://www.opensolaris.org/os/licensing.
bd211b8556ef6b18ebf137419bd5555d65271664semery * See the License for the specific language governing permissions
bd211b8556ef6b18ebf137419bd5555d65271664semery * and limitations under the License.
bd211b8556ef6b18ebf137419bd5555d65271664semery *
bd211b8556ef6b18ebf137419bd5555d65271664semery * When distributing Covered Code, include this CDDL HEADER in each
bd211b8556ef6b18ebf137419bd5555d65271664semery * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
bd211b8556ef6b18ebf137419bd5555d65271664semery * If applicable, add the following below this CDDL HEADER, with the
bd211b8556ef6b18ebf137419bd5555d65271664semery * fields enclosed by brackets "[]" replaced with your own identifying
bd211b8556ef6b18ebf137419bd5555d65271664semery * information: Portions Copyright [yyyy] [name of copyright owner]
bd211b8556ef6b18ebf137419bd5555d65271664semery *
bd211b8556ef6b18ebf137419bd5555d65271664semery * CDDL HEADER END
bd211b8556ef6b18ebf137419bd5555d65271664semery */
bd211b8556ef6b18ebf137419bd5555d65271664semery
bd211b8556ef6b18ebf137419bd5555d65271664semery/*
bd211b8556ef6b18ebf137419bd5555d65271664semery * Copyright 2008 Sun Microsystems, Inc. All rights reserved.
bd211b8556ef6b18ebf137419bd5555d65271664semery * Use is subject to license terms.
bd211b8556ef6b18ebf137419bd5555d65271664semery */
bd211b8556ef6b18ebf137419bd5555d65271664semery
bd211b8556ef6b18ebf137419bd5555d65271664semery#pragma ident "%Z%%M% %I% %E% SMI"
bd211b8556ef6b18ebf137419bd5555d65271664semery
bd211b8556ef6b18ebf137419bd5555d65271664semery#include <stdio.h>
bd211b8556ef6b18ebf137419bd5555d65271664semery#include <locale.h>
bd211b8556ef6b18ebf137419bd5555d65271664semery#include <netdb.h>
bd211b8556ef6b18ebf137419bd5555d65271664semery#include <smbsrv/libsmbns.h>
bd211b8556ef6b18ebf137419bd5555d65271664semery
bd211b8556ef6b18ebf137419bd5555d65271664semerychar *whoami = NULL;
bd211b8556ef6b18ebf137419bd5555d65271664semery
bd211b8556ef6b18ebf137419bd5555d65271664semerystatic void usage();
bd211b8556ef6b18ebf137419bd5555d65271664semery
bd211b8556ef6b18ebf137419bd5555d65271664semerystatic
bd211b8556ef6b18ebf137419bd5555d65271664semeryvoid
bd211b8556ef6b18ebf137419bd5555d65271664semeryusage()
bd211b8556ef6b18ebf137419bd5555d65271664semery{
bd211b8556ef6b18ebf137419bd5555d65271664semery fprintf(stderr, gettext("Usage: %s -d fqdn\n"), whoami);
bd211b8556ef6b18ebf137419bd5555d65271664semery fprintf(stderr,
bd211b8556ef6b18ebf137419bd5555d65271664semery gettext("\t-d\tThe fully qualified domain of the client\n"));
bd211b8556ef6b18ebf137419bd5555d65271664semery exit(1);
bd211b8556ef6b18ebf137419bd5555d65271664semery}
bd211b8556ef6b18ebf137419bd5555d65271664semery
bd211b8556ef6b18ebf137419bd5555d65271664semeryint
bd211b8556ef6b18ebf137419bd5555d65271664semerymain(int argc, char **argv)
bd211b8556ef6b18ebf137419bd5555d65271664semery{
bd211b8556ef6b18ebf137419bd5555d65271664semery char c, fqdn[MAXHOSTNAMELEN];
bd211b8556ef6b18ebf137419bd5555d65271664semery int ret = 0;
bd211b8556ef6b18ebf137419bd5555d65271664semery
bd211b8556ef6b18ebf137419bd5555d65271664semery (void) setlocale(LC_ALL, "");
bd211b8556ef6b18ebf137419bd5555d65271664semery
bd211b8556ef6b18ebf137419bd5555d65271664semery#if !defined(TEXT_DOMAIN)
bd211b8556ef6b18ebf137419bd5555d65271664semery#define TEXT_DOMAIN "SYS_TEST"
bd211b8556ef6b18ebf137419bd5555d65271664semery#endif /* TEXT_DOMAIN */
bd211b8556ef6b18ebf137419bd5555d65271664semery
bd211b8556ef6b18ebf137419bd5555d65271664semery (void) textdomain(TEXT_DOMAIN);
bd211b8556ef6b18ebf137419bd5555d65271664semery
bd211b8556ef6b18ebf137419bd5555d65271664semery whoami = argv[0];
bd211b8556ef6b18ebf137419bd5555d65271664semery
bd211b8556ef6b18ebf137419bd5555d65271664semery while ((c = getopt(argc, argv, "d:")) != -1) {
bd211b8556ef6b18ebf137419bd5555d65271664semery switch (c) {
bd211b8556ef6b18ebf137419bd5555d65271664semery case 'd':
bd211b8556ef6b18ebf137419bd5555d65271664semery (void) strncpy(fqdn, optarg, sizeof (fqdn));
bd211b8556ef6b18ebf137419bd5555d65271664semery break;
bd211b8556ef6b18ebf137419bd5555d65271664semery default:
bd211b8556ef6b18ebf137419bd5555d65271664semery usage();
bd211b8556ef6b18ebf137419bd5555d65271664semery break;
bd211b8556ef6b18ebf137419bd5555d65271664semery }
bd211b8556ef6b18ebf137419bd5555d65271664semery }
bd211b8556ef6b18ebf137419bd5555d65271664semery
bd211b8556ef6b18ebf137419bd5555d65271664semery if (argc != optind)
bd211b8556ef6b18ebf137419bd5555d65271664semery usage();
bd211b8556ef6b18ebf137419bd5555d65271664semery
bd211b8556ef6b18ebf137419bd5555d65271664semery /*
bd211b8556ef6b18ebf137419bd5555d65271664semery * Update DNS RR for the client using DynDNS. First it tries the
bd211b8556ef6b18ebf137419bd5555d65271664semery * unauthed version then it tries the GSS version.
bd211b8556ef6b18ebf137419bd5555d65271664semery */
bd211b8556ef6b18ebf137419bd5555d65271664semery ret = dyndns_update(fqdn);
bd211b8556ef6b18ebf137419bd5555d65271664semery
bd211b8556ef6b18ebf137419bd5555d65271664semery return (ret);
bd211b8556ef6b18ebf137419bd5555d65271664semery}