aboutsummaryrefslogtreecommitdiff
path: root/networking/udhcp/libbb_udhcp.h
blob: cce826786d5a131e2860a9c28c547be1c54b1c60 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
/* libbb_udhcp.h - busybox compatibility wrapper */

/* bit of a hack, do this no matter what the order of the includes.
 * (for busybox) */

#ifndef _LIBBB_UDHCP_H
#define _LIBBB_UDHCP_H

#ifdef CONFIG_INSTALL_NO_USR
# define DEFAULT_SCRIPT  "/share/udhcpc/default.script"
#else
# define DEFAULT_SCRIPT  "/usr/share/udhcpc/default.script"
#endif

#ifdef IN_BUSYBOX
#include "busybox.h"

#ifdef CONFIG_FEATURE_UDHCP_SYSLOG
#define UDHCP_SYSLOG
#endif

#ifdef CONFIG_FEATURE_UDHCP_DEBUG
#define UDHCP_DEBUG
#endif

#define COMBINED_BINARY
#include "version.h"

#define xfopen bb_xfopen

/* make safe the exported namespace */
/* from common.h */
#define background		udhcp_background
#define start_log_and_pid	udhcp_start_log_and_pid
/* from script.h */
#define run_script		udhcp_run_script
/* from packet.h */
#define init_header		udhcp_init_header
#define get_packet		udhcp_get_packet
#define checksum		udhcp_checksum
#define raw_packet		udhcp_raw_packet
#define kernel_packet		udhcp_kernel_packet
/* from pidfile.h */
#define pidfile_acquire		udhcp_pidfile_acquire
#define pidfile_write_release	udhcp_pidfile_write_release
/* from options.h */
#define get_option		udhcp_get_option
#define end_option		udhcp_end_option
#define add_option_string	udhcp_add_option_string
#define add_simple_option	udhcp_add_simple_option
#define option_lengths		udhcp_option_lengths
/* from socket.h */
#define listen_socket		udhcp_listen_socket
#define read_interface		udhcp_read_interface
/* from dhcpc.h */
#define client_config		udhcp_client_config
/* from dhcpd.h */
#define server_config		udhcp_server_config

#else /* ! IN_BUSYBOX */

#include <stdlib.h>
#include <stdio.h>
#include <sys/sysinfo.h>

#ifndef ATTRIBUTE_NORETURN
#define ATTRIBUTE_NORETURN __attribute__ ((__noreturn__))
#endif /* ATTRIBUTE_NORETURN */

#ifndef ATTRIBUTE_PACKED
#define ATTRIBUTE_PACKED __attribute__ ((__packed__))
#endif /* ATTRIBUTE_PACKED */

#define TRUE			1
#define FALSE			0

#define xmalloc malloc
#define xcalloc calloc

static inline FILE *xfopen(const char *file, const char *mode)
{
	FILE *fp;
	if (!(fp = fopen(file, mode))) {
		perror("could not open input file");
		exit(0);
	}
	return fp;
}

#endif /* IN_BUSYBOX */

#endif /* _LIBBB_UDHCP_H */