Skip to contentSkip to conversation

options in plugins?

DISCUSSION Greg Stark 5 participants 5 messages Jul 10, 2005 – Jul 11, 2005 PPP protocol drivers and compressors

lore
Share & tools
lore

Greg Stark

author
#0 lore raw

I'm not sure if development on pppd is still active. It seems there are dozens of patches floating around and no upstream releases coming. Is it? Is this still the list to reach the upstream maintainers?

My question is whether there's a way to add options in a plugin. It seems the options list is a static array in plugins.c and plugins are loaded using dlsym. So unless I've missed some piece of infrastructure there isn't.

This is really unfortunate. My ultimate goal is to make the timeouts and retries in pppoe configurable just as they are for LCP. Currently they're set to 5s with unbounded exponential backoff and a max of 3 retries. That makes any temporary outage of even about 30s result in a complete failure.

I've hacked my personal copy to just retry every 5s forever but in an ideal world there would be a pppoe-restart and pppoe-maxfail just like lcp-restart and maxfail that could be set in the options or peers files.

But I don't see any reasonable way to do that without writing a lot of code. Nor am I clear whether such a patch would eventually get released. There's not much point in writing it just for myself -- I have my personal version hacked up for my use already. If development is dead then there's not much point in fixing this problem so generally.

Signature · 1 line
greg
#1 lore raw

Hi Greg,

Quoted 4 lines · Greg Stark

I'm not sure if development on pppd is still active. It seems there are dozens of patches floating around and no upstream releases coming. Is it? Is this still the list to reach the upstream maintainers?

It is a very quiet list, I emailed someone last year to see if they taking patches and no response. Only monitoring this group couple weeks, seems little traffic, holiday season?

Quoted 9 lines

My question is whether there's a way to add options in a plugin. It seems the options list is a static array in plugins.c and plugins are loaded using dlsym. So unless I've missed some piece of infrastructure there isn't.

This is really unfortunate. My ultimate goal is to make the timeouts and retries in pppoe configurable just as they are for LCP. Currently they're set to 5s with unbounded exponential backoff and a max of 3 retries. That makes any temporary outage of even about 30s result in a complete failure.

I wish I knew more of the pppoe <-> ADSL linkup as sometimes it takes a long time to establish a connection.

Quoted 4 lines

I've hacked my personal copy to just retry every 5s forever but in an ideal world there would be a pppoe-restart and pppoe-maxfail just like lcp-restart and maxfail that could be set in the options or peers files.

What scripts are you using? I'm using rp-pppoe to drive the connection, dunno what other ways there may be.

Quoted 6 lines

But I don't see any reasonable way to do that without writing a lot of code. Nor am I clear whether such a patch would eventually get released. There's not much point in writing it just for myself -- I have my personal version hacked up for my use already. If development is dead then there's not much point in fixing this problem so generally.

Scratch your itch, see if anyone else agrees with solution?

Perhaps some like me, mostly have working connection, sometimes problems, it aint too broke to worry about?

Another issue perhaps is that users may not be comfortable testing pppoe code on firewall box? Mine is running 2.4 kernel.

Cheers,
Grant.

#2 lore raw
In reply to Greg Stark

hi,

yeah - you definately can add options in a plugin.

define a global static option_t array in your code:

e.g.

static option_t options[] = {{"optionname", o_string, &variable_name, "Description"},{"option2name", o_string, &variable2_name, "Description2"}, ... , {NULL}};

