rb-wartslib 0.9.13 → 0.9.14
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/CHANGES +6 -0
- data/docs/index.html +1 -1
- data/docs/reference.html +10 -10
- data/ext/scaddr.c +2 -2
- data/ext/scext.c +3 -3
- data/ext/scfile.c +5 -5
- data/ext/sclist.c +2 -2
- data/ext/sctrace.c +28 -4
- metadata +2 -2
data/CHANGES
CHANGED
@@ -1,3 +1,9 @@
|
|
1
|
+
version 0.9.14, 2008-03-17
|
2
|
+
* fixed to compile under Linux
|
3
|
+
* fixed to handle traces with a NULL source address; scamper can sometimes
|
4
|
+
write out traces with a NULL source address when a serious error occurs
|
5
|
+
(stop reason == 6, ERROR)
|
6
|
+
|
1
7
|
version 0.9.13, 2008-02-01
|
2
8
|
* fixed Warts::File#open to handle paths with spaces and other special
|
3
9
|
characters
|
data/docs/index.html
CHANGED
@@ -78,7 +78,7 @@ Although you can use this extension to write out trace data to warts files,
|
|
78
78
|
you can't use this extension itself to create completely new traces in
|
79
79
|
memory--that is, you can only write out traces you've read in from a file.
|
80
80
|
Furthermore, any read-in data is immutable, with a few careful exceptions,
|
81
|
-
because the
|
81
|
+
because the principal purpose of this extension is to support the analysis
|
82
82
|
of existing data rather than the creation of new data. The ability to
|
83
83
|
write out (unmodified) traces is still useful for filtering out traces and
|
84
84
|
for re-organizing traces into a different set of files (for example, into
|
data/docs/reference.html
CHANGED
@@ -377,17 +377,17 @@ timestamp.
|
|
377
377
|
|
378
378
|
<h3>Instance Methods</h3>
|
379
379
|
|
380
|
-
<h4 class="method_sig"><a name="Trace_src_cmp_method"></a><span class="method_name">src_cmp</span>(<span class="method_argument">
|
380
|
+
<h4 class="method_sig"><a name="Trace_src_cmp_method"></a><span class="method_name">src_cmp</span>(<span class="method_argument">other_trace</span>)</h4>
|
381
381
|
|
382
382
|
<p class="method_desc">
|
383
383
|
</p>
|
384
384
|
|
385
|
-
<h4 class="method_sig"><a name="Trace_dest_cmp_method"></a><span class="method_name">dest_cmp</span>(<span class="method_argument">
|
385
|
+
<h4 class="method_sig"><a name="Trace_dest_cmp_method"></a><span class="method_name">dest_cmp</span>(<span class="method_argument">other_trace</span>)</h4>
|
386
386
|
|
387
387
|
<p class="method_desc">
|
388
388
|
</p>
|
389
389
|
|
390
|
-
<h4 class="method_sig"><a name="Trace_cycle=_method"></a><span class="method_name">cycle=</span>(<span class="method_argument">
|
390
|
+
<h4 class="method_sig"><a name="Trace_cycle=_method"></a><span class="method_name">cycle=</span>(<span class="method_argument">cycle</span>)</h4>
|
391
391
|
|
392
392
|
<p class="method_desc">
|
393
393
|
</p>
|
@@ -402,37 +402,37 @@ timestamp.
|
|
402
402
|
<p class="method_desc">
|
403
403
|
</p>
|
404
404
|
|
405
|
-
<h4 class="method_sig"><a name="Trace_find_dest_response_method"></a><span class="method_name">find_dest_response</span
|
405
|
+
<h4 class="method_sig"><a name="Trace_find_dest_response_method"></a><span class="method_name">find_dest_response</span></h4>
|
406
406
|
|
407
407
|
<p class="method_desc">
|
408
408
|
</p>
|
409
409
|
|
410
|
-
<h4 class="method_sig"><a name="Trace_complete?_method"></a><span class="method_name">complete?</span
|
410
|
+
<h4 class="method_sig"><a name="Trace_complete?_method"></a><span class="method_name">complete?</span></h4>
|
411
411
|
|
412
412
|
<p class="method_desc">
|
413
413
|
</p>
|
414
414
|
|
415
|
-
<h4 class="method_sig"><a name="Trace_each_hop_method"></a><span class="method_name">each_hop</span
|
415
|
+
<h4 class="method_sig"><a name="Trace_each_hop_method"></a><span class="method_name">each_hop</span></h4>
|
416
416
|
|
417
417
|
<p class="method_desc">
|
418
418
|
</p>
|
419
419
|
|
420
|
-
<h4 class="method_sig"><a name="Trace_each_response_method"></a><span class="method_name">each_response</span>(<span class="method_argument">hop_index</span
|
420
|
+
<h4 class="method_sig"><a name="Trace_each_response_method"></a><span class="method_name">each_response</span>(<span class="method_argument">hop_index</span>)</h4>
|
421
421
|
|
422
422
|
<p class="method_desc">
|
423
423
|
</p>
|
424
424
|
|
425
|
-
<h4 class="method_sig"><a name="Trace_each_hop_and_response_method"></a><span class="method_name">each_hop_and_response</span
|
425
|
+
<h4 class="method_sig"><a name="Trace_each_hop_and_response_method"></a><span class="method_name">each_hop_and_response</span></h4>
|
426
426
|
|
427
427
|
<p class="method_desc">
|
428
428
|
</p>
|
429
429
|
|
430
|
-
<h4 class="method_sig"><a name="Trace_dest_responded?_method"></a><span class="method_name">dest_responded?</span
|
430
|
+
<h4 class="method_sig"><a name="Trace_dest_responded?_method"></a><span class="method_name">dest_responded?</span></h4>
|
431
431
|
|
432
432
|
<p class="method_desc">
|
433
433
|
</p>
|
434
434
|
|
435
|
-
<h4 class="method_sig"><a name="Trace_each_method"></a><span class="method_name">each</span
|
435
|
+
<h4 class="method_sig"><a name="Trace_each_method"></a><span class="method_name">each</span></h4>
|
436
436
|
|
437
437
|
<p class="method_desc">
|
438
438
|
</p>
|
data/ext/scaddr.c
CHANGED
@@ -18,12 +18,12 @@
|
|
18
18
|
** along with this program; if not, write to the Free Software
|
19
19
|
** Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
20
20
|
**
|
21
|
-
** $Id: scaddr.c,v 1.
|
21
|
+
** $Id: scaddr.c,v 1.10 2008/02/08 23:46:56 youngh Exp $
|
22
22
|
**/
|
23
23
|
|
24
24
|
#include "ruby.h"
|
25
25
|
|
26
|
-
#if defined(
|
26
|
+
#if defined(HAVE_STDINT_H)
|
27
27
|
#include <stdint.h>
|
28
28
|
#endif
|
29
29
|
|
data/ext/scext.c
CHANGED
@@ -19,12 +19,12 @@
|
|
19
19
|
** along with this program; if not, write to the Free Software
|
20
20
|
** Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
21
21
|
**
|
22
|
-
** $Id: scext.c,v 1.
|
22
|
+
** $Id: scext.c,v 1.26 2008/02/08 23:46:56 youngh Exp $
|
23
23
|
**/
|
24
24
|
|
25
25
|
#include "ruby.h"
|
26
26
|
|
27
|
-
#if defined(
|
27
|
+
#if defined(HAVE_STDINT_H)
|
28
28
|
#include <stdint.h>
|
29
29
|
#endif
|
30
30
|
|
@@ -42,7 +42,7 @@ void Init_wartslibext(void)
|
|
42
42
|
{
|
43
43
|
mWarts = rb_define_module("Warts");
|
44
44
|
|
45
|
-
rb_define_const(mWarts, "WARTS_LIB_VERSION", rb_str_new2("0.9.
|
45
|
+
rb_define_const(mWarts, "WARTS_LIB_VERSION", rb_str_new2("0.9.14"));
|
46
46
|
rb_define_const(mWarts, "SCAMPER_VERSION", rb_str_new2(SCAMPER_VERSION));
|
47
47
|
|
48
48
|
rb_define_const(mWarts, "LIST", INT2FIX(SCAMPER_FILE_OBJ_LIST));
|
data/ext/scfile.c
CHANGED
@@ -18,22 +18,22 @@
|
|
18
18
|
** along with this program; if not, write to the Free Software
|
19
19
|
** Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
20
20
|
**
|
21
|
-
** $Id: scfile.c,v 1.
|
21
|
+
** $Id: scfile.c,v 1.35 2008/02/08 23:46:56 youngh Exp $
|
22
22
|
**/
|
23
23
|
|
24
24
|
#include <unistd.h>
|
25
25
|
#include <string.h>
|
26
26
|
#include <strings.h>
|
27
27
|
|
28
|
+
#if defined(HAVE_STDINT_H)
|
29
|
+
#include <stdint.h>
|
30
|
+
#endif
|
31
|
+
|
28
32
|
#include "ruby.h"
|
29
33
|
|
30
34
|
#include "scfile.h"
|
31
35
|
#include "scaddr.h"
|
32
36
|
|
33
|
-
#if defined(__HAVE_STDINT_H__)
|
34
|
-
#include <stdint.h>
|
35
|
-
#endif
|
36
|
-
|
37
37
|
#include "scamper_list.h"
|
38
38
|
#include "scamper_addr.h"
|
39
39
|
#include "scamper_trace.h"
|
data/ext/sclist.c
CHANGED
@@ -18,14 +18,14 @@
|
|
18
18
|
** along with this program; if not, write to the Free Software
|
19
19
|
** Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
20
20
|
**
|
21
|
-
** $Id: sclist.c,v 1.
|
21
|
+
** $Id: sclist.c,v 1.11 2008/02/08 23:46:56 youngh Exp $
|
22
22
|
**/
|
23
23
|
|
24
24
|
#include <stdlib.h>
|
25
25
|
#include <string.h>
|
26
26
|
#include "ruby.h"
|
27
27
|
|
28
|
-
#if defined(
|
28
|
+
#if defined(HAVE_STDINT_H)
|
29
29
|
#include <stdint.h>
|
30
30
|
#endif
|
31
31
|
|
data/ext/sctrace.c
CHANGED
@@ -27,12 +27,12 @@
|
|
27
27
|
** along with this program; if not, write to the Free Software
|
28
28
|
** Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
29
29
|
**
|
30
|
-
** $Id: sctrace.c,v 1.
|
30
|
+
** $Id: sctrace.c,v 1.61 2008/02/14 00:00:48 youngh Exp $
|
31
31
|
**/
|
32
32
|
|
33
33
|
#include "ruby.h"
|
34
34
|
|
35
|
-
#if defined(
|
35
|
+
#if defined(HAVE_STDINT_H)
|
36
36
|
#include <stdint.h>
|
37
37
|
#endif
|
38
38
|
|
@@ -406,13 +406,19 @@ static VALUE sctrace_init(VALUE self)
|
|
406
406
|
}
|
407
407
|
|
408
408
|
|
409
|
+
/*
|
410
|
+
** NOTE: scamper can sometimes write out traces with a NULL source address.
|
411
|
+
** This seems to happen when a serious error occurs (stop reason == 6,
|
412
|
+
** ERROR). We tolerate this by return nil for the src address.
|
413
|
+
*/
|
409
414
|
static VALUE sctrace_src(VALUE self)
|
410
415
|
{
|
411
416
|
scamper_trace_t *trace;
|
412
417
|
char buf[128];
|
413
418
|
|
414
419
|
Data_Get_Struct(self, scamper_trace_t, trace);
|
415
|
-
return rb_str_new2(scamper_addr_tostr(trace->src, buf, 128))
|
420
|
+
return (trace->src ? rb_str_new2(scamper_addr_tostr(trace->src, buf, 128))
|
421
|
+
: Qnil);
|
416
422
|
}
|
417
423
|
|
418
424
|
|
@@ -426,6 +432,12 @@ static VALUE sctrace_dest(VALUE self)
|
|
426
432
|
}
|
427
433
|
|
428
434
|
|
435
|
+
/*
|
436
|
+
** NOTE: scamper can sometimes write out traces with a NULL source address.
|
437
|
+
** See sctrace_src(). For comparison purposes, a NULL source address
|
438
|
+
** is considered less than any other address except for another NULL
|
439
|
+
** source address. Two NULL addresses are equal.
|
440
|
+
*/
|
429
441
|
static VALUE sctrace_src_cmp(VALUE self, VALUE other)
|
430
442
|
{
|
431
443
|
scamper_trace_t *self_trace;
|
@@ -442,7 +454,19 @@ static VALUE sctrace_src_cmp(VALUE self, VALUE other)
|
|
442
454
|
|
443
455
|
Data_Get_Struct(self, scamper_trace_t, self_trace);
|
444
456
|
Data_Get_Struct(other, scamper_trace_t, other_trace);
|
445
|
-
|
457
|
+
|
458
|
+
if (self_trace->src && other_trace->src) {
|
459
|
+
return INT2FIX(scamper_addr_cmp(self_trace->src, other_trace->src));
|
460
|
+
}
|
461
|
+
else if (self_trace->src) {
|
462
|
+
return INT2FIX(1);
|
463
|
+
}
|
464
|
+
else if (other_trace->src) {
|
465
|
+
return INT2FIX(-1);
|
466
|
+
}
|
467
|
+
else {
|
468
|
+
return INT2FIX(0);
|
469
|
+
}
|
446
470
|
}
|
447
471
|
|
448
472
|
|
metadata
CHANGED
@@ -3,8 +3,8 @@ rubygems_version: 0.9.4
|
|
3
3
|
specification_version: 1
|
4
4
|
name: rb-wartslib
|
5
5
|
version: !ruby/object:Gem::Version
|
6
|
-
version: 0.9.
|
7
|
-
date: 2008-
|
6
|
+
version: 0.9.14
|
7
|
+
date: 2008-03-17 00:00:00 -07:00
|
8
8
|
summary: Ruby extension for reading/writing warts files
|
9
9
|
require_paths:
|
10
10
|
- lib
|