netd: add hostname command

This commit is contained in:
Matheus
2026-04-15 16:48:25 -03:00
parent 338b448381
commit 6ba082f510
2 changed files with 38 additions and 1 deletions
+9 -1
View File
@@ -1,14 +1,22 @@
.phony: all install .phony: all install
CC=x86_64-astral-gcc CC=x86_64-astral-gcc
LD=x86_64-astral-gcc LD=x86_64-astral-gcc
all: netd all: netd hostname
install: install:
mkdir -p "$(DESTDIR)/$(PREFIX)/sbin/" mkdir -p "$(DESTDIR)/$(PREFIX)/sbin/"
mkdir -p "$(DESTDIR)/$(PREFIX)/bin/"
cp netd "$(DESTDIR)/$(PREFIX)/sbin/netd" cp netd "$(DESTDIR)/$(PREFIX)/sbin/netd"
cp hostname "$(DESTDIR)/$(PREFIX)/bin/hostname"
netd: main.o netd: main.o
$(LD) $(LDFLAGS) -g -o $@ $^ $(LD) $(LDFLAGS) -g -o $@ $^
hostname: hostname.o
$(LD) $(LDFLAGS) -g -o $@ $^
main.o: main.c main.o: main.c
$(CC) -c $(CFLAGS) -g -o $@ $< $(CC) -c $(CFLAGS) -g -o $@ $<
hostname.o: hostname.c
$(CC) -c $(CFLAGS) -g -o $@ $<
+29
View File
@@ -0,0 +1,29 @@
#define _GNU_SOURCE
#include <stdio.h>
#include <unistd.h>
#include <string.h>
#include <errno.h>
#include <stdlib.h>
int main(int argc, char *argv[]) {
char hostname[1000];
if (argc == 1) {
if (gethostname(hostname, 1000)) {
fprintf(stderr, "%s: failed to get hostname: %s\n", argv[0], strerror(errno));
return EXIT_FAILURE;
}
printf("%s\n", hostname);
} else if (argc == 2) {
if (sethostname(argv[1], strlen(argv[1]))) {
fprintf(stderr, "%s: failed to set hostname: %s\n", argv[0], strerror(errno));
return EXIT_FAILURE;
}
} else {
fprintf(stderr, "%s: usage: %s [hostname]\n", argv[0], argv[0]);
return EXIT_FAILURE;
}
return EXIT_SUCCESS;
}