--- /dev/null Wed Jul 14 15:27:00 1999 +++ src/freebsd-sysctl.c Thu Jul 8 15:52:57 1999 @@ -0,0 +1,32 @@ +#include +#include +#include +#include +#include + +#include + +int +k_open(void) { + + return 0; +} + +int k_getuid(struct in_addr *faddr, int fport, struct in_addr *laddr, + int lport, int *uid) { + struct sockaddr_in sin[2]; + struct ucred uc; + size_t oldlen = sizeof(uc); + + sin[0].sin_addr.s_addr = laddr->s_addr; + sin[1].sin_addr.s_addr = faddr->s_addr; + sin[0].sin_port = (u_short)lport; + sin[1].sin_port = (u_short)fport; + + if (sysctlbyname("net.inet.tcp.getcred", &uc, &oldlen, sin, + sizeof(sin))) + return -1; + + *uid = uc.cr_uid; + return 0; +}