- if(gethostname(namebuf, sizeof(namebuf)) < 0) {
- perror("gethostname");
- exit(1);
- }
- hl = strlen(namebuf);
- namebuf[hl++] = '.';
- if(getdomainname(namebuf + hl, sizeof(namebuf) - hl) < 0) {
- perror("getdomainname");
- exit(1);
- }
- if(strlen(namebuf + hl) != 0) {
- hl = strlen(namebuf);
- namebuf[hl++] = '.';
+ if(newname == NULL) {
+ if(gethostname(myname, sizeof(myname)) < 0) {
+ perror("gethostname");
+ exit(1);
+ }
+ nl = strlen(myname);
+ myname[nl++] = '.';
+ if(getdomainname(myname + nl, sizeof(myname) - nl) < 0) {
+ perror("getdomainname");
+ exit(1);
+ }
+ if(strlen(myname + nl) != 0) {
+ nl = strlen(myname);
+ myname[nl++] = '.';
+ }
+ myname[nl] = 0;
+ } else {
+ strcpy(myname, newname);
+ nl = strlen(myname);
+ if(myname[nl - 1] != '.') {
+ myname[nl] = '.';
+ myname[nl + 1] = 0;
+ }