[#19011] open-uri - very easy net access library — Tanaka Akira <akr@...17n.org>

HTTP, FTP に簡単にアクセスするための open-uri というライブラリを作って

19 messages 2002/12/06

[#19066] ruby 1.6.9 preview4 予告 — matz@... (Yukihiro Matsumoto)

まつもと ゆきひろです

41 messages 2002/12/13
[#19079] Re: ruby 1.6.9 preview4 予告 — "Akinori MUSHA" <knu@...> 2002/12/16

At Fri, 13 Dec 2002 15:28:47 +0900,

[#19086] Re: ruby 1.6.9 preview4 予告 — UENO Katsuhiro <unnie@...> 2002/12/17

うえのです。

[#19087] Re: ruby 1.6.9 preview4 予告 — matz@... (Yukihiro Matsumoto) 2002/12/17

まつもと ゆきひろです

[#19083] Re: [ruby-cvs] ruby: * file.c (utimbuf): need to define for VC++. — WATANABE Hirofumi <eban@...>

わたなべです。

11 messages 2002/12/16

[#19127] Re: 1.6.8-preview4 build failed (on Vine Linux 2.1.5) (PR#373) — nobu.nakada@...

なかだです。

16 messages 2002/12/19
[#19129] Re: 1.6.8-preview4 build failed (on Vine Linux 2.1.5) (PR#373) — WATANABE Hirofumi <eban@...> 2002/12/19

わたなべです。

[#19198] ruby-1.8.0 / yield(nil)とyield()のちがい — m_seki@...

38 messages 2002/12/25
[#19209] Re: ruby-1.8.0 / yield(nil)とyield()のちがい — matz@... (Yukihiro Matsumoto) 2002/12/27

まつもと ゆきひろです

[#19218] Re: ruby-1.8.0 / yield(nil)とyield()のちがい — m_seki@... 2002/12/27

[#19219] Re: ruby-1.8.0 / yield(nil)とyield()のちがい — matz@... (Yukihiro Matsumoto) 2002/12/27

まつもと ゆきひろです

[#19264] Re: ruby-1.8.0 / yield(nil)とyield()のちがい — matz@... (Yukihiro Matsumoto) 2003/01/01

まつもと ゆきひろです

[#19266] Re: ruby-1.8.0 / yield(nil)とyield()のちがい — Tanaka Akira <akr@...17n.org> 2003/01/01

In article <1041383157.631472.21307.nullmailer@picachu.netlab.jp>,

[#19271] Re: ruby-1.8.0 / yield(nil)とyield()のちがい — matz@... (Yukihiro Matsumoto) 2003/01/01

まつもと ゆきひろです

[#19272] Re: ruby-1.8.0 / yield(nil)とyield()のちがい — Tanaka Akira <akr@...17n.org> 2003/01/01

In article <1041394108.920587.21729.nullmailer@picachu.netlab.jp>,

[#19276] Re: ruby-1.8.0 / yield(nil)とyield()のちがい — matz@... (Yukihiro Matsumoto) 2003/01/01

まつもと ゆきひろです

[#19278] Re: ruby-1.8.0 / yield(nil)とyield()のちがい — Tanaka Akira <akr@...17n.org> 2003/01/01

In article <1041420724.492653.22355.nullmailer@picachu.netlab.jp>,

[ruby-dev:19134] lib/snmp bugs

From: Fumitoshi UKAI <ukai@...>
Date: 2002-12-20 02:36:04 UTC
List: ruby-dev #19134
鵜飼です。

どこになげればいいのかよくわからなかったので、ここになげてみます。

lib/snmp なんですがいくつかバグとかがあるのでなおしてみました。

* MIBView.new で OIDを指定してとれないのが悲しいのでOIDも指定できる
  ようにした
* get, getnext, walk で get_node()よりも snmp_parse_oid()した方が便利
* SNMPValue.value で OIDの時にvalueの方もnameと同じものとれていた。
  また IP Address はそのままintよりも a dotted-quad IP address に
  なってた方が便利
  (rubyではIP addressはだいたいこの形式で使われるので)

# OIDが value で int arrayになっているので
# 引数であたえる時も int array でつかえるように
# できた方が便利かも。

Index: mib.c
===================================================================
RCS file: /src/lib/snmp/mib.c,v
retrieving revision 1.3
diff -u -u -p -r1.3 mib.c
--- mib.c	6 May 2002 04:11:24 -0000	1.3
+++ mib.c	20 Dec 2002 02:26:28 -0000
@@ -134,6 +134,13 @@ VALUE rb_cmibview_new(VALUE cmibview, VA
 
   /* Find in any modules. */
   tp = find_tree_node(RSTRING(mib_str)->ptr, -1);
+  if (tp == NULL) {
+      oid anOID[MAX_OID_LEN];
+      size_t oidlen = MAX_OID_LEN;
+      if (snmp_parse_oid(RSTRING(mib_str)->ptr, anOID, &oidlen)) {
+	  tp = get_tree(anOID, oidlen, get_tree_head());
+      }
+  }
   if (tp == NULL)
         rb_raise(rb_eSNMP, "%s not found in MIB tree.", RSTRING(mib_str)->ptr);
 
Index: snmp_sess.c
===================================================================
RCS file: /src/lib/snmp/snmp_sess.c,v
retrieving revision 1.3
diff -u -u -p -r1.3 snmp_sess.c
--- snmp_sess.c	6 May 2002 04:11:24 -0000	1.3
+++ snmp_sess.c	20 Dec 2002 02:26:28 -0000
@@ -297,7 +297,7 @@ static VALUE rb_csnmp_get(VALUE csnmp, V
   for(i=0;i<RARRAY(obj_name)->len;i++) {
     obj = rb_ary_entry(obj_name, i);
 
-    if(!get_node(RSTRING(obj)->ptr, anOID, &anOID_len)) {
+    if(!snmp_parse_oid(RSTRING(obj)->ptr, anOID, &anOID_len)) {
       snmp_free_pdu(pdu);
       rb_raise(rb_eSNMPUnknownOID, snmp_api_errstring(snmp_errno));
     }
@@ -347,7 +347,7 @@ static VALUE rb_csnmp_getnext(VALUE csnm
   pdu = snmp_pdu_create(SNMP_MSG_GETNEXT);
   for(i=0;i<RARRAY(obj_name)->len;i++) {
     obj = rb_ary_entry(obj_name, i);
-    if(!get_node(RSTRING(obj)->ptr, anOID, &anOID_len)) {
+    if(!snmp_parse_oid(RSTRING(obj)->ptr, anOID, &anOID_len)) {
       snmp_free_pdu(pdu);
       rb_raise(rb_eSNMPUnknownOID, snmp_api_errstring(snmp_errno));
     }
@@ -429,7 +429,7 @@ static VALUE rb_csnmp_walk(VALUE csnmp, 
     rp = results+i;
     obj = rb_ary_entry(obj_names, i);
     op->len = MAX_OID_LEN;
-    if(!get_node(RSTRING(obj)->ptr, op->OID, &(op->len))) {
+    if(!snmp_parse_oid(RSTRING(obj)->ptr, op->OID, &(op->len))) {
       rb_raise(rb_eSNMPUnknownOID, snmp_api_errstring(snmp_errno));
     }
     memcpy((void*)rp->OID, (void*)op->OID, sizeof(oid)*MAX_OID_LEN);
@@ -535,9 +535,9 @@ static VALUE rb_csnmpvar_value(VALUE csn
   case ASN_OPAQUE:
     return Qnil;
   case ASN_OBJECT_ID:
-    ary = rb_ary_new2(var->name_length);
-    for(i=0;i<var->name_length;i++)
-      rb_ary_store(ary, (int)i, INT2FIX((int)((var->name)[i])));
+    ary = rb_ary_new2(var->val_len/sizeof(int));
+    for(i=0;i<var->val_len/sizeof(int);i++)
+      rb_ary_store(ary, (int)i, INT2FIX((int)((var->val.objid)[i])));
     return ary;
   case ASN_TIMETICKS:
     return rb_uint2inum(*var->val.integer);
@@ -546,7 +546,12 @@ static VALUE rb_csnmpvar_value(VALUE csn
   case ASN_COUNTER:
     return rb_uint2inum(*var->val.integer);
   case ASN_IPADDRESS:
-    return rb_uint2inum(*var->val.integer);
+  {
+      char ip[32];
+      unsigned char *s = var->val.string;
+      snprintf(ip, sizeof(ip), "%d.%d.%d.%d", s[0], s[1], s[2], s[3]);
+      return rb_str_new(ip, strlen(ip));
+  }
   case ASN_NULL:
     return Qnil;
   case ASN_UINTEGER:

-- 
鵜飼文敏

In This Thread

Prev Next