iPXE
|
Standalone name resolution. More...
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <errno.h>
#include <ipxe/resolv.h>
#include <ipxe/tcpip.h>
#include <ipxe/monojob.h>
#include <ipxe/settings.h>
#include <usr/nslookup.h>
Go to the source code of this file.
Data Structures | |
struct | nslookup |
A name resolution request. More... | |
Functions | |
FILE_LICENCE (GPL2_OR_LATER) | |
static void | nslookup_close (struct nslookup *nslookup, int rc) |
Terminate name resolution. More... | |
static void | nslookup_resolv_done (struct nslookup *nslookup, struct sockaddr *sa) |
Handle resolved name. More... | |
static int | resolv_setting (struct interface *job, const char *name, const char *setting_name) |
Initiate standalone name resolution. More... | |
int | nslookup (const char *name, const char *setting_name) |
Perform (blocking) standalone name resolution. More... | |
Variables | |
static struct interface_operation | nslookup_resolver_operations [] |
Name resolution resolver interface operations. More... | |
static struct interface_descriptor | nslookup_resolver_desc |
Name resolution resolver interface descriptor. More... | |
static struct interface_operation | nslookup_job_operations [] |
Name resolution job control interface operations. More... | |
static struct interface_descriptor | nslookup_job_desc |
Name resolution job control interface descriptor. More... | |
Standalone name resolution.
Definition in file nslookup.c.
FILE_LICENCE | ( | GPL2_OR_LATER | ) |
|
static |
Terminate name resolution.
nslookup | Name resolution request |
rc | Reason for termination |
Definition at line 58 of file nslookup.c.
References intf_shutdown(), nslookup::job, rc, and nslookup::resolver.
Referenced by nslookup_resolv_done().
Handle resolved name.
nslookup | Name resolution request |
sa | Completed socket address |
Definition at line 71 of file nslookup.c.
References AF_INET, AF_INET6, autovivify_child_settings(), data, ENOTSUP, len, nslookup_close(), parse_setting_name(), rc, sa, sockaddr::sa_family, nslookup::setting_name, sin, sin6, sockaddr_in6::sin6_addr, sockaddr_in::sin_addr, store_setting(), and setting::type.
|
static |
Initiate standalone name resolution.
job | Parent interface |
name | Name to resolve |
setting_name | Setting name |
rc | Return status code |
Definition at line 149 of file nslookup.c.
References ENOMEM, intf_init(), intf_plug_plug(), nslookup::job, memset(), name, nslookup(), nslookup_job_desc, nslookup_resolver_desc, NULL, rc, ref_init, ref_put, nslookup::refcnt, resolv(), nslookup::resolver, sa, nslookup::setting_name, setting_name(), strcpy(), strlen(), and zalloc().
Referenced by nslookup().
int nslookup | ( | const char * | name, |
const char * | setting_name | ||
) |
Perform (blocking) standalone name resolution.
name | Name to resolve |
setting_name | Setting name |
rc | Return status code |
Definition at line 191 of file nslookup.c.
References monojob, monojob_wait(), name, NULL, printf(), rc, resolv_setting(), setting_name(), and strerror().
Referenced by resolv_setting().
|
static |
Name resolution resolver interface operations.
Definition at line 121 of file nslookup.c.
|
static |
Name resolution resolver interface descriptor.
Definition at line 127 of file nslookup.c.
Referenced by resolv_setting().
|
static |
Name resolution job control interface operations.
Definition at line 132 of file nslookup.c.
|
static |
Name resolution job control interface descriptor.
Definition at line 137 of file nslookup.c.
Referenced by resolv_setting().