Commit aa27f88c authored by Stephen Hemminger's avatar Stephen Hemminger

Add TC_LIB_DIR environment variable.

Don't hardcode /usr/lib/tc as a path
Signed-off-by: default avatarStephen Hemminger <shemminger@linux-foundation.org>
parent 30af9989
......@@ -60,7 +60,7 @@ static int get_distribution(const char *type, __s16 *data)
char *line = NULL;
char name[128];
snprintf(name, sizeof(name), "/usr/lib/tc/%s.dist", type);
snprintf(name, sizeof(name), "%s/%s.dist", get_tc_lib(), type);
if ((f = fopen(name, "r")) == NULL) {
fprintf(stderr, "No distribution data for %s (%s: %s)\n",
type, name, strerror(errno));
......
......@@ -99,7 +99,7 @@ struct qdisc_util *get_qdisc_kind(const char *str)
if (strcmp(q->id, str) == 0)
return q;
snprintf(buf, sizeof(buf), "/usr/lib/tc/q_%s.so", str);
snprintf(buf, sizeof(buf), "%s/q_%s.so", get_tc_lib(), str);
dlh = dlopen(buf, RTLD_LAZY);
if (!dlh) {
/* look in current binary, only open once */
......@@ -145,7 +145,7 @@ struct filter_util *get_filter_kind(const char *str)
if (strcmp(q->id, str) == 0)
return q;
snprintf(buf, sizeof(buf), "/usr/lib/tc/f_%s.so", str);
snprintf(buf, sizeof(buf), "%s/f_%s.so", get_tc_lib(), str);
dlh = dlopen(buf, RTLD_LAZY);
if (dlh == NULL) {
dlh = BODY;
......
......@@ -24,6 +24,17 @@
#include "utils.h"
#include "tc_util.h"
const char *get_tc_lib(void)
{
const char *lib_dir;
lib_dir = getenv("TC_LIB_DIR");
if (!lib_dir)
lib_dir = "/usr/lib/tc";
return lib_dir;
}
int get_qdisc_handle(__u32 *h, const char *str)
{
__u32 maj;
......
......@@ -38,6 +38,8 @@ struct action_util
int (*print_xstats)(struct action_util *au, FILE *f, struct rtattr *xstats);
};
extern const char *get_tc_lib(void);
extern struct qdisc_util *get_qdisc_kind(const char *str);
extern struct filter_util *get_filter_kind(const char *str);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment