PERFORCE change 83130 for review
soc-pisati
soc-pisati at FreeBSD.org
Mon Sep 5 08:35:47 PDT 2005
http://perforce.freebsd.org/chv.cgi?CH=83130
Change 83130 by soc-pisati at soc-pisati_longino on 2005/09/05 15:35:43
Cosmetic fixes:
-renamed layer to proto in struct proto_handler
-word aligned struct proto_handler moving dir and proto
from int8_t to int16_t
-removed useless names of fingerprint and protocol handler
functions from struct proto_handler
-rename [attach|detach]_handler to [attach|detach]_handlers
-updated readme.txt to reflect changes
-fixed fix_base.sh
-and something else that i probably forgot now.. :P
Affected files ...
.. //depot/projects/soc2005/libalias/Makefile#4 edit
.. //depot/projects/soc2005/libalias/fix-base.sh#2 edit
.. //depot/projects/soc2005/libalias/ipfw2-4/Makefile#2 edit
.. //depot/projects/soc2005/libalias/ipfw2-4/kld/Makefile#2 edit
.. //depot/projects/soc2005/libalias/ipfw2-4/kld/in.h#2 edit
.. //depot/projects/soc2005/libalias/ipfw2-4/kld/ip_fw.c#2 edit
.. //depot/projects/soc2005/libalias/ipfw2-4/kld/ip_fw.h#2 edit
.. //depot/projects/soc2005/libalias/ipfw2-4/kld/ip_fw2.c#2 edit
.. //depot/projects/soc2005/libalias/ipfw2-4/kld/ip_fw2.h#2 edit
.. //depot/projects/soc2005/libalias/ipfw2-4/kld/raw_ip.c#2 edit
.. //depot/projects/soc2005/libalias/ipfw2-4/sbin/Makefile#2 edit
.. //depot/projects/soc2005/libalias/ipfw2-4/sbin/ipfw.8#2 edit
.. //depot/projects/soc2005/libalias/ipfw2-4/sbin/ipfw.c#2 edit
.. //depot/projects/soc2005/libalias/ipfw2-4/sbin/ipfw2.c#2 edit
.. //depot/projects/soc2005/libalias/ipfw2-5/Makefile#2 edit
.. //depot/projects/soc2005/libalias/ipfw2-5/kld/Makefile#2 edit
.. //depot/projects/soc2005/libalias/ipfw2-5/kld/in.h#2 edit
.. //depot/projects/soc2005/libalias/ipfw2-5/kld/ip_fw.h#2 edit
.. //depot/projects/soc2005/libalias/ipfw2-5/kld/ip_fw2.c#2 edit
.. //depot/projects/soc2005/libalias/ipfw2-5/kld/ip_fw_pfil.c#2 edit
.. //depot/projects/soc2005/libalias/ipfw2-5/kld/raw_ip.c#2 edit
.. //depot/projects/soc2005/libalias/ipfw2-5/sbin/Makefile#2 edit
.. //depot/projects/soc2005/libalias/ipfw2-5/sbin/ipfw.8#2 edit
.. //depot/projects/soc2005/libalias/ipfw2-5/sbin/ipfw2.c#2 edit
.. //depot/projects/soc2005/libalias/ipfw2-6/Makefile#2 edit
.. //depot/projects/soc2005/libalias/ipfw2-6/kld/Makefile#2 edit
.. //depot/projects/soc2005/libalias/ipfw2-6/kld/in.h#2 edit
.. //depot/projects/soc2005/libalias/ipfw2-6/kld/ip_fw.h#2 edit
.. //depot/projects/soc2005/libalias/ipfw2-6/kld/ip_fw2.c#2 edit
.. //depot/projects/soc2005/libalias/ipfw2-6/kld/ip_fw_pfil.c#2 edit
.. //depot/projects/soc2005/libalias/ipfw2-6/kld/raw_ip.c#2 edit
.. //depot/projects/soc2005/libalias/ipfw2-6/sbin/Makefile#2 edit
.. //depot/projects/soc2005/libalias/ipfw2-6/sbin/ipfw.8#2 edit
.. //depot/projects/soc2005/libalias/ipfw2-6/sbin/ipfw2.c#2 edit
.. //depot/projects/soc2005/libalias/libalias/HISTORY#2 edit
.. //depot/projects/soc2005/libalias/libalias/Makefile#2 edit
.. //depot/projects/soc2005/libalias/libalias/alias.c#2 edit
.. //depot/projects/soc2005/libalias/libalias/alias.h#2 edit
.. //depot/projects/soc2005/libalias/libalias/alias_cuseeme.c#2 edit
.. //depot/projects/soc2005/libalias/libalias/alias_db.c#2 edit
.. //depot/projects/soc2005/libalias/libalias/alias_dummy.c#2 edit
.. //depot/projects/soc2005/libalias/libalias/alias_ftp.c#2 edit
.. //depot/projects/soc2005/libalias/libalias/alias_irc.c#2 edit
.. //depot/projects/soc2005/libalias/libalias/alias_local.h#2 edit
.. //depot/projects/soc2005/libalias/libalias/alias_mod.c#2 edit
.. //depot/projects/soc2005/libalias/libalias/alias_mod.h#2 edit
.. //depot/projects/soc2005/libalias/libalias/alias_nbt.c#2 edit
.. //depot/projects/soc2005/libalias/libalias/alias_old.c#2 edit
.. //depot/projects/soc2005/libalias/libalias/alias_pptp.c#2 edit
.. //depot/projects/soc2005/libalias/libalias/alias_proxy.c#2 edit
.. //depot/projects/soc2005/libalias/libalias/alias_skinny.c#2 edit
.. //depot/projects/soc2005/libalias/libalias/alias_smedia.c#2 edit
.. //depot/projects/soc2005/libalias/libalias/alias_util.c#2 edit
.. //depot/projects/soc2005/libalias/libalias/kld-cuseeme/Makefile#2 edit
.. //depot/projects/soc2005/libalias/libalias/kld-dummy/Makefile#2 edit
.. //depot/projects/soc2005/libalias/libalias/kld-ftp/Makefile#2 edit
.. //depot/projects/soc2005/libalias/libalias/kld-irc/Makefile#2 edit
.. //depot/projects/soc2005/libalias/libalias/kld-libalias/Makefile#2 edit
.. //depot/projects/soc2005/libalias/libalias/kld-nbt/Makefile#2 edit
.. //depot/projects/soc2005/libalias/libalias/kld-pptp/Makefile#2 edit
.. //depot/projects/soc2005/libalias/libalias/kld-skinny/Makefile#2 edit
.. //depot/projects/soc2005/libalias/libalias/kld-smedia/Makefile#2 edit
.. //depot/projects/soc2005/libalias/libalias/lib-cuseeme/Makefile#2 edit
.. //depot/projects/soc2005/libalias/libalias/lib-dummy/Makefile#2 edit
.. //depot/projects/soc2005/libalias/libalias/lib-ftp/Makefile#2 edit
.. //depot/projects/soc2005/libalias/libalias/lib-irc/Makefile#2 edit
.. //depot/projects/soc2005/libalias/libalias/lib-libalias/Makefile#2 edit
.. //depot/projects/soc2005/libalias/libalias/lib-nbt/Makefile#2 edit
.. //depot/projects/soc2005/libalias/libalias/lib-pptp/Makefile#2 edit
.. //depot/projects/soc2005/libalias/libalias/lib-skinny/Makefile#2 edit
.. //depot/projects/soc2005/libalias/libalias/lib-smedia/Makefile#2 edit
.. //depot/projects/soc2005/libalias/libalias/libalias.3#2 edit
.. //depot/projects/soc2005/libalias/libalias/libalias.conf#2 edit
.. //depot/projects/soc2005/libalias/ng_nat/Makefile#2 edit
.. //depot/projects/soc2005/libalias/ng_nat/ng_nat.c#2 edit
.. //depot/projects/soc2005/libalias/ng_nat/ng_nat.h#2 edit
.. //depot/projects/soc2005/libalias/patch/strsep.c#2 edit
.. //depot/projects/soc2005/libalias/patch/strspn.c#2 edit
.. //depot/projects/soc2005/libalias/readme.txt#2 edit
.. //depot/projects/soc2005/libalias/test/setup_test_env.sh#2 edit
.. //depot/projects/soc2005/libalias/test/test_ipfw_nat.sh#2 edit
.. //depot/projects/soc2005/libalias/test/test_ng_nat.sh#2 edit
Differences ...
==== //depot/projects/soc2005/libalias/Makefile#4 (text+ko) ====
==== //depot/projects/soc2005/libalias/fix-base.sh#2 (text+ko) ====
@@ -18,8 +18,8 @@
# patch libkern (4.x and 5.x only)
patch_libkern() {
# check if libkern was already applied...
- grep strspn /usr/src/sys/sys/libkern.h
- [ $? -eq 1 ] && return
+ grep strspn ${PREF}/sys/sys/libkern.h
+ [ $? -ne 1 ] && return
cat ${PREF}/sys/sys/libkern.h | awk -v l=${LIBKERN} '{print} /^char*.\*strncpy/ {print l}' > ${PREF}/sys/sys/libkern.h.tmp
cat ${PREF}/sys/conf/files | awk -v f=${FILES} '{print} /^libkern\/strncpy\.c/ {print f}' > ${PREF}/sys/conf/files.tmp
@@ -49,7 +49,7 @@
patch_libkern
;;
4)
-LIBKERN="char\t\*strsep(char\*\*,const\tchar\t\*delim);\nsize_t\tstrspn(const\tchar*\,const\tchar\*);"
+LIBKERN="char\t\*strsep(char\*\*,const\tchar\t\*);\nsize_t\tstrspn(const\tchar*\,const\tchar\*);"
FILES="libkern\/strsep\.c\tstandard\nlibkern\/strspn\.c\tstandard"
install_lib_ng_nat
==== //depot/projects/soc2005/libalias/ipfw2-4/Makefile#2 (text+ko) ====
==== //depot/projects/soc2005/libalias/ipfw2-4/kld/Makefile#2 (text+ko) ====
==== //depot/projects/soc2005/libalias/ipfw2-4/kld/in.h#2 (text+ko) ====
==== //depot/projects/soc2005/libalias/ipfw2-4/kld/ip_fw.c#2 (text+ko) ====
==== //depot/projects/soc2005/libalias/ipfw2-4/kld/ip_fw.h#2 (text+ko) ====
==== //depot/projects/soc2005/libalias/ipfw2-4/kld/ip_fw2.c#2 (text+ko) ====
==== //depot/projects/soc2005/libalias/ipfw2-4/kld/ip_fw2.h#2 (text+ko) ====
==== //depot/projects/soc2005/libalias/ipfw2-4/kld/raw_ip.c#2 (text+ko) ====
==== //depot/projects/soc2005/libalias/ipfw2-4/sbin/Makefile#2 (text+ko) ====
@@ -8,4 +8,8 @@
CFLAGS+= -DIPFW2
.endif
+# XXX - dunno why i need these...
+DESTDIR=/
+BINDIR=sbin
+
.include <bsd.prog.mk>
==== //depot/projects/soc2005/libalias/ipfw2-4/sbin/ipfw.8#2 (text+ko) ====
==== //depot/projects/soc2005/libalias/ipfw2-4/sbin/ipfw.c#2 (text+ko) ====
==== //depot/projects/soc2005/libalias/ipfw2-4/sbin/ipfw2.c#2 (text+ko) ====
==== //depot/projects/soc2005/libalias/ipfw2-5/Makefile#2 (text+ko) ====
==== //depot/projects/soc2005/libalias/ipfw2-5/kld/Makefile#2 (text+ko) ====
==== //depot/projects/soc2005/libalias/ipfw2-5/kld/in.h#2 (text+ko) ====
==== //depot/projects/soc2005/libalias/ipfw2-5/kld/ip_fw.h#2 (text+ko) ====
==== //depot/projects/soc2005/libalias/ipfw2-5/kld/ip_fw2.c#2 (text+ko) ====
==== //depot/projects/soc2005/libalias/ipfw2-5/kld/ip_fw_pfil.c#2 (text+ko) ====
==== //depot/projects/soc2005/libalias/ipfw2-5/kld/raw_ip.c#2 (text+ko) ====
==== //depot/projects/soc2005/libalias/ipfw2-5/sbin/Makefile#2 (text+ko) ====
@@ -5,4 +5,8 @@
WARNS?= 0
MAN= ipfw.8
+# XXX - dunno why i need these...
+DESTDIR=/
+BINDIR=sbin
+
.include <bsd.prog.mk>
==== //depot/projects/soc2005/libalias/ipfw2-5/sbin/ipfw.8#2 (text+ko) ====
==== //depot/projects/soc2005/libalias/ipfw2-5/sbin/ipfw2.c#2 (text+ko) ====
==== //depot/projects/soc2005/libalias/ipfw2-6/Makefile#2 (text+ko) ====
==== //depot/projects/soc2005/libalias/ipfw2-6/kld/Makefile#2 (text+ko) ====
==== //depot/projects/soc2005/libalias/ipfw2-6/kld/in.h#2 (text+ko) ====
==== //depot/projects/soc2005/libalias/ipfw2-6/kld/ip_fw.h#2 (text+ko) ====
==== //depot/projects/soc2005/libalias/ipfw2-6/kld/ip_fw2.c#2 (text+ko) ====
==== //depot/projects/soc2005/libalias/ipfw2-6/kld/ip_fw_pfil.c#2 (text+ko) ====
==== //depot/projects/soc2005/libalias/ipfw2-6/kld/raw_ip.c#2 (text+ko) ====
==== //depot/projects/soc2005/libalias/ipfw2-6/sbin/Makefile#2 (text+ko) ====
@@ -6,4 +6,8 @@
MAN= ipfw.8
CFLAGS+=-g
+# XXX - dunno why i need these...
+DESTDIR=/
+BINDIR=sbin
+
.include <bsd.prog.mk>
==== //depot/projects/soc2005/libalias/ipfw2-6/sbin/ipfw.8#2 (text+ko) ====
==== //depot/projects/soc2005/libalias/ipfw2-6/sbin/ipfw2.c#2 (text+ko) ====
==== //depot/projects/soc2005/libalias/libalias/HISTORY#2 (text+ko) ====
==== //depot/projects/soc2005/libalias/libalias/Makefile#2 (text+ko) ====
==== //depot/projects/soc2005/libalias/libalias/alias.c#2 (text+ko) ====
@@ -1539,7 +1539,6 @@
void *handle;
struct proto_handler *m;
const char *error;
- int i, *n;
moduledata_t *p;
handle = dlopen (path, RTLD_LAZY);
@@ -1571,26 +1570,7 @@
return (NOK);
}
- n = dlsym(handle, "entries");
- if ((error = dlerror()) != NULL) {
- fputs(error, stderr);
- return (NOK);
- }
-
- for (i=0; i<*n; i++) {
- m[i].fingerprint = dlsym(t->handle, m[i].fingername);
- if ((error = dlerror()) != NULL) {
- fputs(error, stderr);
- return (NOK);
- }
- m[i].protohandler = dlsym(t->handle, m[i].protohname);
- if ((error = dlerror()) != NULL) {
- fputs(error, stderr);
- return (NOK);
- }
- attach_handler(&m[i], 1);
- }
- printf("num of proto_handler: %u\n", i);
+ attach_handlers(m);
return (OK);
}
@@ -1601,7 +1581,7 @@
/* unload all modules then reload everything */
while ((p = first_handler()) != NULL) {
- detach_handler(p, 1);
+ detach_handler(p);
}
while ((t = walk_dll_chain()) != NULL) {
dlclose(t->handle);
==== //depot/projects/soc2005/libalias/libalias/alias.h#2 (text+ko) ====
==== //depot/projects/soc2005/libalias/libalias/alias_cuseeme.c#2 (text+ko) ====
@@ -103,13 +103,9 @@
}
/* Kernel module definition. */
-struct proto_handler handlers[] = {{120, OUT, UDP, "fingerprint", &fingerprint,
- "protohandlerout", &protohandlerout},
- {120, IN, UDP, "fingerprint", &fingerprint,
- "protohandlerin", &protohandlerin}};
+struct proto_handler handlers[] = {{120, OUT, UDP, &fingerprint, &protohandlerout},
+ {120, IN, UDP, &fingerprint, &protohandlerin}, {EOH}};
-int entries = sizeof (handlers) / sizeof (struct proto_handler);
-
static int
mod_handler(module_t mod, int type, void *data)
{
@@ -118,11 +114,11 @@
switch (type) {
case MOD_LOAD:
error = 0;
- attach_handler(handlers, entries);
+ attach_handlers(handlers);
break;
case MOD_UNLOAD:
error = 0;
- detach_handler(handlers, entries);
+ detach_handlers(handlers);
break;
default:
error = EINVAL;
==== //depot/projects/soc2005/libalias/libalias/alias_db.c#2 (text+ko) ====
==== //depot/projects/soc2005/libalias/libalias/alias_dummy.c#2 (text+ko) ====
@@ -114,10 +114,8 @@
* THEIR EXACT NAMES: handlers and entries.
*/
-struct proto_handler handlers [] = {{666, IN|OUT, UDP|TCP, "fingerprint", &fingerprint,
- "protohandler", &protohandler}};
-
-int entries = sizeof (handlers) / sizeof (struct proto_handler);
+struct proto_handler handlers [] = {{666, IN|OUT, UDP|TCP, &fingerprint,
+ &protohandler}, {EOH}};
static int
mod_handler(module_t mod, int type, void *data)
@@ -127,11 +125,11 @@
switch (type) {
case MOD_LOAD:
error = 0;
- attach_handler(handlers, entries);
+ attach_handlers(handlers);
break;
case MOD_UNLOAD:
error = 0;
- detach_handler(handlers, entries);
+ detach_handlers(handlers);
break;
default:
error = EINVAL;
==== //depot/projects/soc2005/libalias/libalias/alias_ftp.c#2 (text+ko) ====
@@ -132,10 +132,8 @@
return (OK);
}
-struct proto_handler handlers[] = {{80, OUT, TCP, "fingerprint", &fingerprint,
- "protohandler", &protohandler}};
-
-int entries = sizeof (handlers) / sizeof (struct proto_handler);
+struct proto_handler handlers[] = {{80, OUT, TCP, &fingerprint,
+ &protohandler}, {EOH}};
static int
mod_handler(module_t mod, int type, void *data)
@@ -145,11 +143,11 @@
switch (type) {
case MOD_LOAD:
error = 0;
- attach_handler(handlers, entries);
+ attach_handlers(handlers);
break;
case MOD_UNLOAD:
error = 0;
- detach_handler(handlers, entries);
+ detach_handlers(handlers);
break;
default:
error = EINVAL;
==== //depot/projects/soc2005/libalias/libalias/alias_irc.c#2 (text+ko) ====
@@ -121,10 +121,8 @@
return (OK);
}
-struct proto_handler handlers[] = {{90, OUT, TCP, "fingerprint", &fingerprint,
- "protohandler", &protohandler}};
-
-int entries = sizeof (handlers) / sizeof (struct proto_handler);
+struct proto_handler handlers[] = {{90, OUT, TCP, &fingerprint,
+ &protohandler}, {EOH}};
static int
mod_handler(module_t mod, int type, void *data) {
@@ -133,11 +131,11 @@
switch (type) {
case MOD_LOAD:
error = 0;
- attach_handler(handlers, entries);
+ attach_handlers(handlers);
break;
case MOD_UNLOAD:
error = 0;
- detach_handler(handlers, entries);
+ detach_handlers(handlers);
break;
default:
error = EINVAL;
==== //depot/projects/soc2005/libalias/libalias/alias_local.h#2 (text+ko) ====
==== //depot/projects/soc2005/libalias/libalias/alias_mod.c#2 (text+ko) ====
@@ -239,7 +239,7 @@
p->next = NULL; /* i'm paranoid... */
for(; *b != NULL; b = &((*b)->next), i++) {
if (((*b)->pri == p->pri) && ((*b)->dir == p->dir) &&
- ((*b)->layer == p->layer))
+ ((*b)->proto == p->proto))
return (EHDCON); /* priority conflict */
if ((*b)->pri > p->pri) {
p->next = *b; break;
@@ -264,11 +264,12 @@
}
int
-attach_handler(struct proto_handler *_p, int s) {
+attach_handlers(struct proto_handler *_p) {
int i, res = NOK;
LIBALIAS_WLOCK(&handler_chain);
- for (i=0; i<s; i++) {
+ for (i=0; 1; i++) {
+ if (*((int *)&_p[i]) == EOH) break;
res = _attach_handler(&handler_chain, &_p[i]);
if (res != OK) break;
}
@@ -277,11 +278,12 @@
}
int
-detach_handler(struct proto_handler *_p, int s) {
+detach_handlers(struct proto_handler *_p) {
int i, res = NOK;
LIBALIAS_WLOCK(&handler_chain);
- for (i=0; i<s; i++) {
+ for (i=0; 1; i++) {
+ if (*((int *)&_p[i]) == EOH) break;
res = _detach_handler(&handler_chain, &_p[i]);
if (res != OK) break;
}
@@ -290,13 +292,23 @@
}
int
-find_handler(int8_t dir, int8_t layer, struct libalias *la, struct ip *pip, struct alias_data *ad) {
+detach_handler(struct proto_handler *_p) {
+ int res = NOK;
+
+ LIBALIAS_WLOCK(&handler_chain);
+ res = _detach_handler(&handler_chain, _p);
+ LIBALIAS_WUNLOCK(&handler_chain);
+ return (res);
+}
+
+int
+find_handler(int8_t dir, int8_t proto, struct libalias *la, struct ip *pip, struct alias_data *ad) {
struct proto_handler *p;
int err;
LIBALIAS_RLOCK(&handler_chain);
for (p = handler_chain.chain, err = EHDNOF; p != NULL; p = p->next)
- if ((p->dir & dir) && (p->layer & layer))
+ if ((p->dir & dir) && (p->proto & proto))
if (p->fingerprint(la, pip, ad) == OK) {
err = p->protohandler(la, pip, ad);
break;
==== //depot/projects/soc2005/libalias/libalias/alias_mod.h#2 (text+ko) ====
@@ -38,7 +38,7 @@
#define IN 1
#define OUT 2
-/* working layer */
+/* working protocol */
#define IP 1
#define TCP 2
#define UDP 4
@@ -67,14 +67,12 @@
struct proto_handler {
- int pri; /* handler priority */
- int8_t dir:2, /* flow direction */
- layer:6; /* layer handler */
- char fingername[32]; /* name of fingerprint function */
- int (*fingerprint)(struct libalias *la, /* fingerprint * function */
+ u_int pri; /* handler priority */
+ int16_t dir; /* flow direction */
+ int16_t proto; /* working protocol */
+ int (*fingerprint)(struct libalias *la, /* fingerprint * function */
struct ip *pip, struct alias_data *ah);
- char protohname[32]; /* name of aliasing function */
- int (*protohandler)(struct libalias *la, /* aliasing * function */
+ int (*protohandler)(struct libalias *la, /* aliasing * function */
struct ip *pip, struct alias_data *ah);
struct proto_handler *next;
};
@@ -119,8 +117,9 @@
void handler_chain_init(void);
void handler_chain_destroy(void);
-int attach_handler(struct proto_handler *, int);
-int detach_handler(struct proto_handler *, int);
+int attach_handlers(struct proto_handler *);
+int detach_handlers(struct proto_handler *);
+int detach_handler(struct proto_handler *);
int find_handler(int8_t, int8_t, struct libalias *,
struct ip *, struct alias_data *);
struct proto_handler *first_handler(void);
@@ -137,10 +136,13 @@
#define OK 1
#define NOK -1
+/* end of handlers */
+#define EOH -1
+
/*
* handler/dll conflict - tried to attach a protocol handleror a dll,
* but found another one with same priority, direction and working
- * layer(proto handler) or name (dll) already in chain
+ * protocol(proto handler) or name (dll) already in chain
*/
#define EHDCON 2
==== //depot/projects/soc2005/libalias/libalias/alias_nbt.c#2 (text+ko) ====
@@ -137,11 +137,8 @@
}
/* Kernel module definition. */
-struct proto_handler handlers[] = {{130, IN|OUT, UDP, "fingerprint1", &fingerprint1,
- "protohandler1", &protohandler1},
- {140, IN|OUT, UDP, "fingerprint2", &fingerprint2,
- "protohandler1", &protohandler2}};
-int entries = sizeof (handlers) / sizeof (struct proto_handler);
+struct proto_handler handlers[] = {{130, IN|OUT, UDP, &fingerprint1, &protohandler1},
+ {140, IN|OUT, UDP, &fingerprint2, &protohandler2}, {EOH}};
static int
mod_handler(module_t mod, int type, void *data)
@@ -151,11 +148,11 @@
switch (type) {
case MOD_LOAD:
error = 0;
- attach_handler(handlers, entries);
+ attach_handlers(handlers);
break;
case MOD_UNLOAD:
error = 0;
- detach_handler(handlers, entries);
+ detach_handlers(handlers);
break;
default:
error = EINVAL;
==== //depot/projects/soc2005/libalias/libalias/alias_old.c#2 (text+ko) ====
==== //depot/projects/soc2005/libalias/libalias/alias_pptp.c#2 (text+ko) ====
@@ -155,21 +155,15 @@
}
/* Kernel module definition. */
-struct proto_handler handlers[] = {{200, IN, TCP, "fingerprint", &fingerprint,
- "protohandlerin", &protohandlerin},
- {210, OUT, TCP, "fingerprint", &fingerprint,
- "protohandlerout", &protohandlerout},
+struct proto_handler handlers[] = {{200, IN, TCP, &fingerprint, &protohandlerin},
+ {210, OUT, TCP, &fingerprint, &protohandlerout},
/*
* WATCH OUT!!! these 2 handlers NEED a priority of INT_MAX (highest possible)
* cause they will ALWAYS process packets, so they must be the last one
* in chain: look fingerprintgre() above.
*/
- {INT_MAX, IN, IP, "fingerprintgre", &fingerprintgre,
- "protohandlergrein", &protohandlergrein},
- {INT_MAX, OUT, IP, "fingerprintgre", &fingerprintgre,
- "protohandlergreout", &protohandlergreout}};
-int entries = sizeof (handlers) / sizeof (struct proto_handler);
-
+ {INT_MAX, IN, IP, &fingerprintgre, &protohandlergrein},
+ {INT_MAX, OUT, IP, &fingerprintgre, &protohandlergreout}, {EOH}};
static int
mod_handler(module_t mod, int type, void *data)
{
@@ -178,11 +172,11 @@
switch (type) {
case MOD_LOAD:
error = 0;
- attach_handler(handlers, entries);
+ attach_handlers(handlers);
break;
case MOD_UNLOAD:
error = 0;
- detach_handler(handlers, entries);
+ detach_handlers(handlers);
break;
default:
error = EINVAL;
==== //depot/projects/soc2005/libalias/libalias/alias_proxy.c#2 (text+ko) ====
@@ -71,9 +71,9 @@
#include <ctype.h>
#include <stdio.h>
#include <stdlib.h>
-#include <string.h>
#include <netdb.h>
#include <arpa/inet.h>
+#include <string.h>
#endif
/* BSD IPV4 includes */
==== //depot/projects/soc2005/libalias/libalias/alias_skinny.c#2 (text+ko) ====
@@ -92,9 +92,8 @@
return (OK);
}
-struct proto_handler handlers[] = {{110, IN|OUT, TCP, "fingerprint", &fingerprint,
- "protohandler", &protohandler}};
-int entries = sizeof (handlers) / sizeof (struct proto_handler);
+struct proto_handler handlers[] = {{110, IN|OUT, TCP, &fingerprint,
+ &protohandler}, {EOH}};
static int
mod_handler(module_t mod, int type, void *data)
@@ -104,11 +103,11 @@
switch (type) {
case MOD_LOAD:
error = 0;
- attach_handler(handlers, entries);
+ attach_handlers(handlers);
break;
case MOD_UNLOAD:
error = 0;
- detach_handler(handlers, entries);
+ detach_handlers(handlers);
break;
default:
error = EINVAL;
==== //depot/projects/soc2005/libalias/libalias/alias_smedia.c#2 (text+ko) ====
@@ -167,9 +167,8 @@
return (OK);
}
-struct proto_handler handlers[] = {{100, OUT, TCP|UDP, "fingerprint", &fingerprint,
- "protohandler", &protohandler}};
-int entries = sizeof (handlers) / sizeof (struct proto_handler);
+struct proto_handler handlers[] = {{100, OUT, TCP|UDP, &fingerprint,
+ &protohandler}, {EOH}};
static int
mod_handler(module_t mod, int type, void *data)
@@ -179,11 +178,11 @@
switch (type) {
case MOD_LOAD:
error = 0;
- attach_handler(handlers, entries);
+ attach_handlers(handlers);
break;
case MOD_UNLOAD:
error = 0;
- detach_handler(handlers, entries);
+ detach_handlers(handlers);
break;
default:
error = EINVAL;
==== //depot/projects/soc2005/libalias/libalias/alias_util.c#2 (text+ko) ====
==== //depot/projects/soc2005/libalias/libalias/kld-cuseeme/Makefile#2 (text+ko) ====
@@ -4,4 +4,6 @@
SRCS= alias_cuseeme.c
INCS= alias.h
+CFLAGS+= -Werror
+
.include <bsd.kmod.mk>
==== //depot/projects/soc2005/libalias/libalias/kld-dummy/Makefile#2 (text+ko) ====
@@ -4,4 +4,6 @@
SRCS= alias_dummy.c
INCS= alias.h
+CFLAGS+= -Werror
+
.include <bsd.kmod.mk>
==== //depot/projects/soc2005/libalias/libalias/kld-ftp/Makefile#2 (text+ko) ====
@@ -4,4 +4,6 @@
SRCS= alias_ftp.c
INCS= alias.h
+CFLAGS+= -Werror
+
.include <bsd.kmod.mk>
==== //depot/projects/soc2005/libalias/libalias/kld-irc/Makefile#2 (text+ko) ====
@@ -4,4 +4,6 @@
SRCS= alias_irc.c
INCS= alias.h
+CFLAGS+= -Werror
+
.include <bsd.kmod.mk>
==== //depot/projects/soc2005/libalias/libalias/kld-libalias/Makefile#2 (text+ko) ====
@@ -30,4 +30,6 @@
attach_handler \
detach_handler
+CFLAGS+= -Werror
+
.include <bsd.kmod.mk>
==== //depot/projects/soc2005/libalias/libalias/kld-nbt/Makefile#2 (text+ko) ====
@@ -4,4 +4,6 @@
SRCS= alias_nbt.c
INCS= alias.h
+CFLAGS+= -Werror
+
.include <bsd.kmod.mk>
==== //depot/projects/soc2005/libalias/libalias/kld-pptp/Makefile#2 (text+ko) ====
@@ -4,4 +4,6 @@
SRCS= alias_pptp.c
INCS= alias.h
+CFLAGS+= -Werror
+
.include <bsd.kmod.mk>
==== //depot/projects/soc2005/libalias/libalias/kld-skinny/Makefile#2 (text+ko) ====
@@ -4,4 +4,6 @@
SRCS= alias_skinny.c
INCS= alias.h
+CFLAGS+= -Werror
+
.include <bsd.kmod.mk>
==== //depot/projects/soc2005/libalias/libalias/kld-smedia/Makefile#2 (text+ko) ====
@@ -4,4 +4,6 @@
SRCS= alias_smedia.c
INCS= alias.h
+CFLAGS+= -Werror
+
.include <bsd.kmod.mk>
==== //depot/projects/soc2005/libalias/libalias/lib-cuseeme/Makefile#2 (text+ko) ====
@@ -6,4 +6,6 @@
SRCS= alias_cuseeme.c
INCS= alias_mod.h
+CFLAGS+= -Werror
+
.include <bsd.lib.mk>
==== //depot/projects/soc2005/libalias/libalias/lib-dummy/Makefile#2 (text+ko) ====
@@ -6,4 +6,6 @@
SRCS= alias_dummy.c
INCS= alias_mod.h
+CFLAGS+= -Werror
+
.include <bsd.lib.mk>
==== //depot/projects/soc2005/libalias/libalias/lib-ftp/Makefile#2 (text+ko) ====
@@ -6,4 +6,6 @@
SRCS= alias_ftp.c
INCS= alias_mod.h
+CFLAGS+= -Werror
+
.include <bsd.lib.mk>
==== //depot/projects/soc2005/libalias/libalias/lib-irc/Makefile#2 (text+ko) ====
@@ -6,4 +6,6 @@
SRCS= alias_irc.c
INCS= alias_mod.h
+CFLAGS+= -Werror
+
.include <bsd.lib.mk>
==== //depot/projects/soc2005/libalias/libalias/lib-libalias/Makefile#2 (text+ko) ====
@@ -7,4 +7,6 @@
SRCS= alias.c alias_db.c alias_proxy.c alias_util.c alias_old.c alias_mod.c
INCS= alias.h alias_mod.h
+CFLAGS+= -Werror
+
.include <bsd.lib.mk>
==== //depot/projects/soc2005/libalias/libalias/lib-nbt/Makefile#2 (text+ko) ====
@@ -6,4 +6,6 @@
SRCS= alias_nbt.c
INCS= alias_mod.h
+CFLAGS+= -Werror
+
.include <bsd.lib.mk>
==== //depot/projects/soc2005/libalias/libalias/lib-pptp/Makefile#2 (text+ko) ====
@@ -6,4 +6,6 @@
SRCS= alias_pptp.c
INCS= alias_mod.h
+CFLAGS+= -Werror
+
.include <bsd.lib.mk>
==== //depot/projects/soc2005/libalias/libalias/lib-skinny/Makefile#2 (text+ko) ====
@@ -6,4 +6,6 @@
SRCS= alias_skinny.c
INCS= alias_mod.h
+CFLAGS+= -Werror
+
.include <bsd.lib.mk>
==== //depot/projects/soc2005/libalias/libalias/lib-smedia/Makefile#2 (text+ko) ====
@@ -6,4 +6,6 @@
SRCS= alias_smedia.c
INCS= alias_mod.h
+CFLAGS+= -Werror
+
.include <bsd.lib.mk>
==== //depot/projects/soc2005/libalias/libalias/libalias.3#2 (text+ko) ====
==== //depot/projects/soc2005/libalias/libalias/libalias.conf#2 (text+ko) ====
==== //depot/projects/soc2005/libalias/ng_nat/Makefile#2 (text+ko) ====
==== //depot/projects/soc2005/libalias/ng_nat/ng_nat.c#2 (text+ko) ====
==== //depot/projects/soc2005/libalias/ng_nat/ng_nat.h#2 (text+ko) ====
==== //depot/projects/soc2005/libalias/patch/strsep.c#2 (text+ko) ====
==== //depot/projects/soc2005/libalias/patch/strspn.c#2 (text+ko) ====
==== //depot/projects/soc2005/libalias/readme.txt#2 (text+ko) ====
@@ -256,12 +256,10 @@
struct proto_handler {
int pri; /* handler priority */
- int8_t dir:2, /* flow direction */
- layer:6; /* layer handler */
- char fingername[32]; /* name of fingerprint function */
+ int16_t dir; /* flow direction */
+ int16_t proto; /* working protocol */
int (*fingerprint)(struct libalias *la, /* fingerprint * function */
struct ip *pip, struct alias_data *ah);
- char protohname[32]; /* name of aliasing function */
int (*protohandler)(struct libalias *la, /* aliasing * function */
struct ip *pip, struct alias_data *ah);
struct proto_handler *next;
@@ -274,12 +272,9 @@
dir is the direction of packets: ingoing or outgoing.
-layer says at which layer this packet belongs: IP, TCP or UDP
+proto says at which protocol this packet belongs: IP, TCP or UDP
-fingername and protohname are the names (yes the name!) of the
-functions doing (respectively) fingerprinting and protocol handling.
-
-fingerprint points to the fingerprint function while protohname points
+fingerprint points to the fingerprint function while protohandler points
to the protocol handler function.
The fingerprint function has the double of scope of checking if the
@@ -291,7 +286,7 @@
When a packet enters libalias, if it meets a module hook,
libalias scan handler_chain to see if there's an handler that match
-this type of packet (it checks layer and direction of packet), then if
+this type of packet (it checks protocol and direction of packet), then if
more then one handler is found, it starts with the module with
a lower priority number: it calls fingerprints and read the result.
@@ -325,7 +320,7 @@
IN: direction
-UDP: operating layer
+UDP: working protocol
la: pointer to this instance of libalias
@@ -380,24 +375,22 @@
[from alias_dummy.c]
-struct proto_handler handlers [] = {{666, IN|OUT, UDP|TCP, "fingerprint", &fingerprint,
- "protohandler", &protohandler}};
+struct proto_handler handlers [] = {{666, IN|OUT, UDP|TCP,
+ &fingerprint, &protohandler}};
-int entries = sizeof (handlers) / sizeof (struct proto_handler);
-
-These two variables are the 'most important things' in your module,
-cause they describe the handlers present and let the outside world use
+The variable 'handlers' is the 'most important thing' in your module,
+cause it describes the handlers present and let the outside world use
it in an opaque way.
-They must ALWAYS be present in every module, and they MUST retain
-their names (handlers and entries), else if you'll try to load
+It must ALWAYS be present in every module, and it MUST retain
+the name 'handlers', else if you'll try to load
this module in userland, it will complain about missing symbols: for
more info about module load/unload, please refer to
LibAliasRefreshModules, LibAliasLoadModule and LibAliasUnloadModule in
alias.c
handlers[] contains all the proto_handler structures present in a
-module, while entries counts them.
+module.
static int
mod_handler(module_t mod, int type, void *data)
@@ -407,11 +400,11 @@
switch (type) {
case MOD_LOAD:
>>> TRUNCATED FOR MAIL (1000 lines) <<<
More information about the p4-projects
mailing list