Hello,
as I could spot, there was some intense activity from Andrei in the last
days with a new internal statistics API. To allow some time for it as
well as for others (like me) to get some work done that is good to be in
3.1, I propose next Monday (Aug 16) as timeline to freeze the repo for
new features.
Probably during the freeze we can still merge some modules (in the way
of moving one version to modules and removing the other as long as
remaining version includes the features of the other) -- thinking of
pdt, ratelimit, sms, ...
Cheers,
Daniel
--
Daniel-Constantin Mierla
http://www.asipto.com/
Module: sip-router
Branch: master
Commit: b23832622f9211a04b1718741fd46eabb41937d5
URL: http://git.sip-router.org/cgi-bin/gitweb.cgi/sip-router/?a=commit;h=b238326…
Author: Marius Zbihlei <marius.zbihlei(a)1and1.ro>
Committer: Marius Zbihlei <marius.zbihlei(a)1and1.ro>
Date: Tue Aug 17 11:12:38 2010 +0300
core: use offsetof() extension to finding the memory offset of a member of a structure
This replaces some undefined behavior code in the form of null pointer dereferences
Offsetof is present in stddef.h and it is fairly portable across platforms/compilers.
---
sr_module.c | 7 ++++---
1 files changed, 4 insertions(+), 3 deletions(-)
diff --git a/sr_module.c b/sr_module.c
index 9c7a2a9..e4f94a3 100644
--- a/sr_module.c
+++ b/sr_module.c
@@ -69,6 +69,7 @@
#include <strings.h>
#include <stdlib.h>
#include <string.h>
+#include <stddef.h> /* for offsetof */
struct sr_module* modules=0;
@@ -922,9 +923,9 @@ int init_modules(void)
action_u_t *fixup_get_param(void **cur_param, int cur_param_no,
int required_param_no)
{
- action_u_t *a, a2;
+ action_u_t *a;
/* cur_param points to a->u.string, get pointer to a */
- a = (void*) ((char *)cur_param - ((char *)&a2.u.string-(char *)&a2));
+ a = (void*) ((char *)cur_param - offsetof(action_u_t, u.string));
return a + required_param_no - cur_param_no;
}
@@ -947,7 +948,7 @@ int fixup_get_param_count(void **cur_param, int cur_param_no)
action_param_type* fixup_get_param_ptype(void** param)
{
action_u_t* a;
- a = (void*)((char*)param - (char*)&(((action_u_t*)(0))->u.string));
+ a = (void*)((char*)param - offsetof(action_u_t, u.string));
return &a->type;
}