1
/* $Id: syscall_setdomainname.c 61 2006-05-19 18:32:14Z steve-beattie $ */
4
* Copyright (C) 2002-2005 Novell/SUSE
6
* This program is free software; you can redistribute it and/or
7
* modify it under the terms of the GNU General Public License as
8
* published by the Free Software Foundation, version 2 of the
15
#include <sys/types.h>
18
/* this implicitly tests getdomainname, too. */
20
#define RESET_DOMAIN_WHEN_DONE
23
int main(int argc, char *argv[])
25
char saved_domain[BUFSIZE];
26
char new_domain[BUFSIZE];
27
size_t len = sizeof(saved_domain);
32
fprintf(stderr, "usage: %s domain\n",
37
newlen = strlen(argv[1]);
38
if (newlen <= 0 || newlen >= BUFSIZE) {
39
fprintf(stderr, "FAIL: invalid domain '%s'\n",
44
if (getdomainname(saved_domain, len) == -1) {
45
fprintf(stderr, "FAIL: getdomainname failed - %s\n",
49
/* printf("old domainname is %s\n", saved_domain ? saved_domain : "NULL"); */
51
if (setdomainname(argv[1], strlen(argv[1])) == -1) {
52
fprintf(stderr, "FAIL: setdomainname failed - %s\n",
57
len = sizeof(new_domain);
58
if (getdomainname(new_domain, len) == -1) {
59
fprintf(stderr, "FAIL: getdomainname failed - %s\n",
65
if (strcmp(new_domain, argv[1]) != 0) {
66
fprintf(stderr, "FAIL: attempted to set domainname to '%s', "
67
"but '%s' was the result\n",
75
#ifdef RESET_DOMAIN_WHEN_DONE
76
if (setdomainname(saved_domain, strlen(saved_domain)) == -1) {
77
fprintf(stderr, "FAIL: setdomainname failed restting to old name - %s\n",
81
#endif /* RESET_DOMAIN_WHEN_DONE */