[nodejs-agentkeepalive] Initial import of nodejs-agentkeepalive

Tom Hughes tomh at fedoraproject.org
Tue May 28 16:38:51 UTC 2013


commit cf91d011ed97ef2f671942a361f1d8605adf5271
Author: Tom Hughes <tom at compton.nu>
Date:   Tue May 28 17:38:33 2013 +0100

    Initial import of nodejs-agentkeepalive

 .gitignore                       |    1 +
 nodejs-agentkeepalive-ssl.conf   |   11 ++
 nodejs-agentkeepalive-test.patch |  234 ++++++++++++++++++++++++++++++++++++++
 nodejs-agentkeepalive.spec       |   64 +++++++++++
 sources                          |    1 +
 5 files changed, 311 insertions(+), 0 deletions(-)
---
diff --git a/.gitignore b/.gitignore
index e69de29..5541412 100644
--- a/.gitignore
+++ b/.gitignore
@@ -0,0 +1 @@
+/agentkeepalive-0.1.5.tgz
diff --git a/nodejs-agentkeepalive-ssl.conf b/nodejs-agentkeepalive-ssl.conf
new file mode 100644
index 0000000..206fdad
--- /dev/null
+++ b/nodejs-agentkeepalive-ssl.conf
@@ -0,0 +1,11 @@
+[req]
+default_bits = 1024
+prompt = no
+distinguished_name = req_dn
+
+[req_dn]
+countryName = AU
+stateOrProvinceName = Some-State
+organizationName = Internet Widgits Pty Ltd
+commonName = fengmk2
+emailAddress = fengmk2 at gmail.com
diff --git a/nodejs-agentkeepalive-test.patch b/nodejs-agentkeepalive-test.patch
new file mode 100644
index 0000000..d58abf8
--- /dev/null
+++ b/nodejs-agentkeepalive-test.patch
@@ -0,0 +1,234 @@
+diff --git a/test/agent.js b/test/agent.js
+index d12d731..6da4678 100644
+--- a/test/agent.js
++++ b/test/agent.js
+@@ -155,6 +155,7 @@ describe('agent.js', function () {
+       agent: agentkeepalive
+     }, function (res) {
+       res.should.status(200);
++      res.resume();
+       res.on('end', function () {
+         agentkeepalive.sockets.should.have.key(name);
+         agentkeepalive.unusedSockets.should.have.key(name);
+@@ -163,16 +164,15 @@ describe('agent.js', function () {
+           agentkeepalive.sockets.should.have.key(name);
+           agentkeepalive.unusedSockets.should.have.key(name);
+           agentkeepalive.unusedSockets[name].should.length(1);
+-
+           agentkeepalive.unusedSockets[name][0].destroy();
+-          process.nextTick(function () {
++          setTimeout(function () {
+             agentkeepalive.sockets.should.not.have.key(name);
+             agentkeepalive.unusedSockets.should.not.have.key(name);
+             done();
+-          });
++          }, 10);
+         });
+       });
+-    });
++    }).on('error', done);
+   });
+ 
+   it('should use new socket when hit the max keepalive time: 1000ms', function (done) {
+@@ -191,7 +191,6 @@ describe('agent.js', function () {
+       });
+       res.on('end', function () {
+         setTimeout(function () {
+-
+           http.get({
+             port: port,
+             path: '/',
+@@ -226,6 +225,7 @@ describe('agent.js', function () {
+       agent: agent
+     }, function (res) {
+       res.should.status(200);
++      res.resume();
+       res.on('end', function () {
+         agent.sockets.should.have.key(name);
+         agent.unusedSockets.should.not.have.key(name);
+@@ -342,6 +342,7 @@ describe('agent.js', function () {
+       }, function (res) {
+         agent.sockets[name].should.length(1);
+         res.should.status(200);
++        res.resume();
+         res.on('end', function () {
+           process.nextTick(function () {
+             agent.createSocketCount.should.equal(checkCount);
+@@ -379,7 +380,7 @@ describe('agent.js', function () {
+     request(agent10, 1, requestDone);
+   });
+ 
+-  it('should not fire timeout callback more than once', function (done) {
++  it('should fire timeout callback', function (done) {
+     var counter = 0;
+     var req = http.get({
+       port: port,
+@@ -392,13 +393,14 @@ describe('agent.js', function () {
+       }, function (res) {
+         throw new Error('should not call this');
+       });
+-      req.setTimeout(500, function() {
+-        done();
++      req.setTimeout(400, function() {
++        setTimeout(done, 300);
+       });
+     });
+-    req.setTimeout(500, function() {
+-      throw new Error('Timeout callback for previous request called.');
+-    });
++    // timeout fire many times: change in node at 0.10.0+
++    // req.setTimeout(500, function() {
++    //   throw new Error('Timeout callback for previous request called.');
++    // });
+   });
+ 
+ });
+diff --git a/test/agenttest-cert.pem b/test/agenttest-cert.pem
+deleted file mode 100644
+index 6ff9b12..0000000
+--- a/test/agenttest-cert.pem
++++ /dev/null
+@@ -1,16 +0,0 @@
+------BEGIN CERTIFICATE-----
+-MIICjzCCAfgCCQCduAjYszOZ3DANBgkqhkiG9w0BAQUFADCBizELMAkGA1UEBhMC
+-Q04xEzARBgNVBAgTCkd1YW5nIERvbmcxFDASBgNVBAcTC0d1YW5nIFpob3VlMQ4w
+-DAYDVQQKEwVUQkVEUDENMAsGA1UECxMEVEVTVDEQMA4GA1UEAxMHZmVuZ21rMjEg
+-MB4GCSqGSIb3DQEJARYRZmVuZ21rMkBnbWFpbC5jb20wHhcNMTIwOTIzMTQxMDI5
+-WhcNMTIxMDIzMTQxMDI5WjCBizELMAkGA1UEBhMCQ04xEzARBgNVBAgTCkd1YW5n
+-IERvbmcxFDASBgNVBAcTC0d1YW5nIFpob3VlMQ4wDAYDVQQKEwVUQkVEUDENMAsG
+-A1UECxMEVEVTVDEQMA4GA1UEAxMHZmVuZ21rMjEgMB4GCSqGSIb3DQEJARYRZmVu
+-Z21rMkBnbWFpbC5jb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBALOEtchk
+-KBK8WTqwXR2Aov2mc0+igyQTGbxBDSyyULHPiecMqOBHs5bV4DL1pc/01hLKIp4T
+-2j2KNTTmeivrtKd3wMQL7A+IgyqdmeqRi98pYUylFZrHxb9Kiwm7mpHanodmgnTT
+-zOluEpi/K9h9zM0DbIOynsOh9/w4E2Aq6JvrAgMBAAEwDQYJKoZIhvcNAQEFBQAD
+-gYEAnPd0JvCKQQBrm9jI6TkJKmfBa4NH0wUpMQv/bo2NWw1tA8fTQYb0S4aTep5Q
+-JdYctLQeE7abY1fpXFIwFY/FC0rE3alkEK+4PlCXvHGTYMiq90oH0JtlEqYTdTWJ
+-i99gtHarMEfzejyY3VDa2XFGmZrQCP6Co5NGDjAEr2A4ECg=
+------END CERTIFICATE-----
+diff --git a/test/agenttest-key.pem b/test/agenttest-key.pem
+deleted file mode 100644
+index dc4cb72..0000000
+--- a/test/agenttest-key.pem
++++ /dev/null
+@@ -1,15 +0,0 @@
+------BEGIN RSA PRIVATE KEY-----
+-MIICXQIBAAKBgQCzhLXIZCgSvFk6sF0dgKL9pnNPooMkExm8QQ0sslCxz4nnDKjg
+-R7OW1eAy9aXP9NYSyiKeE9o9ijU05nor67Snd8DEC+wPiIMqnZnqkYvfKWFMpRWa
+-x8W/SosJu5qR2p6HZoJ008zpbhKYvyvYfczNA2yDsp7Doff8OBNgKuib6wIDAQAB
+-AoGAAp2tdHUZLGS4PCWzxalJNr8FMSTiGlV464hbI8qZaG3oyYgisdn5oPoO4U85
+-ElW0BOQTKxCI/pqT+ehd4WP25u+RXBqOSfpIRQvY2RjXmeyrkDEZWATP/BUa/Oqa
+-0YitEsAXvt3pQli+LVc9GZSFZQECgwDVdAs4n7DdQlkLwIECQQDmFL9rIE/6wF3h
+-fJkvPFs67MJgMF/T4omLnv/FGSH7KBpjFHts9AbPIGjD1dadRpmHxk7ahbSTKMxu
+-uoZ1R1irAkEAx73MW4fJDQZDdJHwskYyGXuL99Fcr8xz6YZv75tm5O3eF2a/UvoO
+-UIgDGpTIWFrm+gli27p3J0rJhhOiI4JJwQJAYOjUR3bwuRlVcahdjTvK4WLf7Evz
+-0PdWH+z0pjwTyAn4M0tpQVb3lz57YiErqEsYV8v7Yqd2i5VfpjQCdlt6yQJBAIpm
+-7kph/SLEO0tzsGenEiHsJKFT9bhun8ape7h4YsSwOdrXPC0fzXlptVTe0S+/1Rpe
+-FJ0SSGv2e0snIYsfRUECQQCP8VOp3IIE8beytDoqn3QbWvobx94NVhHKUX5UB6C+
+-bhY0LpTTFb8VMfSkICZXhbpcKf5zIdRjOh0ZLDeZJl5v
+------END RSA PRIVATE KEY-----
+diff --git a/test/certrequest.csr b/test/certrequest.csr
+deleted file mode 100644
+index 653460c..0000000
+--- a/test/certrequest.csr
++++ /dev/null
+@@ -1,13 +0,0 @@
+------BEGIN CERTIFICATE REQUEST-----
+-MIIB4zCCAUwCAQAwgYsxCzAJBgNVBAYTAkNOMRMwEQYDVQQIEwpHdWFuZyBEb25n
+-MRQwEgYDVQQHEwtHdWFuZyBaaG91ZTEOMAwGA1UEChMFVEJFRFAxDTALBgNVBAsT
+-BFRFU1QxEDAOBgNVBAMTB2ZlbmdtazIxIDAeBgkqhkiG9w0BCQEWEWZlbmdtazJA
+-Z21haWwuY29tMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCzhLXIZCgSvFk6
+-sF0dgKL9pnNPooMkExm8QQ0sslCxz4nnDKjgR7OW1eAy9aXP9NYSyiKeE9o9ijU0
+-5nor67Snd8DEC+wPiIMqnZnqkYvfKWFMpRWax8W/SosJu5qR2p6HZoJ008zpbhKY
+-vyvYfczNA2yDsp7Doff8OBNgKuib6wIDAQABoBcwFQYJKoZIhvcNAQkHMQgTBjEx
+-MjM1ODANBgkqhkiG9w0BAQUFAAOBgQCcOGlIzWyfUZ8/2r9fkBSIRYvwInUdcpHp
+-dRhJx9qUmJUtX+tUGbbQBWz4S/IaoD4rGf9Z6QR4kSPna/agfZuSi0s7pLqi1UJa
+-m0ggsFBE2XfjwsqQ+IJJ2mwAmYCRkW0tB8X/HxRRTnH2wGE8DbUfOfjzXzNyERyJ
+-cVkWt0pNRA==
+------END CERTIFICATE REQUEST-----
+diff --git a/test/fixtures/agenttest-cert.pem b/test/fixtures/agenttest-cert.pem
+new file mode 100644
+index 0000000..bce2f21
+--- /dev/null
++++ b/test/fixtures/agenttest-cert.pem
+@@ -0,0 +1,15 @@
++-----BEGIN CERTIFICATE-----
++MIICaTCCAdICCQDsGV9pOh7bwjANBgkqhkiG9w0BAQUFADB5MQswCQYDVQQGEwJB
++VTETMBEGA1UECBMKU29tZS1TdGF0ZTEhMB8GA1UEChMYSW50ZXJuZXQgV2lkZ2l0
++cyBQdHkgTHRkMRAwDgYDVQQDEwdmZW5nbWsyMSAwHgYJKoZIhvcNAQkBFhFmZW5n
++bWsyQGdtYWlsLmNvbTAeFw0xMzAzMjIwNzQ2MjBaFw0xMzA0MjEwNzQ2MjBaMHkx
++CzAJBgNVBAYTAkFVMRMwEQYDVQQIEwpTb21lLVN0YXRlMSEwHwYDVQQKExhJbnRl
++cm5ldCBXaWRnaXRzIFB0eSBMdGQxEDAOBgNVBAMTB2ZlbmdtazIxIDAeBgkqhkiG
++9w0BCQEWEWZlbmdtazJAZ21haWwuY29tMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCB
++iQKBgQCjZLaMW373Af9BkrGQ1il8Focy/DZUz4YXXMAiBWFE8dudrdVPQaDPoYv2
++p7ZJr8K0UxGf4svdhsqWkoQ+LcYaHn1Ffez5SR/6Vbic4k8w30RR+a5Iyf2K9ag9
++0jCqbBlU8roSQ2fx52oMlbhTQsodcLikoCs9DqYSptmlAmnOCwIDAQABMA0GCSqG
++SIb3DQEBBQUAA4GBAJodC7/MlaUYlrG+7PqI3B7226sk2TrdllJOkDVz+bCjQ9HD
++/ngeHMKbAh5t4+A5zXtTpPM0XTE6vMmkMsXGNUj1P8BHWPBfGM9+80NphhHX8CzE
++qXUvbxHo0TM3qx434OjkDH1ksIBBGUoJDr7YVzhw4guYFvHBnGOzDHdh7QiM
++-----END CERTIFICATE-----
+diff --git a/test/fixtures/agenttest-key.pem b/test/fixtures/agenttest-key.pem
+new file mode 100644
+index 0000000..747102b
+--- /dev/null
++++ b/test/fixtures/agenttest-key.pem
+@@ -0,0 +1,15 @@
++-----BEGIN RSA PRIVATE KEY-----
++MIICXAIBAAKBgQCjZLaMW373Af9BkrGQ1il8Focy/DZUz4YXXMAiBWFE8dudrdVP
++QaDPoYv2p7ZJr8K0UxGf4svdhsqWkoQ+LcYaHn1Ffez5SR/6Vbic4k8w30RR+a5I
++yf2K9ag90jCqbBlU8roSQ2fx52oMlbhTQsodcLikoCs9DqYSptmlAmnOCwIDAQAB
++AoGAKBW3KyvvNA4LXzzrzwqbVtP4CywQ8DGRRf39LNuBB3cGV+KjqDQDjaymN7bh
++Y6Z47+BJPJ5ZQVmmLdZ4FwEHzlA1PhoeIhJ5jXB1orqiadkEn+4lRXR3twexpvzo
++GU/2VgN80hVwQQhEKH5ZFXFpIwle+c9TD34L1s8XhqHrEtECQQDSMHfVEsmjyjBY
++Ff5b0Q42bN5EsgiMTmV0T1/13aGnAvvILrW1WQ74h43Mb3hQV6KXEvUzui/HWHg+
+++fPJHAqfAkEAxwFDPZhsdatjnBPfQu6KKf8VZwKgUhwglCgR0ofceQwwsb5yhg9K
++/lej2HMNil6Jtq50oiZc55akMvltXxuxFQJBAKCfTVPU0aaLAjquQ/yiW3wX4hsY
+++hNObZVeevSGc9wPGZ22pEF7V0dxP1k07fpnneZZJGxtIcnyv6FQnY3YEf0CQBJd
++a3cjud6iEm805kWm/dkiUTdQZrstHVSO3hYvs4j4NwYwLSFyB9mw/M3c0EMUtmDF
++eL3+DFTS8hRCMHW2eIECQEuKwy8HOJIoM/BbIlkXupeMypD0Y/aIQ+YLinunHK7v
++Cq5mFf6oALSTpDQm2yjmBS3d7+geZ4YTH/iUq1q8nvQ=
++-----END RSA PRIVATE KEY-----
+diff --git a/test/fixtures/genkey.sh b/test/fixtures/genkey.sh
+new file mode 100644
+index 0000000..66fd94c
+--- /dev/null
++++ b/test/fixtures/genkey.sh
+@@ -0,0 +1,5 @@
++openssl genrsa -out agenttest-key.pem 1024 
++openssl req -new -key agenttest-key.pem -out certrequest.csr
++openssl x509 -req -in certrequest.csr -signkey agenttest-key.pem -out agenttest-cert.pem
++rm certrequest.csr
++# http://www.hacksparrow.com/node-js-https-ssl-certificate.html
+diff --git a/test/genkey.sh b/test/genkey.sh
+deleted file mode 100644
+index bae15c3..0000000
+--- a/test/genkey.sh
++++ /dev/null
+@@ -1,5 +0,0 @@
+-openssl genrsa -out agenttest-key.pem 1024 
+-openssl req -new -key agenttest-key.pem -out certrequest.csr
+-openssl x509 -req -in certrequest.csr -signkey agenttest-key.pem -out agenttest-cert.pem
+-
+-# http://www.hacksparrow.com/node-js-https-ssl-certificate.html
+diff --git a/test/https_agent.js b/test/https_agent.js
+index de57e7d..4e0a3a7 100644
+--- a/test/https_agent.js
++++ b/test/https_agent.js
+@@ -27,8 +27,8 @@ describe('https_agent.js', function () {
+ 
+   before(function (done) {
+     app = https.createServer({
+-      key: fs.readFileSync(__dirname + '/agenttest-key.pem'),
+-      cert: fs.readFileSync(__dirname + '/agenttest-cert.pem'),
++      key: fs.readFileSync(__dirname + '/fixtures/agenttest-key.pem'),
++      cert: fs.readFileSync(__dirname + '/fixtures/agenttest-cert.pem'),
+     }, function (req, res) {
+       if (req.url === '/error') {
+         res.destroy();
+diff --git a/test/mocha.opts b/test/mocha.opts
+deleted file mode 100644
+index 0c57d9b..0000000
+--- a/test/mocha.opts
++++ /dev/null
+@@ -1 +0,0 @@
+---require should
+\ No newline at end of file
diff --git a/nodejs-agentkeepalive.spec b/nodejs-agentkeepalive.spec
new file mode 100644
index 0000000..0f04fa2
--- /dev/null
+++ b/nodejs-agentkeepalive.spec
@@ -0,0 +1,64 @@
+%global enable_tests 1
+
+Name:           nodejs-agentkeepalive
+Version:        0.1.5
+Release:        2%{?dist}
+Summary:        Missing keep-alive http.Agent
+
+License:        MIT
+URL:            https://github.com/TBEDP/agentkeepalive
+Source0:        http://registry.npmjs.org/agentkeepalive/-/agentkeepalive-%{version}.tgz
+Source1:        nodejs-agentkeepalive-ssl.conf
+# https://github.com/TBEDP/agentkeepalive/commit/18e834602e4d31f614e66966d7e6f4a262c1d7f9
+Patch0:         nodejs-agentkeepalive-test.patch
+BuildArch:      noarch
+
+BuildRequires:  nodejs-devel
+
+%if 0%{?enable_tests}
+BuildRequires:  npm(mocha)
+BuildRequires:  npm(should)
+BuildRequires:  npm(pedding)
+%endif
+
+%description
+The nodejs's missing keep alive http.Agent. Support HTTP and HTTPS.
+
+
+%prep
+%setup -q -n package
+%patch0 -p1
+rm -rf node_modules
+
+
+%build
+
+
+%install
+mkdir -p %{buildroot}/%{nodejs_sitelib}/agentkeepalive
+cp -pr package.json index.js lib %{buildroot}/%{nodejs_sitelib}/agentkeepalive
+%nodejs_symlink_deps
+
+
+%if 0%{?enable_tests}
+%check
+#%nodejs_symlink_deps --check
+ln -s %{nodejs_sitelib} .
+pushd test/fixtures
+OPENSSL_CONF=%{SOURCE1} sh genkey.sh
+popd
+NODE_TLS_REJECT_UNAUTHORIZED=0 %{nodejs_sitelib}/mocha/bin/mocha -R spec -t 10000
+%endif
+
+
+%files
+%doc README.md AUTHORS example
+%{nodejs_sitelib}/agentkeepalive
+
+
+%changelog
+* Sun May 26 2013 Tom Hughes <tom at compton.nu> - 0.1.5-2
+- Fix rpmlint warnings.
+
+* Mon Feb 25 2013 Tom Hughes <tom at compton.nu> - 0.1.5-1
+- Initial build of 0.1.5
diff --git a/sources b/sources
index e69de29..abaa1b8 100644
--- a/sources
+++ b/sources
@@ -0,0 +1 @@
+5dd71ab6a0a99375059a16dc738637bc  agentkeepalive-0.1.5.tgz


More information about the scm-commits mailing list