OK, an easy one. I am trying to do some netgraph(3) coding in userland. From how I read the documentation, this should work. Before I go learn all of the netraph(4) kernel code to understand the error message, could someone tell me how this is supposed to look? I'm sure it's something obvious that I have missed.
The attached test program returns, # ./ngtest ngtest: failed to bind ksocket: Invalid argument The program, #include <sys/types.h> #include <sys/socket.h> #include <netinet/in.h> #include <netinet/in_systm.h> #include <netinet/ip.h> #include <netgraph.h> #include <netgraph/ng_ksocket.h> #include <netgraph/ng_message.h> #include <netgraph/ng_tee.h> #include <err.h> #include <errno.h> #include <stdio.h> #include <string.h> #define DEFAULT_PORT 10000 #define OUR_HOOK_CTL "ctl_hook" int main() { int cs, ds; struct sockaddr_in laddr; struct ngm_mkpeer ngmkp; if (NgMkSockNode(NULL, &cs, &ds) == -1) err(errno, "failed to create netgraph socket"); strcpy(ngmkp.type, NG_KSOCKET_NODE_TYPE); strcpy(ngmkp.ourhook, OUR_HOOK_CTL); strcpy(ngmkp.peerhook, "inet/dgram/udp"); if (NgSendMsg(cs, ".", NGM_GENERIC_COOKIE, NGM_MKPEER, &ngmkp, sizeof ngmkp) == -1) err(errno, "failed to create ksocket node"); bzero(&laddr, sizeof laddr); laddr.sin_family = AF_INET; laddr.sin_addr.s_addr = INADDR_ANY; laddr.sin_port = htons(DEFAULT_PORT); if (NgSendMsg(cs, OUR_HOOK_CTL, NGM_KSOCKET_COOKIE, NGM_KSOCKET_BIND, &laddr, sizeof laddr) == -1) err(errno, "failed to bind ksocket"); return 0; } -- Crist J. Clark | [EMAIL PROTECTED] | [EMAIL PROTECTED] http://people.freebsd.org/~cjc/ | [EMAIL PROTECTED] _______________________________________________ [EMAIL PROTECTED] mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-net To unsubscribe, send any mail to "[EMAIL PROTECTED]"