new clients rc.66 on the server

Peter Van Epp vanepp at sfu.ca
Fri Dec 28 14:12:56 EST 2007


On Thu, Dec 27, 2007 at 03:52:33PM -0500, Carter Bullard wrote:
> Gentle people,
> I have upload
>    ftp://qosient.com/dev/argus-3.0/argus-clients-3.0.0.rc.66.tar.gz
> 
> This fixes all reported bugs except the GRE flow parsing problem.
> The bugs include:
>    clients can now be compiled without threads support (.threads  
> tagfile).
>    netflow interface binding  -  this has caused us to change the
>       command line interface for specifying Cisco data sources
>       using the -C option.   Now the -C option acts much like the
>       -S option now, where you specify a host and port pair for
>       where the data will come from ( so -CS host:port is now -C  
> host:port).
>       Please see the man page for ra() to see the changes.
> 
>    racluster RACLUSTER_AUTO_CORRECTION=no parsing fixed.
>    ra() not printing data by default.  this is now fixed.
>    ragrep() fixes for specifying hex patterns in regular expression.
>    rahisto() keywords for rate and load are now correct.
> 
> Plus a number of undocumented issues in documentation.
> Please take a look at this release candidate and see if it addresses
> your particular issue.
> 
> Thanks, and I hope all had a wonderful holiday!!!!!!
> 
> Carter
> 
>  
>   

	Closer but still no cookie (at least here :-). On rc.66:

vanepp at sniffer1:~> gdb ra3
GNU gdb 6.5
Copyright (C) 2006 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB.  Type "show warranty" for details.
This GDB was configured as "ppc-suse-linux"...Using host libthread_db library "/lib/power5+/libthread_db.so.1".

(gdb) l ArgusGetServerSocket
...
(gdb) r -C 192.75.244.195:1025 -n
Starting program: /usr/local/bin/ra3 -C 192.75.244.195:1025 -n
[Thread debugging using libthread_db enabled]
[New Thread -134574080 (LWP 3910)]
[Switching to Thread -134574080 (LWP 3910)]

Breakpoint 1, ArgusGetServerSocket (input=0xf7f48008, timeout=5)
    at ./argus_client.c:2256
2256             if (hp != NULL)
(gdb) l
2251             } while (hp && (retn < 0));
2252             break;
2253          }
2254
2255          case ARGUS_CISCO_DATA_SOURCE: {
2256             if (hp != NULL)
2257                s = socket (hp->ai_family, hp->ai_socktype, hp->ai_protocol);
2258             else
2259                s = socket (AF_INET, SOCK_DGRAM, 0);
2260
(gdb) l
2261             if (s >= 0) {
2262                if (hp != NULL) {
2263                   if (getnameinfo(hp->ai_addr, hp->ai_addrlen, hbuf, sizeof(hbuf), sbuf, sizeof(sbuf), NI_NUMERICHOST | NI_NUMERICSERV))
2264                      ArgusLog(LOG_ERR, "could not get numeric hostname");
2265
2266                   if (hp->ai_canonname) {
2267                      if (input->hostname)
2268                         free(input->hostname);
2269                      input->hostname = strdup(hp->ai_canonname);
2270                   } else {
(gdb) l
2271                      if (input->hostname)
2272                         free(input->hostname);
2273                      input->hostname = strdup(hbuf);
2274                   }
2275
2276                   if (hp->ai_socktype == SOCK_DGRAM) {
2277    #ifdef ARGUSDEBUG
2278                      ArgusLog (1, "Binding %s:%s Expecting %s records", input->hostname, sbuf, ArgusRecordType);
2279    #endif
2280                      if ((retn = bind (s, hp->ai_addr, hp->ai_addrlen)) < 0) {
(gdb) l
2281                         ArgusLog(LOG_WARNING, "connect to %s:%s failed '%s'", input->hostname, sbuf, strerror(errno));
2282                         hp = hp->ai_next;
2283                      } else {
2284                         retn = s;
2285                         input->fd = s;
2286                      }
2287
2288                   } else {
2289                      if (setsockopt(s, SOL_SOCKET, SO_KEEPALIVE, (char *)&optval, sizeof(int)) < 0) {
2290    #ifdef ARGUSDEBUG
(gdb) b 2280
Breakpoint 2 at 0x1005a5bc: file ./argus_client.c, line 2280.
(gdb) c
Continuing.
ra3[3910]: 07-12-28 11:02:49 Binding 192.75.244.195:1025 Expecting Netflow records

Breakpoint 2, ArgusGetServerSocket (input=0xf7f48008, timeout=5)
    at ./argus_client.c:2280
2280                      if ((retn = bind (s, hp->ai_addr, hp->ai_addrlen)) < 0) {
(gdb) print *hp
$3 = {ai_flags = 0, ai_family = 2, ai_socktype = 2, ai_protocol = 17,
  ai_addrlen = 16, ai_addr = 0x101f5298, ai_canonname = 0x0, ai_next = 0x0}
(gdb) print *hp->ai_addr
$4 = {sa_family = 2, sa_data = "\004\001 at KtC\000\000\000\000\000\000\000"}
(gdb) s
2281                         ArgusLog(LOG_WARNING, "connect to %s:%s failed '%s'", input->hostname, sbuf, strerror(errno));
(gdb)
ra3[3910]: 07-12-28 11:04:38 connect to 192.75.244.195:1025 failed 'Cannot assign requested address'

Program exited normally.

	So unless I don't understand what is wanted (I'm assuming the remote
netflow host ip and port number) there looks to be something still wrong. As
usual this is Linux on PPC 64 bit without threads (although gdb claims it is
using the threads librarys it does seem to be a single thread). 

Peter Van Epp / Operations and Technical Support 
Simon Fraser University, Burnaby, B.C. Canada



More information about the argus mailing list