attachment-0001

<!DOCTYPE HTML PUBLIC "-//W3C//DTD W3 HTML//EN">
<HTML>
<HEAD>

<META content="text/html; charset=iso-8859-1" http-equiv=Content-Type>
<META content='"MSHTML 4.72.3110.7"' name=GENERATOR>
</HEAD>
<BODY bgColor=#ffffff 
style="FONT: 10pt Arial; MARGIN-LEFT: 2px; MARGIN-TOP: 2px">
<DIV>Thank you Michael.&nbsp; I had forgotten about tag ranges.&nbsp; Following 
the established guidelines would certainly address my concerns.</DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT style="BACKGROUND-COLOR: #ffffff">-Hugo</FONT></DIV>
<DIV><FONT style="BACKGROUND-COLOR: #ffffff"></FONT>&nbsp;</DIV>
<DIV><FONT style="BACKGROUND-COLOR: #ffffff">P.S. -&nbsp; I apologize for the 
HTML format of my messages.&nbsp; I didn't realize the tool I'm using is doing 
it without informing me.&nbsp; I'll look into disabling this *feature* in my 
tool.</FONT><BR><BR>&gt;&gt;&gt; Michael Sweet &lt;<A 
href="mailto:mike@easysw.com">mike@easysw.com</A>&gt; 03/15/00 11:12AM 
&gt;&gt;&gt;<BR>[Hugo - please don't post HTML messages..]<BR><BR>Hugo Parra 
wrote:<BR>&gt; ...<BR>&gt; assumes it's a new attribute group.&nbsp; But if we 
allow the flexibility<BR>&gt; that I think you're proposing, parsing an IPP 
packet becomes much<BR>&gt; more complex and dangerous.&nbsp; When I run into an 
&quot;unknown tag&quot;, am I<BR>&gt; looking at ..<BR>&gt; ...<BR><BR>But the 
current specs partition the tag space clearly; all tags<BR>between 0x10 and 0xff 
are *value* tags, which means they will consist<BR>of:<BR><BR>&nbsp;&nbsp;&nbsp; 
tag<BR>&nbsp;&nbsp;&nbsp; name-length<BR>&nbsp;&nbsp;&nbsp; 
[name]<BR>&nbsp;&nbsp;&nbsp; value-length<BR>&nbsp;&nbsp;&nbsp; 
[value]<BR><BR>The tag 0x7f is used to introduce a 32-bit value tag.<BR><BR>For 
tags below 0x10, the specs show:<BR><BR>&nbsp;&nbsp;&nbsp; 
0x01&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = operation 
group<BR>&nbsp;&nbsp;&nbsp; 0x02&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
= job group<BR>&nbsp;&nbsp;&nbsp; 
0x03&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = end 
group<BR>&nbsp;&nbsp;&nbsp; 0x04&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
= printer group<BR>&nbsp;&nbsp;&nbsp; 
0x05&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = unsupported 
group<BR>&nbsp;&nbsp;&nbsp; 0x06 to 0x0f = reserved for future extension 
groups<BR><BR>Based on this information a program can easily check for 
valid<BR>input.<BR><BR>&nbsp;&nbsp;&nbsp; 1. 0x00 is 
invalid<BR>&nbsp;&nbsp;&nbsp; 2. 0x01, 0x02, and 0x04 to 0x0f start a 
group<BR>&nbsp;&nbsp;&nbsp; 3. 0x03 ends the IPP data 
stream<BR>&nbsp;&nbsp;&nbsp; 4. 0x10 to 0x7e and 0x80 to 0xff start a 
value<BR>&nbsp;&nbsp;&nbsp; 5. &quot;0x7f aa bb cc dd&quot; starts a value; the 
actual tag number<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; is in the next 4 
bytes.<BR><BR>Anything that doesn't follow this format can be thrown 
away<BR>immediately as a bad request/response.<BR><BR>-- 
<BR>______________________________________________________________________<BR>Michael 
Sweet, Easy Software 
Products&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
mike@easysw.com<BR>Printing Software for 
UNIX&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
<A 
href="http://www.easysw.com/">http://www.easysw.com</A><BR></DIV></BODY></HTML>