(o_string is the option type - there are some other ones - i forget which pppd source file to look in for the list and i don't have a copy of the source on hand atm. Also, there has to be a {NULL} entry to denote the end of the list)

then include an add_options(options); command in your plugin_init().

I think all you need include is pppd.h.

As for development, as far as i can tell, there is still development going on. I've been suscribed to this list for a few years and it is very low traffic. I'm guessing development is done somewhat as an exclusive club kinda thing.

hope this helps.

cheers,

David

Quoted 50 lines · --- Greg Stark

I'm not sure if development on pppd is still active. It seems there are dozens
of patches floating around and no upstream releases coming. Is it? Is this
still the list to reach the upstream maintainers?

My question is whether there's a way to add options in a plugin. It seems the
options list is a static array in plugins.c and plugins are loaded using
dlsym. So unless I've missed some piece of infrastructure there isn't.

This is really unfortunate. My ultimate goal is to make the timeouts and
retries in pppoe configurable just as they are for LCP. Currently they're set
to 5s with unbounded exponential backoff and a max of 3 retries. That makes
any temporary outage of even about 30s result in a complete failure.

I've hacked my personal copy to just retry every 5s forever but in an ideal
world there would be a pppoe-restart and pppoe-maxfail just like lcp-restart
and maxfail that could be set in the options or peers files.

But I don't see any reasonable way to do that without writing a lot of code.
Nor am I clear whether such a patch would eventually get released. There's not
much point in writing it just for myself -- I have my personal version hacked
up for my use already. If development is dead then there's not much point in
fixing this problem so generally.

Signature · 8 lines
greg

-
To unsubscribe from this list: send the line
"unsubscribe linux-ppp" in
the body of a message to [email protected]
More majordomo info at 
http://vger.kernel.org/majordomo-info.html
#3 lore raw
In reply to Greg Stark
Quoted 1 line · Greg Stark

I'm not sure if development on pppd is still active.

Yes it is still active, although slow.

Quoted 3 lines

It seems there are dozens
of patches floating around and no upstream releases coming. Is it? Is this still the list to reach the upstream maintainers?

It'll do. :)

Quoted 3 lines

My question is whether there's a way to add options in a plugin. It seems the options list is a static array in plugins.c and plugins are loaded using dlsym. So unless I've missed some piece of infrastructure there isn't.

There are two ways a plugin can add options. The first is to call add_options, and the second is to set the_channel to point to the plugin's channel structure, which can have a pointer to an array of channel-specific options.

Quoted 3 lines

I've hacked my personal copy to just retry every 5s forever but in an ideal world there would be a pppoe-restart and pppoe-maxfail just like lcp-restart and maxfail that could be set in the options or peers files.

Just add them to the Options[] array in pppd/plugins/rp-pppoe/plugin.c.

Paul.

#4 lore raw
In reply to Greg Stark
Quoted 9 lines · Grant Coady
Quoted 4 lines · Greg Stark

I'm not sure if development on pppd is still active. It seems there are dozens of patches floating around and no upstream releases coming. Is it? Is this still the list to reach the upstream maintainers?

It is a very quiet list, I emailed someone last year to see if they taking patches and no response. Only monitoring this group couple weeks, seems little traffic, holiday season?

It's a fairly quiet list most of the time, as the code base is fairly mature.

There ought to be a FAQ on getting changes integrated with a given project, as it seems to be an obscure art. In short, just sending a bunch of diffs to the maintainers rarely (if ever) works. The sorts of things we want to know are:

- What exactly are you doing? Are you fixing a problem you saw or adding a new feature? If it's a problem, what are the symptoms and can it be reproduced? If it's a new feature, how does it fit in with existing features, and why were the existing features "not enough" to do what was needed?

- What testing have you done? Have you checked for memory leaks? Have you checked for compatibility with other implementations (if necessary)?

- Are you _sure_ this is the right fix, or are you just soliciting comments? Is there perhaps a bigger (and unfixed) problem lurking behind this one?

It's not that it's some sort of "club," but if we don't know who you are and what you're doing, it's not always clear what to do about the bags of bits we sometimes get.

Quoted 7 lines
Quoted 5 lines

But I don't see any reasonable way to do that without writing a lot of code. Nor am I clear whether such a patch would eventually get released. There's not much point in writing it just for myself -- I have my personal version hacked up for my use already. If development is dead then there's not much point in fixing this problem so generally.

Scratch your itch, see if anyone else agrees with solution?

As others have pointed out, this feature already exists. No need to scratch anything.

Signature · 1 line
James Carlson                                 <[email protected]>