a firstworks project
Rudiments
About Documentation Download Licensing News

Using the serviceentry class


Introduction

The serviceentry class provides methods for retrieving network service definitions. These are usually defined in a file like /etc/services on unix-like systems or C:\Windows\System32\drivers\etc\services on Windows, or are served from another source via the name-service switch.

Services can be looked up by name or number.

Lookup By Name

In this example, information for the "smtp" service, "tcp" protocol is retrieved.

// Copyright (c) 1999-2018 David Muse
// See the file COPYING for more information

#include <rudiments/serviceentry.h>
#include <rudiments/stdio.h>

int main(int argc, const char **argv) {

	// get the service information for "smtp","tcp" protocol
	serviceentry	se;
	se.open("smtp","tcp");

	// print out details
	stdoutput.printf("	Name:		%s\n",se.getName());
	stdoutput.printf("	Port:		%d\n",se.getPort());
	stdoutput.printf("	Protocol:	%s\n",se.getProtocol());
	stdoutput.printf("	Alias list:\n");
	for (uint32_t i=0; se.getAliasList() && se.getAliasList()[i]; i++) {
		stdoutput.printf("		%s\n",se.getAliasList()[i]);
	}
}

Lookup By Number

In this example, information for "service number 25", "tcp" protocol is retrieved.

// Copyright (c) 1999-2018 David Muse
// See the file COPYING for more information

#include <rudiments/serviceentry.h>
#include <rudiments/stdio.h>

int main(int argc, const char **argv) {

	// get the service information for the service
	// that would run on port 25, "tcp" protocol
	serviceentry	se;
	se.open(25,"tcp");

	// print out details
	stdoutput.printf("	Name:		%s\n",se.getName());
	stdoutput.printf("	Port:		%d\n",se.getPort());
	stdoutput.printf("	Protocol:	%s\n",se.getProtocol());
	stdoutput.printf("	Alias list:\n");
	for (uint32_t i=0; se.getAliasList() && se.getAliasList()[i]; i++) {
		stdoutput.printf("		%s\n",se.getAliasList()[i]);
	}
}
Copyright 2017 - David Muse - Contact