Home | History | Annotate | Download | only in kclient
      1 /*
      2  * CDDL HEADER START
      3  *
      4  * The contents of this file are subject to the terms of the
      5  * Common Development and Distribution License (the "License").
      6  * You may not use this file except in compliance with the License.
      7  *
      8  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
      9  * or http://www.opensolaris.org/os/licensing.
     10  * See the License for the specific language governing permissions
     11  * and limitations under the License.
     12  *
     13  * When distributing Covered Code, include this CDDL HEADER in each
     14  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
     15  * If applicable, add the following below this CDDL HEADER, with the
     16  * fields enclosed by brackets "[]" replaced with your own identifying
     17  * information: Portions Copyright [yyyy] [name of copyright owner]
     18  *
     19  * CDDL HEADER END
     20  */
     21 
     22 /*
     23  * Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
     24  * Use is subject to license terms.
     25  */
     26 
     27 #pragma ident	"%Z%%M%	%I%	%E% SMI"
     28 
     29 #include <stdio.h>
     30 #include <locale.h>
     31 #include <netdb.h>
     32 #include <smbsrv/libsmbns.h>
     33 
     34 char *whoami = NULL;
     35 
     36 static void usage();
     37 
     38 static
     39 void
     40 usage()
     41 {
     42 	fprintf(stderr, gettext("Usage: %s -d fqdn\n"), whoami);
     43 	fprintf(stderr,
     44 	    gettext("\t-d\tThe fully qualified domain of the client\n"));
     45 	exit(1);
     46 }
     47 
     48 int
     49 main(int argc, char **argv)
     50 {
     51 	char c, fqdn[MAXHOSTNAMELEN];
     52 	int ret = 0;
     53 
     54 	(void) setlocale(LC_ALL, "");
     55 
     56 #if !defined(TEXT_DOMAIN)
     57 #define	TEXT_DOMAIN "SYS_TEST"
     58 #endif /* TEXT_DOMAIN */
     59 
     60 	(void) textdomain(TEXT_DOMAIN);
     61 
     62 	whoami = argv[0];
     63 
     64 	while ((c = getopt(argc, argv, "d:")) != -1) {
     65 		switch (c) {
     66 		case 'd':
     67 			(void) strncpy(fqdn, optarg, sizeof (fqdn));
     68 			break;
     69 		default:
     70 			usage();
     71 			break;
     72 		}
     73 	}
     74 
     75 	if (argc != optind)
     76 		usage();
     77 
     78 	/*
     79 	 * Update DNS RR for the client using DynDNS.  First it tries the
     80 	 * unauthed version then it tries the GSS version.
     81 	 */
     82 	ret = dyndns_update(fqdn);
     83 
     84 	return (ret);
     85 }
     86