mod_bosh: Calculate rid difference just once
authorMatthew Wild <mwild1@gmail.com>
Tue, 11 Aug 2009 19:15:54 +0000 (20:15 +0100)
committerMatthew Wild <mwild1@gmail.com>
Tue, 11 Aug 2009 19:15:54 +0000 (20:15 +0100)
plugins/mod_bosh.lua

index d8eb94e7ecec1dcdbe737798073cf7277989acbd..fae7dc93fd767cd3d83ef0d87743b79cf7382435 100644 (file)
@@ -208,16 +208,16 @@ function stream_callbacks.streamopened(request, attr)
        
        if session.rid then
                local rid = tonumber(attr.rid);
-               if rid - session.rid > 1 then
+               local diff = rid - session.rid;
+               if diff > 1 then
                        session.log("warn", "rid too large (means a request was lost). Last rid: %d New rid: %s", session.rid, attr.rid);
-               elseif session.rid >= rid then
+               elseif diff <= 0 then
                        -- Repeated, ignore
                        session.log("debug", "rid repeated (on request %s), ignoring: %d", request.id, session.rid);
                        request.notopen = nil;
                        t_insert(session.requests, request);
                        return;
                end
-               request.rid = rid;
                session.rid = rid;
        end