Date: Thu, 10 Dec 2009 21:53:21 GMT From: Sergey Popov <faijeya@gmail.com> To: freebsd-gnats-submit@FreeBSD.org Subject: amd64/141356: net-mgmt/netams-3.4.3 does not build on FreeBSD 8.0 amd64 Message-ID: <200912102153.nBALrLOs020186@www.freebsd.org> Resent-Message-ID: <200912102200.nBAM0Esv089860@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
>Number: 141356 >Category: amd64 >Synopsis: net-mgmt/netams-3.4.3 does not build on FreeBSD 8.0 amd64 >Confidential: no >Severity: serious >Priority: low >Responsible: freebsd-amd64 >State: open >Quarter: >Keywords: >Date-Required: >Class: sw-bug >Submitter-Id: current-users >Arrival-Date: Thu Dec 10 22:00:14 UTC 2009 >Closed-Date: >Last-Modified: >Originator: Sergey Popov >Release: 8.0 amd64 >Organization: >Environment: FreeBSD mailserver 8.0-RELEASE FreeBSD 8.0-RELEASE #0 Sat Nov 21 15:02:08 UTC 2009 root@mason.cse.buffalo.edu:/usr/obj/usr/src/sys/GENERIC amd64 >Description: Traffic accountment software "netams" does not build on FreeBSD 8.0 as on version 3.4.3 (latest at the moment). It is already locked in ports with reason "does not compile", so I think, it's not 8.0-only. >How-To-Repeat: Download http://www.netams.com/files/netams-3.4.3.tar.gz , unpack it, run ./configure.sh and then run make. >Fix: I have a (pretty crude) fix which I used to make netams actually compile. I commented out some strange debug call in one file and replaced a goto (yes, wtf) construction in another by if-else. I've attached diffs (sorry, I'm not so keen in submitting patches) of files I changed against latest netams 3.4.3 version. Patch attached with submission follows: diff -urN netams-3.4.3/src/ds_ipfw.c netams-3.4.3-fxd/src/ds_ipfw.c --- netams-3.4.3/src/ds_ipfw.c 2008-02-23 10:35:02.000000000 +0200 +++ netams-3.4.3-fxd/src/ds_ipfw.c 2009-12-11 05:51:55.000000000 +0200 @@ -32,55 +32,47 @@ if ((socketid = socket(PF_INET, SOCK_RAW, IPPROTO_DIVERT)) < 0) { aLog(D_ERR, "divert socket\n"); - goto END; } - if (bind(socketid, (struct sockaddr *)&(sin), sizeof(sin))) { + else + { + if (bind(socketid, (struct sockaddr *)&(sin), sizeof(sin))) + { aLog(D_ERR, "bind divert socket: %u\n", socketid); - goto END; - } - SET_POLL(socketid); - - pthread_cleanup_push(ds_ipfw_cancel, (void*) &socketid); - pthread_setcanceltype(PTHREAD_CANCEL_DEFERRED, NULL); - - aLog(D_INFO,"IPFW packet processing for data-source:%u initialized\n",ds->instance); - - int status; - int process_result; - struct ipv4_key key; - bzero(&key, sizeof(struct ipv4_key)); - entry *flow_entry; - - while(1) { - CHECK_POLL(ds,status); - - netams_gettimeofday(&start, NULL); - FE->Expiresearch(&start); - if(!status) continue; - - len=recvfrom(socketid, packet, MAX_PKT_SIZE, 0, (struct sockaddr *)&sin, &size_ds); - IPv4GetKey((struct ip*) packet, &key); - - process_result = FE->Process((u_char *)&key, 1, ntohs(((struct ip*) packet)->ip_len), &flow_entry); - if(process_result == -1) { + } + else + { + SET_POLL(socketid); + pthread_cleanup_push(ds_ipfw_cancel, (void*) &socketid); + pthread_setcanceltype(PTHREAD_CANCEL_DEFERRED, NULL); + aLog(D_INFO,"IPFW packet processing for data-source:%u initialized\n",ds->instance); + int status; + int process_result; + struct ipv4_key key; + bzero(&key, sizeof(struct ipv4_key)); + entry *flow_entry; + + while(1) + { + CHECK_POLL(ds,status); + netams_gettimeofday(&start, NULL); + FE->Expiresearch(&start); + if(!status) continue; + len=recvfrom(socketid, packet, MAX_PKT_SIZE, 0, (struct sockaddr *)&sin, &size_ds); + IPv4GetKey((struct ip*) packet, &key); + process_result = FE->Process((u_char *)&key, 1, ntohs(((struct ip*) packet)->ip_len), &flow_entry); + if(process_result == -1) + { IPv4FillFlow(&key, flow_entry); - -#ifdef LAYER7_FILTER if (ds->layer7_detect!=LAYER7_DETECT_NONE) layer7_addinfo(key.tcp_info.dst_port, flow_entry); -#endif - if(ds->ds_flags==DS_DIVERT) process_result = FE->FW(flow_entry); + } + if (process_result && (ds->ds_flags==DS_DIVERT)) + sendto(socketid, packet, len, 0, (struct sockaddr *)&sin, size_ds); + if (ds->layer7_detect!=LAYER7_DETECT_NONE) layer7_checkinfo(key.tcp_info.dst_port, flow_entry, (struct ip*) packet); + ds->Measure(&start, len); } - - if (process_result && (ds->ds_flags==DS_DIVERT)) - sendto(socketid, packet, len, 0, (struct sockaddr *)&sin, size_ds); - -#ifdef LAYER7_FILTER - if (ds->layer7_detect!=LAYER7_DETECT_NONE) layer7_checkinfo(key.tcp_info.dst_port, flow_entry, (struct ip*) packet); -#endif - ds->Measure(&start, len); + } } -END: pthread_cleanup_pop(1); } ///////////////////////////////////////////////////////////////////////////////////// diff -urN netams-3.4.3/src/ipfw2netflow.c netams-3.4.3-fxd/src/ipfw2netflow.c --- netams-3.4.3/src/ipfw2netflow.c 2008-02-23 10:35:02.000000000 +0200 +++ netams-3.4.3-fxd/src/ipfw2netflow.c 2009-12-11 05:52:05.000000000 +0200 @@ -69,7 +69,7 @@ void do_hup() { - Debug("SIGHUP\n"); +// Debug("SIGHUP\n"); hupset = 1; signal(SIGHUP, (sig_t)do_hup); } >Release-Note: >Audit-Trail: >Unformatted:
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200912102153.nBALrLOs020186>