aboutsummaryrefslogtreecommitdiffstats
path: root/tc/tc.c
diff options
context:
space:
mode:
authorosdl.net!shemminger <osdl.net!shemminger>2004-07-02 17:47:53 +0000
committerosdl.net!shemminger <osdl.net!shemminger>2004-07-02 17:47:53 +0000
commitb7a45150854a59bc95f65ec79af35dd390f05a50 (patch)
tree9a103c50d106ac127dd09fc27ad5a0f4468155e2 /tc/tc.c
parentd3ea2e81938ae99e48ee5ad928d08e50f1710757 (diff)
downloadplatform_external_iproute2-b7a45150854a59bc95f65ec79af35dd390f05a50.tar.gz
platform_external_iproute2-b7a45150854a59bc95f65ec79af35dd390f05a50.tar.bz2
platform_external_iproute2-b7a45150854a59bc95f65ec79af35dd390f05a50.zip
Default lookup path for tc qdiscplines is /usr/lib/tc
Get rid of dead code. Make BODY static. (Logical change 1.47)
Diffstat (limited to 'tc/tc.c')
-rw-r--r--tc/tc.c23
1 files changed, 5 insertions, 18 deletions
diff --git a/tc/tc.c b/tc/tc.c
index f669e941..b3487512 100644
--- a/tc/tc.c
+++ b/tc/tc.c
@@ -36,7 +36,7 @@ int show_raw = 0;
int resolve_hosts = 0;
int use_iec = 0;
-void *BODY;
+static void *BODY; /* cached handle dlopen(NULL) */
static struct qdisc_util * qdisc_list;
static struct filter_util * filter_list;
@@ -84,19 +84,6 @@ static int parse_nofopt(struct filter_util *qu, char *fhandle, int argc, char **
return 0;
}
-#if 0
-/* Builtin filter types */
-
-static int f_parse_noopt(struct filter_util *qu, char *fhandle, int argc, char **argv, struct nlmsghdr *n)
-{
- if (argc || fhandle) {
- fprintf(stderr, "Filter \"%s\" has no options.\n", qu->id);
- return -1;
- }
- return 0;
-}
-#endif
-
struct qdisc_util *get_qdisc_kind(const char *str)
{
void *dlh;
@@ -107,9 +94,10 @@ struct qdisc_util *get_qdisc_kind(const char *str)
if (strcmp(q->id, str) == 0)
return q;
- snprintf(buf, sizeof(buf), "q_%s.so", str);
+ snprintf(buf, sizeof(buf), "/usr/lib/tc/q_%s.so", str);
dlh = dlopen(buf, RTLD_LAZY);
- if (dlh == NULL) {
+ if (!dlh) {
+ /* look in current binary, only open once */
dlh = BODY;
if (dlh == NULL) {
dlh = BODY = dlopen(NULL, RTLD_LAZY);
@@ -151,7 +139,7 @@ struct filter_util *get_filter_kind(const char *str)
if (strcmp(q->id, str) == 0)
return q;
- snprintf(buf, sizeof(buf), "f_%s.so", str);
+ snprintf(buf, sizeof(buf), "/usr/lib/tc/f_%s.so", str);
dlh = dlopen(buf, RTLD_LAZY);
if (dlh == NULL) {
dlh = BODY;
@@ -171,7 +159,6 @@ reg:
q->next = filter_list;
filter_list = q;
return q;
-
noexist:
q = malloc(sizeof(*q));
if (q) {