<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  </head>
  <body text="#000000" bgcolor="#FFFFFF">
    <p>Hi Zaid, thanks for the patch. I will give it a shot. Can you
      point to where it says in the spec that it should handle that? I'd
      like to try to get them to fix it on their side if I can, but when
      I looked in the spec I could not find the reference. I would need
      to indicate what is wrong in the spec in order to convince them,
      since they seem to think it is some strange behavior of GenieACS.
      Here is the email I received from them:</p>
    <p>*************************<br>
    </p>
    <p>Hello,<br>
      <br>
      Regarding Config overwrite Download RPC, the procedure is the
      following,<br>
      1) Client sends HTTP post request TransferCompleted;<br>
      2) ACS receives the message and acknowledge the result;<br>
      3) In theory server could send HTTP response
      TransferCompleteResponse, when all information was accounted.<br>
      <br>
      From standard about such message sending:<br>
      <br>
      An event is an indication that something of interest has happened
      that requires the CPE to<br>
      notify the ACS via an Inform request defined in Section A.3.3.1.
      The CPE MUST<br>
      attempt to deliver every event at least once. If the CPE is not
      currently in a Session with<br>
      the ACS, it MUST attempt to deliver events immediately; otherwise,
      it MUST attempt to<br>
      deliver them after the current Session terminates. The CPE MUST
      receive confirmation<br>
      from the ACS for it to consider an event successfully delivered.
      Once the CPE has<br>
      delivered an event successfully, the CPE MUST NOT send the same
      event again. On the<br>
      other hand, the ACS MUST be prepared to receive the same event
      more than once<br>
      because the ACS might have sent a response the CPE never receives.
      <br>
      For every type of event there is a policy that dictates if and
      when the CPE MUST retry<br>
      event delivery if a previous delivery attempt failed. <br>
      <br>
      And from this,<br>
      TRANSFER COMPLETE is not being sent any more, and it committed
      once CPE received TransferCompleteResponse.<br>
      From our point of view GeniaACS should handle those message in
      more proper way.</p>
    ********************************************************<br>
    <br>
    <div class="moz-cite-prefix">On 8/9/2018 1:52 AM, Zaid Abdulla
      wrote:<br>
    </div>
    <blockquote type="cite"
      cite="mid:80ed81fdf76b8e989df45cd5146b44642a0ca365.camel@genieacs.com">
      <pre wrap="">On Mon, 2018-08-06 at 19:44 -0700, Michael Ducharme wrote:
</pre>
      <blockquote type="cite">
        <pre wrap="">I am trying to fix this on my own but have spent probably 16 hours 
adding extra logging statements to try to figure out the flow in the 
GenieACS code to see the correct place to patch this and am still
not sure, though I am still working on it.
</pre>
      </blockquote>
      <pre wrap="">
Try the attached patch (not tested). This assumes the CPE at least
sends a DownloadResponse. If even that is too much to ask, try doing
something similar but somewhere in sendAcsRequest function.

</pre>
      <blockquote type="cite">
        <pre wrap=""> In my case the manufacturer has shown no interest in fixing it since
they say the spec says that the ACS should handle the session being
closed improperly in that way.
</pre>
      </blockquote>
      <pre wrap="">
Not only does that not make sense, the spec actually says otherwise.
IIRC it explicitly states that changes made during a session should be
ignored if the session was not successfully closed.

</pre>
      <blockquote type="cite">
        <pre wrap="">Shouldn't GenieACS be able to handle this? If TransferComplete is
received, shouldn't that be good enough?
</pre>
      </blockquote>
      <pre wrap="">
The problem is that a reference to the original download wasn't saved
in the database because DB sync happens at the end of the session.

</pre>
      <br>
      <fieldset class="mimeAttachmentHeader"></fieldset>
      <br>
      <pre wrap="">_______________________________________________
Users mailing list
<a class="moz-txt-link-abbreviated" href="mailto:Users@lists.genieacs.com">Users@lists.genieacs.com</a>
<a class="moz-txt-link-freetext" href="http://lists.genieacs.com/mailman/listinfo/users">http://lists.genieacs.com/mailman/listinfo/users</a>
</pre>
    </blockquote>
    <br>
  </body>
</html>