diff --git a/lib/ostatus/push.js b/lib/ostatus/push.js index 8a6ee6f..fb4e03f 100644 --- a/lib/ostatus/push.js +++ b/lib/ostatus/push.js @@ -63,23 +63,27 @@ function subscribe(url, config, callback) { console.log("Data: " + data); Http.post(url, data, headers, function(err, response, body) { if (err) return callback(err); - if (response.statusCode == 200) { + if (response.statusCode == 202) { callback(null, "pending"); } else if (response.statusCode == 204) { callback(null, "accepted"); } else { - callback(new Error("Push subscribe returned http status code " + response.statusCode)); - } + callback(new Error("Push subscribe http error " + response.statusCode + "\n" + body)); + } }); } +function sign(data, secret) { + var hmac = Crypto.createHmac("sha1", secret); + var hash = hmac.update(data); + return hmac.digest(encoding="hex"); +} + function distribute(data, url, secret, callback) { var headers = {"Content-Type": "application/atom-xml"}; if (secret != undefined) { - var hmac = Crypto.createHmac("sha1", secret); - var hash = hmac.update(data); - var digest = "sha1="+ hmac.digest(encoding="hex"); + var digest = "sha1="+ sign(data, secret); headers["X-Hub-Signature"] = digest; console.log("Digest: " + digest); } @@ -107,3 +111,4 @@ function _secret(size) { exports.verify = verify; exports.distribute = distribute; exports.subscribe = subscribe; +exports.sign = sign; \ No newline at end of file