tcpdump mailing list archives
Re: Initializing a device
From: Akos Vandra <axos88 () gmail com>
Date: Thu, 12 Jan 2012 10:06:06 +0100
We could put a limit - say 32 or 64 chars - to the max length of the param, and then allocate in on the stack, but it would still require printf. In this form, as we are going to have a single interface function to set and read the parameter, some serialization and deserialization of the data is necessary... Either that, or the interface has to be changed to somehow accomodate multiple type input parameters... Varargs maybe? Regards, Ákos On 11 January 2012 10:24, Guy Harris <guy () alum mit edu> wrote:
On Jan 6, 2012, at 2:16 PM, Akos Vandra wrote:On 6 January 2012 17:16, Jakub Zawadzki <darkjames-ws () darkjames pl> wrote:Let's have just: int pcap_setparam(pcap_t *p, const char *param, const char *value) If param is not understand, or value is invalid for given param (like: not integer) it should return -1.Yeah, this would simplify the API. The other side to this argument is that if the application wants to set some calculated value, then it needs to put that into a string, call this function, which will parse it back to an integer. It's not efficient, but I don't really think this is a problem as we don't do it often - only when opening a device, or at least with our current model. And even if later this would be used for an already live pcap handler, I doubt it would be called too often. Maybe even the _uint, _bool, _int64, etc. calls could be only wraps around this one to simplify things in some cases.Once you've done that, whether they're wrappers or not is just an implementation detail; pcap_setparam() would be something you use for user text input (command-line and text-widget), and the other pcap_setparam_XXX() calls would be used for: user non-text input (checkboxes that would return a Boolean, spinboxes that would return a number, combo boxes/option menus that would return an enum value, etc.), as having to convert from those input values to text would be an extra burden; calculated input where you'd again need to convert to text (for constant input you could use a constant string). My concern is less with the CPU efficiency than with the programmer efficiency - I'd rather not have to have to use asprintf() or whatever. This is the tcpdump-workers list. Visit https://cod.sandelman.ca/ to unsubscribe.
- This is the tcpdump-workers list. Visit https://cod.sandelman.ca/ to unsubscribe.
Current thread:
- Initializing a device Akos Vandra (Jan 04)
- Re: Initializing a device Sam Roberts (Jan 04)
- Re: Initializing a device Guy Harris (Jan 04)
- Re: Initializing a device Akos Vandra (Jan 05)
- Re: Initializing a device Guy Harris (Jan 06)
- Re: Initializing a device Akos Vandra (Jan 06)
- Re: Initializing a device Jakub Zawadzki (Jan 06)
- Re: Initializing a device Akos Vandra (Jan 06)
- Re: Initializing a device Guy Harris (Jan 11)
- Re: Initializing a device Akos Vandra (Jan 12)
- Re: Initializing a device Guy Harris (Jan 12)
- Re: Initializing a device Akos Vandra (Jan 12)
- Re: Initializing a device Akos Vandra (Jan 17)
- Re: Initializing a device Akos Vandra (Jan 05)
- Re: Initializing a device Guy Harris (Jan 06)