You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
gentoo-overlay/dev-ruby/ruby-tcpwrap/files/ruby-tcpwrap-0.6-ruby19.patch

84 lines
2.3 KiB

diff -Naur ruby-tcpwrap.orig//tcpwrap.c ruby-tcpwrap//tcpwrap.c
--- ruby-tcpwrap.orig//tcpwrap.c 2003-08-20 12:30:10.000000000 +0900
+++ ruby-tcpwrap//tcpwrap.c 2010-05-28 08:08:49.000000000 +0900
@@ -25,7 +25,11 @@
*/
#include "ruby.h"
+#ifdef HAVE_RUBY_IO_H
+#include "ruby/io.h"
+#else
#include "rubyio.h"
+#endif
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
@@ -46,6 +50,10 @@
#define DEFAULT_RFC1413_QUERY_TIMEOUT 30
+#ifndef RSTRING_PTR
+#define RSTRING_PTR(str) RSTRING(str)->ptr
+#endif
+
int allow_severity = 0;
int deny_severity = 0;
@@ -101,7 +109,7 @@
tcp_wrapper_t *tcpd;
VALUE sock;
int sockfd;
- OpenFile *fptr;
+ rb_io_t *fptr;
struct sockaddr_storage addr;
char client_name[NI_MAXHOST] = STRING_UNKNOWN;
char client_addr[NI_MAXHOST] = STRING_UNKNOWN;
@@ -113,7 +121,11 @@
again:
sock = rb_funcall(tcpd->server, rb_intern("accept"), 0);
GetOpenFile(sock, fptr);
+#ifdef HAVE_RUBY_IO_H
+ sockfd = fileno(fptr->fd);
+#else
sockfd = fileno(fptr->f);
+#endif
if (getpeername(sockfd, (struct sockaddr*) &addr, &len) < 0)
rb_sys_fail("getpeername(2)");
error = getnameinfo((struct sockaddr*) &addr, len,
@@ -132,7 +144,7 @@
if (tcpd->ident_lookup)
client_user = ident_id(sockfd, tcpd->ident_timeout);
#endif
- if (!hosts_ctl(RSTRING(tcpd->daemon)->ptr,
+ if (!hosts_ctl(RSTRING_PTR(tcpd->daemon),
client_name,
client_addr,
(client_user == NULL) ? STRING_UNKNOWN : client_user)) {
@@ -157,7 +169,7 @@
static char hosts_allow[MAXPATHLEN];
Check_SafeStr(s);
- snprintf(hosts_allow, sizeof(hosts_allow), "%s", RSTRING(s)->ptr);
+ snprintf(hosts_allow, sizeof(hosts_allow), "%s", RSTRING_PTR(s));
if(access(hosts_allow, R_OK) < 0)
rb_warning("cannot read %s", hosts_allow);
hosts_allow_table = hosts_allow;
@@ -177,7 +189,7 @@
static char hosts_deny[MAXPATHLEN];
Check_SafeStr(s);
- snprintf(hosts_deny, sizeof(hosts_deny), "%s", RSTRING(s)->ptr);
+ snprintf(hosts_deny, sizeof(hosts_deny), "%s", RSTRING_PTR(s));
if(access(hosts_deny, R_OK) < 0)
rb_warning("cannot read %s", hosts_deny);
hosts_deny_table = hosts_deny;
@@ -196,7 +208,7 @@
{
if(NIL_P(s)) return STRING_UNKNOWN;
Check_Type(s, T_STRING);
- return RSTRING(s)->ptr;
+ return RSTRING_PTR(s);
}
static VALUE