attachment-0001

<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:st1="urn:schemas-microsoft-com:office:smarttags" xmlns="http://www.w3.org/TR/REC-html40">

<head>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=us-ascii">
<meta name=Generator content="Microsoft Word 11 (filtered medium)">
<!--[if !mso]>
<style>
v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
</style>
<![endif]--><o:SmartTagType
 namespaceuri="urn:schemas-microsoft-com:office:smarttags" name="PersonName"/>
<!--[if !mso]>
<style>
st1\:*{behavior:url(#default#ieooui) }
</style>
<![endif]-->
<style>
<!--
 /* Font Definitions */
 @font-face
        {font-family:Tahoma;
        panose-1:2 11 6 4 3 5 4 4 2 4;}
@font-face
        {font-family:Monaco;
        panose-1:0 0 0 0 0 0 0 0 0 0;}
 /* Style Definitions */
 p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Times New Roman";}
a:link, span.MsoHyperlink
        {color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {color:purple;
        text-decoration:underline;}
span.EmailStyle17
        {mso-style-type:personal;
        font-family:Arial;
        color:navy;
        font-weight:normal;
        font-style:normal;}
span.EmailStyle19
        {mso-style-type:personal-reply;
        font-family:Arial;
        color:#993366;
        font-weight:normal;
        font-style:normal;}
@page Section1
        {size:8.5in 11.0in;
        margin:1.0in 1.25in 1.0in 1.25in;}
div.Section1
        {page:Section1;}
-->
</style>

</head>

<body lang=EN-US link=blue vlink=purple style='word-wrap: break-word;
-webkit-nbsp-mode: space;-webkit-line-break: after-white-space'>

<div class=Section1>

<p class=MsoNormal><font size=2 color="#993366" face=Arial><span
style='font-size:10.0pt;font-family:Arial;color:#993366'>I agree.&nbsp; Sounds good.<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 color="#993366" face=Arial><span
style='font-size:10.0pt;font-family:Arial;color:#993366'><o:p>&nbsp;</o:p></span></font></p>

<p class=MsoNormal><font size=2 color="#993366" face=Arial><span
style='font-size:10.0pt;font-family:Arial;color:#993366'>Tom<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 color="#993366" face=Arial><span
style='font-size:10.0pt;font-family:Arial;color:#993366'><o:p>&nbsp;</o:p></span></font></p>

<div>

<div class=MsoNormal align=center style='text-align:center'><font size=3
face="Times New Roman"><span style='font-size:12.0pt'>

<hr size=2 width="100%" align=center tabindex=-1>

</span></font></div>

<p class=MsoNormal><b><font size=2 face=Tahoma><span style='font-size:10.0pt;
font-family:Tahoma;font-weight:bold'>From:</span></font></b><font size=2
face=Tahoma><span style='font-size:10.0pt;font-family:Tahoma'> Michael Sweet
[mailto:msweet@apple.com] <br>
<b><span style='font-weight:bold'>Sent:</span></b> Thursday, October 08, 2009
16:57<br>
<b><span style='font-weight:bold'>To:</span></b> <st1:PersonName w:st="on">tom.hastings@alum.mit.edu</st1:PersonName><br>
<b><span style='font-weight:bold'>Cc:</span></b> ipp@pwg.org<br>
<b><span style='font-weight:bold'>Subject:</span></b> Re: [IPP] ISSUE: on
Cancel-Jobs: what if some jobs are in cancelable state and some are not?</span></font><o:p></o:p></p>

</div>

<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size:
12.0pt'><o:p>&nbsp;</o:p></span></font></p>

<div>

<div>

<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size:
12.0pt'>On Oct 8, 2009, at 4:43 PM, Tom Hastings wrote:<o:p></o:p></span></font></p>

</div>

<blockquote style='margin-top:5.0pt;margin-bottom:5.0pt' type=cite><u1:smarttagtype namespaceuri="urn:schemas-microsoft-com:office:smarttags" name="PersonName">

<div link=blue vlink=purple style='word-wrap: break-word;-webkit-nbsp-mode: space;
-webkit-line-break: after-white-space'>

<p class=MsoNormal><font size=2 color=blue face=Arial><span style='font-size:
10.0pt;font-family:Arial;color:blue'>I think we have agreement.&nbsp; Since the
Cancel-Jobs is now all or nothing, the Printer MUST return an error code if any
of the jobs could NOT be canceled, even if all the rest could be.&nbsp; <u1:p></u1:p></span></font><o:p></o:p></p>

<p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
10.0pt;font-family:Arial;color:navy'><u1:p>&nbsp;</u1:p></span></font><o:p></o:p></p>

<p class=MsoNormal><font size=2 color=blue face=Arial><span style='font-size:
10.0pt;font-family:Arial;color:blue'>So if any are not the user&#8217;s, then return:</span></font><font
size=2 color=navy face=Arial><span style='font-size:10.0pt;font-family:Arial;
color:navy'> </span></font><a name="_Toc518405512"><span style='layout-grid-mode:
line'>client-error-not-authorized (0x0403)</span></a><u1:p></u1:p><o:p></o:p></p>

<p class=MsoNormal><font size=2 color=blue face=Arial><span style='font-size:
10.0pt;font-family:Arial;color:blue'>But if all are the user&#8217;s, but some are
not in a state to be canceled, return: </span></font><a name="_Toc518405513"><span
style='layout-grid-mode:line'>client-error-not-possible (0x0404)</span></a><u1:p></u1:p><o:p></o:p></p>

<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size:
12.0pt'><u1:p>&nbsp;</u1:p><o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 color=blue face=Arial><span style='font-size:
10.0pt;font-family:Arial;color:blue'>If the user requests &#8220;my-jobs&#8221; = &#8216;true&#8217;,
but there are no jobs that can be canceled, return: </span></font><a
name="_Toc518405515"><span style='layout-grid-mode:line'>client-error-not-found
(0x0406)</span></a><o:p></o:p></p>

<u1:p></u1:p>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial;layout-grid-mode:line'><u1:p>&nbsp;</u1:p></span></font><o:p></o:p></p>

<p class=MsoNormal><font size=2 color=blue face=Arial><span style='font-size:
10.0pt;font-family:Arial;color:blue;layout-grid-mode:line'>If the user omits
&#8220;job-ids&#8221; and omits &#8220;my-jobs&#8221; (or supplies the default &#8220;my-jobs&#8221; = &#8216;false&#8217;),
return: </span></font><span style='layout-grid-mode:line'>client-error-not-authorized
(0x0403)</span><font size=2 color=blue face=Arial><span style='font-size:10.0pt;
font-family:Arial;color:blue;layout-grid-mode:line'>.&nbsp; But what if the
only jobs that are cancelable are the user&#8217;s?&nbsp; That could successfully
cancel all jobs as long as they all belonged to the user.&nbsp; An
implementation could to this easily, by simply checking each job that is
cancelable and as soon as it finds one that doesn&#8217;t belong to the requesting
user, it stops checking and returns the </span></font><span style='layout-grid-mode:
line'>client-error-not-authorized (0x0403)</span><font size=2 color=blue
face=Arial><span style='font-size:10.0pt;font-family:Arial;color:blue;
layout-grid-mode:line'>; if all jobs belong to the user, it cancels all of them
and returns: </span></font><a name="_Toc518405504"><span style='layout-grid-mode:
line'>successful-ok (0x0000)</span></a><span style='layout-grid-mode:line'>,
OK?</span><o:p></o:p></p>

</div>

</blockquote>

<div>

<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size:
12.0pt'><o:p>&nbsp;</o:p></span></font></p>

</div>

</u1:smarttagtype>

<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size:
12.0pt'>Sounds reasonable.<o:p></o:p></span></font></p>

</div>

<div>

<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size:
12.0pt'><br>
<br>
<o:p></o:p></span></font></p>

<u1:smarttagtype namespaceuri="urn:schemas-microsoft-com:office:smarttags" name="PersonName">

<div link=blue vlink=purple style='word-wrap: break-word;-webkit-nbsp-mode: space;
-webkit-line-break: after-white-space'>

<p class=MsoNormal><font size=2 color=blue face=Arial><span style='font-size:
10.0pt;font-family:Arial;color:blue;layout-grid-mode:line'>If the operator
requests all jobs be canceled by omitting both &#8220;job-ids&#8221; and &#8220;my-jobs&#8221; (or
supplied &#8220;my-jobs&#8221; = &#8216;false&#8217;), and there are no jobs that can be canceled, then
return</span></font><span style='layout-grid-mode:line'> client-error-not-found
(0x0406)</span><o:p></o:p></p>

<u1:p></u1:p>

<p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
10.0pt;font-family:Arial;color:navy'><u1:p>&nbsp;</u1:p></span></font><o:p></o:p></p>

<p class=MsoNormal><font size=2 color=blue face=Arial><span style='font-size:
10.0pt;font-family:Arial;color:blue'>I don&#8217;t see a good way to indicate which
jobs are the offending jobs.&nbsp; Returning the &#8220;job-ids&#8221; in the Unsupported
attributes group with the values removed that could have been canceled is about
as close as I can get, but that is for a successfully completed operation which
returns the status code: </span></font><a name="_Toc518405506"><span
style='layout-grid-mode:line'>successful-ok-conflicting-attributes (0x0002)</span></a><font
size=2 color=blue face=Arial><span style='font-size:10.0pt;font-family:Arial;
color:blue'>.&nbsp; </span></font><o:p></o:p></p>

</div>

<div>

<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size:
12.0pt'><o:p>&nbsp;</o:p></span></font></p>

</div>

</u1:smarttagtype>

<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size:
12.0pt'>According to 3.1.7 of RFC 2911, any operation can include an
unsupported group in its response, regardless of the status code; there are
handful of status codes that require an unsupported group be present...<o:p></o:p></span></font></p>

</div>

<div>

<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size:
12.0pt'><o:p>&nbsp;</o:p></span></font></p>

</div>

<div>

<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size:
12.0pt'>So, I think we are OK returning the job-ids that are causing the error
in the unsupported group of the response.<o:p></o:p></span></font></p>

</div>

<div>

<p class=MsoNormal><span class=apple-style-span><font size=1 color=navy
face=Arial><span style='font-size:9.0pt;font-family:Arial;color:navy'>&nbsp;</span></font></span><o:p></o:p></p>

</div>

<div>

<blockquote style='margin-top:5.0pt;margin-bottom:5.0pt' type=cite><u1:smarttagtype namespaceuri="urn:schemas-microsoft-com:office:smarttags" name="PersonName">

<div link=blue vlink=purple style='word-wrap: break-word;-webkit-nbsp-mode: space;
-webkit-line-break: after-white-space'>

<p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
10.0pt;font-family:Arial;color:navy;background:red'>ISSUE</span></font><font
size=2 color=navy face=Arial><span style='font-size:10.0pt;font-family:Arial;
color:navy;background:yellow'>: OK that the Printer doesn&#8217;t try to return which
jobs are the ones causing the rejection?&nbsp; Instead, OK just to indicate
that the client can do a Get-Jobs (before or after a Cancel-Jobs request) with
a &#8220;job-ids&#8221; supplied and get the status and ownership of each of the jobs to
help the user?</span></font><o:p></o:p></p>

</div>

</blockquote>

</div>

<u1:p></u1:p>

<div>

<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size:
12.0pt'><o:p>&nbsp;</o:p></span></font></p>

</div>

</u1:smarttagtype>

<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size:
12.0pt'>I don't like that approach since it introduces a race condition - the
offending job might change state between Get-Jobs, Cancel-Jobs, and Get-Jobs,
so better for the printer to say what the problem is instead.<o:p></o:p></span></font></p>

<div>

<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size:
12.0pt'><o:p>&nbsp;</o:p></span></font></p>

</div>

<div>

<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size:
12.0pt'>That said, we should only include the job-ids attribute in the response
if it was supplied in the request, since otherwise we are only canceling jobs
that can be canceled at that moment.<o:p></o:p></span></font></p>

</div>

<div>

<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size:
12.0pt'><o:p>&nbsp;</o:p></span></font></p>

<div><span style='orphans: 2;text-align:auto;widows: 2;-webkit-border-horizontal-spacing: 0px;
-webkit-border-vertical-spacing: 0px;-webkit-text-decorations-in-effect: none;
-webkit-text-size-adjust: auto;-webkit-text-stroke-width: 0px;word-spacing:
0px'>

<div>

<p class=MsoNormal><font size=4 color=black face=Monaco><span style='font-size:
13.5pt;font-family:Monaco;color:black'>___________________________________________________<o:p></o:p></span></font></p>

</div>

<div>

<p class=MsoNormal><font size=4 color=black face=Monaco><span style='font-size:
13.5pt;font-family:Monaco;color:black'>Michael Sweet, Senior Printing System
Engineer<o:p></o:p></span></font></p>

</div>

<div>

<p class=MsoNormal><font size=4 color=black face=Monaco><span style='font-size:
13.5pt;font-family:Monaco;color:black'><o:p>&nbsp;</o:p></span></font></p>

</div>

<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size:
12.0pt'></span><o:p>&nbsp;</o:p></span></font></p>

</div>

<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size:
12.0pt'><o:p>&nbsp;</o:p></span></font></p>

</div>

</div>

<br />-- 
<br />This message has been scanned for viruses and
<br />dangerous content by
<a href="http://www.mailscanner.info/"><b>MailScanner</b></a>, and is
<br />believed to be clean.
</body>

</html>