Hello community,

here is the log from the commit of package rubygem-eventmachine for 
openSUSE:Factory checked in at 2018-05-16 18:43:28
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/rubygem-eventmachine (Old)
 and      /work/SRC/openSUSE:Factory/.rubygem-eventmachine.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "rubygem-eventmachine"

Wed May 16 18:43:28 2018 rev:19 rq:609103 version:1.2.7

Changes:
--------
--- 
/work/SRC/openSUSE:Factory/rubygem-eventmachine/rubygem-eventmachine.changes    
    2017-09-26 21:13:41.904504401 +0200
+++ 
/work/SRC/openSUSE:Factory/.rubygem-eventmachine.new/rubygem-eventmachine.changes
   2018-05-16 18:44:53.284150534 +0200
@@ -1,0 +2,25 @@
+Wed May 16 07:59:04 UTC 2018 - factory-a...@kulow.org
+
+- updated to version 1.2.7
+ see installed CHANGELOG.md
+
+  ## 1.2.7 (May 12, 2018)
+  * Fix segfault on large numbers of connections [#843]
+
+-------------------------------------------------------------------
+Mon Apr 30 11:04:01 UTC 2018 - factory-a...@kulow.org
+
+- updated to version 1.2.6
+ see installed CHANGELOG.md
+
+  ## 1.2.6 (April 30, 2018)
+  * *Fix segfault when an Exception is raised from unbind callback (for real 
this time!)*
+  * Fix race condition while initializing the machine [#756]
+  * Fix for newer compilers where bind() and std::bind() conflict [#830, #831]
+  * Be verbose about SSL connection errors [#807]
+  * Avoid explicitly calling class methods when in class scope
+  * Java: Add EM_PROTO_SSL/TLS definitions [#773, #791]
+  * Java: return zero when sending data to a closed connection [#475, #804]
+  * Pure Ruby: Connection::error? calls report_connection_error_status [#801]
+
+-------------------------------------------------------------------

Old:
----
  eventmachine-1.2.5.gem

New:
----
  eventmachine-1.2.7.gem

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ rubygem-eventmachine.spec ++++++
--- /var/tmp/diff_new_pack.mEINHJ/_old  2018-05-16 18:44:53.928127262 +0200
+++ /var/tmp/diff_new_pack.mEINHJ/_new  2018-05-16 18:44:53.928127262 +0200
@@ -1,7 +1,7 @@
 #
 # spec file for package rubygem-eventmachine
 #
-# Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany.
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -24,7 +24,7 @@
 #
 
 Name:           rubygem-eventmachine
-Version:        1.2.5
+Version:        1.2.7
 Release:        0
 %define mod_name eventmachine
 %define mod_full_name %{mod_name}-%{version}
@@ -39,11 +39,11 @@
 BuildRequires:  %{rubygem rdoc > 3.10}
 BuildRequires:  ruby-macros >= 5
 Url:            http://rubyeventmachine.com
-Source:         http://rubygems.org/gems/%{mod_full_name}.gem
+Source:         https://rubygems.org/gems/%{mod_full_name}.gem
 Source1:        rubygem-eventmachine-rpmlintrc
 Source2:        gem2rpm.yml
 Summary:        Ruby/EventMachine library
-License:        Ruby or GPL-2.0
+License:        Ruby OR GPL-2.0-only
 Group:          Development/Languages/Ruby
 
 %description

++++++ eventmachine-1.2.5.gem -> eventmachine-1.2.7.gem ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/CHANGELOG.md new/CHANGELOG.md
--- old/CHANGELOG.md    2017-07-28 08:45:28.000000000 +0200
+++ new/CHANGELOG.md    2018-05-12 14:24:09.000000000 +0200
@@ -1,5 +1,18 @@
 # Changelog
 
+## 1.2.7 (May 12, 2018)
+* Fix segfault on large numbers of connections [#843]
+
+## 1.2.6 (April 30, 2018)
+* *Fix segfault when an Exception is raised from unbind callback (for real 
this time!)*
+* Fix race condition while initializing the machine [#756]
+* Fix for newer compilers where bind() and std::bind() conflict [#830, #831]
+* Be verbose about SSL connection errors [#807]
+* Avoid explicitly calling class methods when in class scope
+* Java: Add EM_PROTO_SSL/TLS definitions [#773, #791]
+* Java: return zero when sending data to a closed connection [#475, #804]
+* Pure Ruby: Connection::error? calls report_connection_error_status [#801]
+
 ## 1.2.5 (July 27, 2017)
 * Java: Use long for larger values in oneshot timer intervals [#784, #794]
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/README.md new/README.md
--- old/README.md       2017-07-28 08:45:28.000000000 +0200
+++ new/README.md       2018-05-12 14:24:09.000000000 +0200
@@ -1,4 +1,4 @@
-# About EventMachine  [![Code 
Climate](https://codeclimate.com/github/eventmachine/eventmachine.svg)](https://codeclimate.com/github/eventmachine/eventmachine)
+# About EventMachine  [![Build 
Status](https://travis-ci.org/eventmachine/eventmachine.svg?branch=master)](https://travis-ci.org/eventmachine/eventmachine)
 [![Code Climate 
Maintainability](https://api.codeclimate.com/v1/badges/e9b0603462905d5b9118/maintainability)](https://codeclimate.com/github/eventmachine/eventmachine/maintainability)
 
 
 ## What is EventMachine ##
@@ -32,7 +32,7 @@
 
 ## What platforms are supported by EventMachine? ##
 
-EventMachine supports Ruby 1.8.7 through 2.3, REE, JRuby and **works well on 
Windows** as well
+EventMachine supports Ruby 1.8.7 through 2.6, REE, JRuby and **works well on 
Windows** as well
 as many operating systems from the Unix family (Linux, Mac OS X, BSD flavors).
 
 
Binary files old/checksums.yaml.gz and new/checksums.yaml.gz differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ext/binder.cpp new/ext/binder.cpp
--- old/ext/binder.cpp  2017-07-28 08:45:28.000000000 +0200
+++ new/ext/binder.cpp  2018-05-12 14:24:09.000000000 +0200
@@ -22,7 +22,7 @@
 #define DEV_URANDOM "/dev/urandom"
 
 
-map<uintptr_t, Bindable_t*> Bindable_t::BindingBag;
+std::map<uintptr_t, Bindable_t*> Bindable_t::BindingBag;
 
 
 /********************************
@@ -92,7 +92,7 @@
 
 Bindable_t *Bindable_t::GetObject (const uintptr_t binding)
 {
-       map<uintptr_t, Bindable_t*>::const_iterator i = BindingBag.find 
(binding);
+       std::map<uintptr_t, Bindable_t*>::const_iterator i = BindingBag.find 
(binding);
        if (i != BindingBag.end())
                return i->second;
        else
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ext/binder.h new/ext/binder.h
--- old/ext/binder.h    2017-07-28 08:45:28.000000000 +0200
+++ new/ext/binder.h    2018-05-12 14:24:09.000000000 +0200
@@ -32,7 +32,7 @@
        public:
                static uintptr_t CreateBinding();
                static Bindable_t *GetObject (const uintptr_t);
-               static map<uintptr_t, Bindable_t*> BindingBag;
+               static std::map<uintptr_t, Bindable_t*> BindingBag;
 
        public:
                Bindable_t();
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ext/ed.cpp new/ext/ed.cpp
--- old/ext/ed.cpp      2017-07-28 08:45:28.000000000 +0200
+++ new/ext/ed.cpp      2018-05-12 14:24:09.000000000 +0200
@@ -320,7 +320,7 @@
 
        if (ProxyTarget) {
                if (BytesToProxy > 0) {
-                       unsigned long proxied = min(BytesToProxy, size);
+                       unsigned long proxied = std::min(BytesToProxy, size);
                        ProxyTarget->SendOutboundData(buf, proxied);
                        ProxiedBytes += (unsigned long) proxied;
                        BytesToProxy -= proxied;
@@ -1148,7 +1148,7 @@
        #ifdef HAVE_WRITEV
        if (!err) {
                unsigned int sent = bytes_written;
-               deque<OutboundPage>::iterator op = OutboundPages.begin();
+               std::deque<OutboundPage>::iterator op = OutboundPages.begin();
 
                for (int i = 0; i < iovcnt; i++) {
                        if (iov[i].iov_len <= sent) {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ext/ed.h new/ext/ed.h
--- old/ext/ed.h        2017-07-28 08:45:28.000000000 +0200
+++ new/ext/ed.h        2018-05-12 14:24:09.000000000 +0200
@@ -251,7 +251,7 @@
                bool bReadAttemptedAfterClose;
                bool bWriteAttemptedAfterClose;
 
-               deque<OutboundPage> OutboundPages;
+               std::deque<OutboundPage> OutboundPages;
                int OutboundDataSize;
 
                #ifdef WITH_SSL
@@ -326,7 +326,7 @@
                        struct sockaddr_in6 From;
                };
 
-               deque<OutboundPage> OutboundPages;
+               std::deque<OutboundPage> OutboundPages;
                int OutboundDataSize;
 
                struct sockaddr_in6 ReturnAddress;
@@ -394,7 +394,7 @@
        protected:
                bool bReadAttemptedAfterClose;
 
-               deque<OutboundPage> OutboundPages;
+               std::deque<OutboundPage> OutboundPages;
                int OutboundDataSize;
 
                pid_t SubprocessPid;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ext/em.cpp new/ext/em.cpp
--- old/ext/em.cpp      2017-07-28 08:45:28.000000000 +0200
+++ new/ext/em.cpp      2018-05-12 14:24:09.000000000 +0200
@@ -164,8 +164,6 @@
 {
        // Run down descriptors
        size_t i;
-       for (i = 0; i < DescriptorsToDelete.size(); i++)
-               delete DescriptorsToDelete[i];
        for (i = 0; i < NewDescriptors.size(); i++)
                delete NewDescriptors[i];
        for (i = 0; i < Descriptors.size(); i++)
@@ -176,7 +174,7 @@
 
        // Remove any file watch descriptors
        while(!Files.empty()) {
-               map<int, Bindable_t*>::iterator f = Files.begin();
+               std::map<int, Bindable_t*>::iterator f = Files.begin();
                UnwatchFile (f->first);
        }
 
@@ -506,7 +504,7 @@
        const EventableDescriptor *head = NULL;
 
        while (true) {
-               multimap<uint64_t,EventableDescriptor*>::iterator i = 
Heartbeats.begin();
+               std::multimap<uint64_t,EventableDescriptor*>::iterator i = 
Heartbeats.begin();
                if (i == Heartbeats.end())
                        break;
                if (i->first > MyCurrentLoopTime)
@@ -534,9 +532,9 @@
 
        if (heartbeat) {
                #ifndef HAVE_MAKE_PAIR
-               Heartbeats.insert 
(multimap<uint64_t,EventableDescriptor*>::value_type (heartbeat, ed));
+               Heartbeats.insert 
(std::multimap<uint64_t,EventableDescriptor*>::value_type (heartbeat, ed));
                #else
-               Heartbeats.insert (make_pair (heartbeat, ed));
+               Heartbeats.insert (std::make_pair (heartbeat, ed));
                #endif
        }
 }
@@ -547,8 +545,8 @@
 
 void EventMachine_t::ClearHeartbeat(uint64_t key, EventableDescriptor* ed)
 {
-       multimap<uint64_t,EventableDescriptor*>::iterator it;
-       
pair<multimap<uint64_t,EventableDescriptor*>::iterator,multimap<uint64_t,EventableDescriptor*>::iterator>
 ret;
+       std::multimap<uint64_t,EventableDescriptor*>::iterator it;
+       
std::pair<std::multimap<uint64_t,EventableDescriptor*>::iterator,std::multimap<uint64_t,EventableDescriptor*>::iterator>
 ret;
        ret = Heartbeats.equal_range (key);
        for (it = ret.first; it != ret.second; ++it) {
                if (it->second == ed) {
@@ -747,7 +745,7 @@
                                else if (ke->filter == EVFILT_WRITE)
                                        ed->Write();
                                else
-                                       cerr << "Discarding unknown kqueue 
event " << ke->filter << endl;
+                                       std::cerr << "Discarding unknown kqueue 
event " << ke->filter << std::endl;
 
                                break;
                }
@@ -786,12 +784,12 @@
        uint64_t current_time = GetRealTime();
 
        if (!Heartbeats.empty()) {
-               multimap<uint64_t,EventableDescriptor*>::iterator heartbeats = 
Heartbeats.begin();
+               std::multimap<uint64_t,EventableDescriptor*>::iterator 
heartbeats = Heartbeats.begin();
                next_event = heartbeats->first;
        }
 
        if (!Timers.empty()) {
-               multimap<uint64_t,Timer_t>::iterator timers = Timers.begin();
+               std::multimap<uint64_t,Timer_t>::iterator timers = 
Timers.begin();
                if (next_event == 0 || timers->first < next_event)
                        next_event = timers->first;
        }
@@ -842,17 +840,6 @@
                EventableDescriptor *ed = Descriptors[i];
                assert (ed);
                if (ed->ShouldDelete()) {
-                       DescriptorsToDelete.push_back(ed);
-               }
-               else
-                       Descriptors [j++] = ed;
-       }
-       while ((size_t)j < Descriptors.size())
-               Descriptors.pop_back();
-
-       nSockets = DescriptorsToDelete.size();
-       for (i=0; i < nSockets; i++) {
-               EventableDescriptor *ed = DescriptorsToDelete[i];
                #ifdef HAVE_EPOLL
                        if (Poller == Poller_Epoll) {
                                assert (epfd != -1);
@@ -868,9 +855,13 @@
                                ModifiedDescriptors.erase(ed);
                        }
                #endif
-               delete ed;
+                       delete ed;
+               }
+               else
+                       Descriptors [j++] = ed;
        }
-       DescriptorsToDelete.clear();
+       while ((size_t)j < Descriptors.size())
+               Descriptors.pop_back();
 }
 
 /*********************************
@@ -925,7 +916,7 @@
 static VALUE _SelectDataSelect (void *v)
 {
        SelectData_t *sd = (SelectData_t*)v;
-       sd->nSockets = select (sd->maxsocket+1, rb_fd_ptr(&(sd->fdreads)), 
rb_fd_ptr(&(sd->fdwrites)), rb_fd_ptr(&(sd->fderrors)), &(sd->tv));
+       sd->nSockets = rb_fd_select (sd->maxsocket+1, &(sd->fdreads), 
&(sd->fdwrites), &(sd->fderrors), &(sd->tv));
        return Qnil;
 }
 #endif
@@ -1134,7 +1125,7 @@
        // one that hasn't expired yet.
 
        while (true) {
-               multimap<uint64_t,Timer_t>::iterator i = Timers.begin();
+               std::multimap<uint64_t,Timer_t>::iterator i = Timers.begin();
                if (i == Timers.end())
                        break;
                if (i->first > MyCurrentLoopTime)
@@ -1161,9 +1152,9 @@
 
        Timer_t t;
        #ifndef HAVE_MAKE_PAIR
-       multimap<uint64_t,Timer_t>::iterator i = Timers.insert 
(multimap<uint64_t,Timer_t>::value_type (fire_at, t));
+       std::multimap<uint64_t,Timer_t>::iterator i = Timers.insert 
(std::multimap<uint64_t,Timer_t>::value_type (fire_at, t));
        #else
-       multimap<uint64_t,Timer_t>::iterator i = Timers.insert (make_pair 
(fire_at, t));
+       std::multimap<uint64_t,Timer_t>::iterator i = Timers.insert 
(std::make_pair (fire_at, t));
        #endif
        return i->second.GetBinding();
 }
@@ -1840,7 +1831,7 @@
 
        #ifdef HAVE_EPOLL
        if (Poller == Poller_Epoll) {
-               set<EventableDescriptor*>::iterator i = 
ModifiedDescriptors.begin();
+               std::set<EventableDescriptor*>::iterator i = 
ModifiedDescriptors.begin();
                while (i != ModifiedDescriptors.end()) {
                        assert (*i);
                        _ModifyEpollEvent (*i);
@@ -1851,7 +1842,7 @@
 
        #ifdef HAVE_KQUEUE
        if (Poller == Poller_Kqueue) {
-               set<EventableDescriptor*>::iterator i = 
ModifiedDescriptors.begin();
+               std::set<EventableDescriptor*>::iterator i = 
ModifiedDescriptors.begin();
                while (i != ModifiedDescriptors.end()) {
                        assert (*i);
                        if ((*i)->GetKqueueArmWrite())
@@ -2129,7 +2120,7 @@
                throw std::runtime_error(errbuf);
        }
        Bindable_t* b = new Bindable_t();
-       Pids.insert(make_pair (pid, b));
+       Pids.insert(std::make_pair (pid, b));
 
        return b->GetBinding();
 }
@@ -2166,7 +2157,7 @@
 
 void EventMachine_t::UnwatchPid (const uintptr_t sig)
 {
-       for(map<int, Bindable_t*>::iterator i=Pids.begin(); i != Pids.end(); 
i++)
+       for(std::map<int, Bindable_t*>::iterator i=Pids.begin(); i != 
Pids.end(); i++)
        {
                if (i->second->GetBinding() == sig) {
                        UnwatchPid (i->first);
@@ -2228,7 +2219,7 @@
 
        if (wd != -1) {
                Bindable_t* b = new Bindable_t();
-               Files.insert(make_pair (wd, b));
+               Files.insert(std::make_pair (wd, b));
 
                return b->GetBinding();
        }
@@ -2262,7 +2253,7 @@
 
 void EventMachine_t::UnwatchFile (const uintptr_t sig)
 {
-       for(map<int, Bindable_t*>::iterator i=Files.begin(); i != Files.end(); 
i++)
+       for(std::map<int, Bindable_t*>::iterator i=Files.begin(); i != 
Files.end(); i++)
        {
                if (i->second->GetBinding() == sig) {
                        UnwatchFile (i->first);
@@ -2293,7 +2284,7 @@
                int current = 0;
                while (current < returned) {
                        struct inotify_event* event = (struct 
inotify_event*)(buffer+current);
-                       map<int, Bindable_t*>::const_iterator bindable = 
Files.find(event->wd);
+                       std::map<int, Bindable_t*>::const_iterator bindable = 
Files.find(event->wd);
                        if (bindable != Files.end()) {
                                if (event->mask & (IN_MODIFY | IN_CREATE | 
IN_DELETE | IN_MOVE)){
                                        
(*EventCallback)(bindable->second->GetBinding(), EM_CONNECTION_READ, 
"modified", 8);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ext/em.h new/ext/em.h
--- old/ext/em.h        2017-07-28 08:45:28.000000000 +0200
+++ new/ext/em.h        2018-05-12 14:24:09.000000000 +0200
@@ -236,14 +236,13 @@
                class Timer_t: public Bindable_t {
                };
 
-               multimap<uint64_t, Timer_t> Timers;
-               multimap<uint64_t, EventableDescriptor*> Heartbeats;
-               map<int, Bindable_t*> Files;
-               map<int, Bindable_t*> Pids;
-               vector<EventableDescriptor*> Descriptors;
-               vector<EventableDescriptor*> NewDescriptors;
-               vector<EventableDescriptor*> DescriptorsToDelete;
-               set<EventableDescriptor*> ModifiedDescriptors;
+               std::multimap<uint64_t, Timer_t> Timers;
+               std::multimap<uint64_t, EventableDescriptor*> Heartbeats;
+               std::map<int, Bindable_t*> Files;
+               std::map<int, Bindable_t*> Pids;
+               std::vector<EventableDescriptor*> Descriptors;
+               std::vector<EventableDescriptor*> NewDescriptors;
+               std::set<EventableDescriptor*> ModifiedDescriptors;
 
                SOCKET LoopBreakerReader;
                SOCKET LoopBreakerWriter;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ext/fastfilereader/mapper.cpp 
new/ext/fastfilereader/mapper.cpp
--- old/ext/fastfilereader/mapper.cpp   2017-07-28 08:45:28.000000000 +0200
+++ new/ext/fastfilereader/mapper.cpp   2018-05-12 14:24:09.000000000 +0200
@@ -30,13 +30,12 @@
 #include <sys/mman.h>
 #include <fcntl.h>
 #include <errno.h>
+#include <unistd.h>
 
 #include <iostream>
-#include "unistd.h"
 #include <string>
 #include <cstring>
 #include <stdexcept>
-using namespace std;
 
 #include "mapper.h"
 
@@ -44,7 +43,7 @@
 Mapper_t::Mapper_t
 ******************/
 
-Mapper_t::Mapper_t (const string &filename)
+Mapper_t::Mapper_t (const std::string &filename)
 {
        /* We ASSUME we can open the file.
         * (More precisely, we assume someone else checked before we got here.)
@@ -52,11 +51,11 @@
 
        Fd = open (filename.c_str(), O_RDONLY);
        if (Fd < 0)
-               throw runtime_error (strerror (errno));
+               throw std::runtime_error (strerror (errno));
 
        struct stat st;
        if (fstat (Fd, &st))
-               throw runtime_error (strerror (errno));
+               throw std::runtime_error (strerror (errno));
        FileSize = st.st_size;
 
        #ifdef OS_WIN32
@@ -65,7 +64,7 @@
        MapPoint = (const char*) mmap (0, FileSize, PROT_READ, MAP_SHARED, Fd, 
0);
        #endif
        if (MapPoint == MAP_FAILED)
-               throw runtime_error (strerror (errno));
+               throw std::runtime_error (strerror (errno));
 }
 
 
@@ -128,7 +127,6 @@
 #include <iostream>
 #include <string>
 #include <stdexcept>
-using namespace std;
 
 #include "mapper.h"
 
@@ -136,7 +134,7 @@
 Mapper_t::Mapper_t
 ******************/
 
-Mapper_t::Mapper_t (const string &filename)
+Mapper_t::Mapper_t (const std::string &filename)
 {
        /* We ASSUME we can open the file.
         * (More precisely, we assume someone else checked before we got here.)
@@ -150,7 +148,7 @@
        hFile = CreateFile (filename.c_str(), GENERIC_READ|GENERIC_WRITE, 
FILE_SHARE_DELETE|FILE_SHARE_READ|FILE_SHARE_WRITE, NULL, OPEN_EXISTING, 
FILE_ATTRIBUTE_NORMAL, NULL);
 
        if (hFile == INVALID_HANDLE_VALUE)
-               throw runtime_error ("File not found");
+               throw std::runtime_error ("File not found");
 
        BY_HANDLE_FILE_INFORMATION i;
        if (GetFileInformationByHandle (hFile, &i))
@@ -158,7 +156,7 @@
 
        hMapping = CreateFileMapping (hFile, NULL, PAGE_READWRITE, 0, 0, NULL);
        if (!hMapping)
-               throw runtime_error ("File not mapped");
+               throw std::runtime_error ("File not mapped");
 
        #ifdef OS_WIN32
        MapPoint = (char*) MapViewOfFile (hMapping, FILE_MAP_WRITE, 0, 0, 0);
@@ -166,7 +164,7 @@
        MapPoint = (const char*) MapViewOfFile (hMapping, FILE_MAP_WRITE, 0, 0, 
0);
        #endif
        if (!MapPoint)
-               throw runtime_error ("Mappoint not read");
+               throw std::runtime_error ("Mappoint not read");
 }
 
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ext/fastfilereader/mapper.h 
new/ext/fastfilereader/mapper.h
--- old/ext/fastfilereader/mapper.h     2017-07-28 08:45:28.000000000 +0200
+++ new/ext/fastfilereader/mapper.h     2018-05-12 14:24:09.000000000 +0200
@@ -29,7 +29,7 @@
 class Mapper_t
 {
        public:
-               Mapper_t (const string&);
+               Mapper_t (const std::string&);
                virtual ~Mapper_t();
 
                const char *GetChunk (unsigned);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ext/fastfilereader/rubymain.cpp 
new/ext/fastfilereader/rubymain.cpp
--- old/ext/fastfilereader/rubymain.cpp 2017-07-28 08:45:29.000000000 +0200
+++ new/ext/fastfilereader/rubymain.cpp 2018-05-12 14:24:09.000000000 +0200
@@ -21,7 +21,6 @@
 
 #include <iostream>
 #include <stdexcept>
-using namespace std;
 
 #include <ruby.h>
 #include "mapper.h"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ext/page.cpp new/ext/page.cpp
--- old/ext/page.cpp    2017-07-28 08:45:29.000000000 +0200
+++ new/ext/page.cpp    2018-05-12 14:24:09.000000000 +0200
@@ -95,7 +95,7 @@
        if (buf && (size > 0)) {
                char *copy = (char*) malloc (size);
                if (!copy)
-                       throw runtime_error ("no memory in pagelist");
+                       throw std::runtime_error ("no memory in pagelist");
                memcpy (copy, buf, size);
                Pages.push_back (Page (copy, size));
        }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ext/page.h new/ext/page.h
--- old/ext/page.h      2017-07-28 08:45:29.000000000 +0200
+++ new/ext/page.h      2018-05-12 14:24:09.000000000 +0200
@@ -44,7 +44,7 @@
                void PopFront();
 
        private:
-               deque<Page> Pages;
+               std::deque<Page> Pages;
 };
 
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ext/project.h new/ext/project.h
--- old/ext/project.h   2017-07-28 08:45:29.000000000 +0200
+++ new/ext/project.h   2018-05-12 14:24:09.000000000 +0200
@@ -115,8 +115,6 @@
 #include <stdint.h>
 #endif
 
-using namespace std;
-
 #ifdef WITH_SSL
 #include <openssl/ssl.h>
 #include <openssl/err.h>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ext/ssl.cpp new/ext/ssl.cpp
--- old/ext/ssl.cpp     2017-07-28 08:45:29.000000000 +0200
+++ new/ext/ssl.cpp     2018-05-12 14:24:09.000000000 +0200
@@ -120,7 +120,7 @@
 SslContext_t::SslContext_t
 **************************/
 
-SslContext_t::SslContext_t (bool is_server, const string &privkeyfile, const 
string &certchainfile, const string &cipherlist, const string &ecdh_curve, 
const string &dhparam, int ssl_version) :
+SslContext_t::SslContext_t (bool is_server, const std::string &privkeyfile, 
const std::string &certchainfile, const std::string &cipherlist, const 
std::string &ecdh_curve, const std::string &dhparam, int ssl_version) :
        bIsServer (is_server),
        pCtx (NULL),
        PrivateKey (NULL),
@@ -219,7 +219,7 @@
                                BIO_free(bio);
                                char buf [500];
                                snprintf (buf, sizeof(buf)-1, "dhparam: 
PEM_read_bio_DHparams(%s) failed", dhparam.c_str());
-                               throw new std::runtime_error(buf);
+                               throw std::runtime_error (buf);
                        }
 
                        SSL_CTX_set_tmp_dh(pCtx, dh);
@@ -304,7 +304,7 @@
 SslBox_t::SslBox_t
 ******************/
 
-SslBox_t::SslBox_t (bool is_server, const string &privkeyfile, const string 
&certchainfile, bool verify_peer, bool fail_if_no_peer_cert, const string 
&snihostname, const string &cipherlist, const string &ecdh_curve, const string 
&dhparam, int ssl_version, const uintptr_t binding):
+SslBox_t::SslBox_t (bool is_server, const std::string &privkeyfile, const 
std::string &certchainfile, bool verify_peer, bool fail_if_no_peer_cert, const 
std::string &snihostname, const std::string &cipherlist, const std::string 
&ecdh_curve, const std::string &dhparam, int ssl_version, const uintptr_t 
binding):
        bIsServer (is_server),
        bHandshakeCompleted (false),
        bVerifyPeer (verify_peer),
@@ -345,8 +345,11 @@
                SSL_set_verify(pSSL, mode, ssl_verify_wrapper);
        }
 
-       if (!bIsServer)
-               SSL_connect (pSSL);
+       if (!bIsServer) {
+               int e = SSL_connect (pSSL);
+               if (e != 1)
+                       ERR_print_errors_fp(stderr);
+       }
 }
 
 
@@ -397,6 +400,7 @@
                if (e != 1) {
                        int er = SSL_get_error (pSSL, e);
                        if (er != SSL_ERROR_WANT_READ) {
+                               ERR_print_errors_fp(stderr);
                                // Return -1 for a nonfatal error, -2 for an 
error that should force the connection down.
                                return (er == SSL_ERROR_SSL) ? (-2) : (-1);
                        }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ext/ssl.h new/ext/ssl.h
--- old/ext/ssl.h       2017-07-28 08:45:29.000000000 +0200
+++ new/ext/ssl.h       2018-05-12 14:24:09.000000000 +0200
@@ -33,7 +33,7 @@
 class SslContext_t
 {
        public:
-               SslContext_t (bool is_server, const string &privkeyfile, const 
string &certchainfile, const string &cipherlist, const string &ecdh_curve, 
const string &dhparam, int ssl_version);
+               SslContext_t (bool is_server, const std::string &privkeyfile, 
const std::string &certchainfile, const std::string &cipherlist, const 
std::string &ecdh_curve, const std::string &dhparam, int ssl_version);
                virtual ~SslContext_t();
 
        private:
@@ -61,7 +61,7 @@
 class SslBox_t
 {
        public:
-               SslBox_t (bool is_server, const string &privkeyfile, const 
string &certchainfile, bool verify_peer, bool fail_if_no_peer_cert, const 
string &snihostname, const string &cipherlist, const string &ecdh_curve, const 
string &dhparam, int ssl_version, const uintptr_t binding);
+               SslBox_t (bool is_server, const std::string &privkeyfile, const 
std::string &certchainfile, bool verify_peer, bool fail_if_no_peer_cert, const 
std::string &snihostname, const std::string &cipherlist, const std::string 
&ecdh_curve, const std::string &dhparam, int ssl_version, const uintptr_t 
binding);
                virtual ~SslBox_t();
 
                int PutPlaintext (const char*, int);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lib/em/pure_ruby.rb new/lib/em/pure_ruby.rb
--- old/lib/em/pure_ruby.rb     2017-07-28 08:45:29.000000000 +0200
+++ new/lib/em/pure_ruby.rb     2018-05-12 14:24:09.000000000 +0200
@@ -430,6 +430,11 @@
       # Needs to be implemented. Currently a no-op stub to allow
       # certain software to operate with the EM pure-ruby.
     end
+
+    # @private
+    def report_connection_error_status signature
+      get_sock_opt(signature, Socket::SOL_SOCKET, Socket::SO_ERROR).int
+    end
   end
 end
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lib/em/version.rb new/lib/em/version.rb
--- old/lib/em/version.rb       2017-07-28 08:45:29.000000000 +0200
+++ new/lib/em/version.rb       2018-05-12 14:24:09.000000000 +0200
@@ -1,3 +1,3 @@
 module EventMachine
-  VERSION = "1.2.5"
+  VERSION = "1.2.7"
 end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lib/eventmachine.rb new/lib/eventmachine.rb
--- old/lib/eventmachine.rb     2017-07-28 08:45:29.000000000 +0200
+++ new/lib/eventmachine.rb     2018-05-12 14:24:09.000000000 +0200
@@ -177,14 +177,15 @@
       @next_tick_queue ||= []
       @tails ||= []
       begin
+        initialize_event_machine
         @reactor_pid = Process.pid
+        @reactor_thread = Thread.current
         @reactor_running = true
-        initialize_event_machine
+
         (b = blk || block) and add_timer(0, b)
         if @next_tick_queue && !@next_tick_queue.empty?
           add_timer(0) { signal_loopbreak }
         end
-        @reactor_thread = Thread.current
 
         # Rubinius needs to come back into "Ruby space" for GC to work,
         # so we'll crank the machine here.
@@ -984,7 +985,7 @@
         # do some work during the next_tick. The only mechanism we have from 
the
         # ruby side is next_tick itself, although ideally, we'd just drop a 
byte
         # on the loopback descriptor.
-        EM.next_tick {} if exception_raised
+        next_tick {} if exception_raised
       end
     end
   end
@@ -1079,7 +1080,7 @@
             raise error unless eback
             @resultqueue << [error, eback]
           end
-          EventMachine.signal_loopbreak
+          signal_loopbreak
         end
       end
       @threadpool << thread
@@ -1490,12 +1491,22 @@
             rescue Errno::EBADF, IOError
             end
           end
-        rescue Exception => e
-          if stopping?
-            @wrapped_exception = $!
-            stop
+        # As noted above, unbind absolutely must not raise an exception or the 
reactor will crash.
+        # If there is no EM.error_handler, or if the error_handler retrows, 
then stop the reactor,
+        # stash the exception in $wrapped_exception, and the exception will be 
raised after the
+        # reactor is cleaned up (see the last line of self.run).
+        rescue Exception => error
+          if instance_variable_defined? :@error_handler
+            begin
+              @error_handler.call error
+              # No need to stop unless error_handler rethrows
+            rescue Exception => error
+              @wrapped_exception = error
+              stop
+            end
           else
-            raise e
+            @wrapped_exception = error
+            stop
           end
         end
       elsif c = @acceptors.delete( conn_binding )
@@ -1503,7 +1514,7 @@
       else
         if $! # Bubble user generated errors.
           @wrapped_exception = $!
-          EM.stop
+          stop
         else
           raise ConnectionNotBound, "received ConnectionUnbound for an unknown 
signature: #{conn_binding}"
         end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lib/jeventmachine.rb new/lib/jeventmachine.rb
--- old/lib/jeventmachine.rb    2017-07-28 08:45:29.000000000 +0200
+++ new/lib/jeventmachine.rb    2018-05-12 14:24:09.000000000 +0200
@@ -80,6 +80,17 @@
   # @private
   SslVerify = 109
 
+  # @private
+  EM_PROTO_SSLv2 = 2
+  # @private
+  EM_PROTO_SSLv3 = 4
+  # @private
+  EM_PROTO_TLSv1 = 8
+  # @private
+  EM_PROTO_TLSv1_1 = 16
+  # @private
+  EM_PROTO_TLSv1_2 = 32
+
   # Exceptions that are defined in rubymain.cpp
   class ConnectionError < RuntimeError; end
   class ConnectionNotBound < RuntimeError; end
@@ -127,6 +138,8 @@
   end
   def self.send_data sig, data, length
     @em.sendData sig, data.to_java_bytes
+  rescue java.lang.NullPointerException
+    0
   end
   def self.send_datagram sig, data, length, address, port
     @em.sendDatagram sig, data.to_java_bytes, length, address, port
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/metadata new/metadata
--- old/metadata        2017-07-28 08:45:28.000000000 +0200
+++ new/metadata        2018-05-12 14:24:09.000000000 +0200
@@ -1,53 +1,53 @@
 --- !ruby/object:Gem::Specification
 name: eventmachine
 version: !ruby/object:Gem::Version
-  version: 1.2.5
+  version: 1.2.7
 platform: ruby
 authors:
 - Francis Cianfrocca
 - Aman Gupta
-autorequire:
+autorequire: 
 bindir: bin
 cert_chain: []
-date: 2017-07-28 00:00:00.000000000 Z
+date: 2018-05-12 00:00:00.000000000 Z
 dependencies:
 - !ruby/object:Gem::Dependency
+  name: test-unit
   requirement: !ruby/object:Gem::Requirement
     requirements:
     - - "~>"
       - !ruby/object:Gem::Version
         version: '2.0'
-  name: test-unit
-  prerelease: false
   type: :development
+  prerelease: false
   version_requirements: !ruby/object:Gem::Requirement
     requirements:
     - - "~>"
       - !ruby/object:Gem::Version
         version: '2.0'
 - !ruby/object:Gem::Dependency
+  name: rake-compiler
   requirement: !ruby/object:Gem::Requirement
     requirements:
     - - "~>"
       - !ruby/object:Gem::Version
         version: 0.9.5
-  name: rake-compiler
-  prerelease: false
   type: :development
+  prerelease: false
   version_requirements: !ruby/object:Gem::Requirement
     requirements:
     - - "~>"
       - !ruby/object:Gem::Version
         version: 0.9.5
 - !ruby/object:Gem::Dependency
+  name: rake-compiler-dock
   requirement: !ruby/object:Gem::Requirement
     requirements:
     - - "~>"
       - !ruby/object:Gem::Version
         version: 0.5.1
-  name: rake-compiler-dock
-  prerelease: false
   type: :development
+  prerelease: false
   version_requirements: !ruby/object:Gem::Requirement
     requirements:
     - - "~>"
@@ -262,7 +262,7 @@
 - Ruby
 - GPL-2.0
 metadata: {}
-post_install_message:
+post_install_message: 
 rdoc_options:
 - "--title"
 - EventMachine
@@ -285,9 +285,9 @@
     - !ruby/object:Gem::Version
       version: '0'
 requirements: []
-rubyforge_project:
-rubygems_version: 2.6.8
-signing_key:
+rubyforge_project: 
+rubygems_version: 2.5.2
+signing_key: 
 specification_version: 4
 summary: Ruby/EventMachine library
 test_files:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/tests/test_basic.rb new/tests/test_basic.rb
--- old/tests/test_basic.rb     2017-07-28 08:45:29.000000000 +0200
+++ new/tests/test_basic.rb     2018-05-12 14:24:09.000000000 +0200
@@ -113,6 +113,9 @@
       EM.start_server "127.0.0.1", @port
       EM.connect "127.0.0.1", @port, UnbindError
     }
+
+    # Remove the error handler before the next test
+    EM.error_handler(nil)
   end
 
   module BrsTestSrv
@@ -309,6 +312,9 @@
       EM.add_timer(0.001) { EM.stop }
     end
 
+    # Remove the error handler before the next test
+    EM.error_handler(nil)
+
     assert_equal 1, errors.size
     assert_equal [:first, :second], ticks
   end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/tests/test_ipv6.rb new/tests/test_ipv6.rb
--- old/tests/test_ipv6.rb      2017-07-28 08:45:29.000000000 +0200
+++ new/tests/test_ipv6.rb      2018-05-12 14:24:09.000000000 +0200
@@ -41,7 +41,7 @@
       EM.run do
         EM.open_datagram_socket(@@public_ipv6, @local_port) do |s|
           def s.receive_data data
-            _port, @@remote_ip = Socket.unpack_sockaddr_in(s.get_peername)
+            _port, @@remote_ip = Socket.unpack_sockaddr_in(get_peername)
             @@received_data = data
             EM.stop
           end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/tests/test_pool.rb new/tests/test_pool.rb
--- old/tests/test_pool.rb      2017-07-28 08:45:29.000000000 +0200
+++ new/tests/test_pool.rb      2018-05-12 14:24:09.000000000 +0200
@@ -56,7 +56,7 @@
     assert_equal pooled_res, pooled_res2
   end
 
-  def test_supports_custom_error_handler
+  def test_supports_custom_on_error
     eres = nil
     pool.on_error do |res|
       eres = res


Reply via email to