*** htdocs/protocol.dat.orig	Sat Apr  7 02:30:40 2001
--- htdocs/protocol.dat	Sun Apr 15 12:27:19 2001
***************
*** 542,544 ****
--- 542,579 ----
  How many seconds you <b>must</b> wait before polling the server again.  If your client disobeys, this protocol will just return error messages saying "slow down, bad client!" instead of giving you the data you were trying to cheat to obtain.  Note that this also means your client should have an option to disable polling for updates, since some users run multiple operating systems with multiple LiveJournal clients, and both would be fighting each other.
  }
  }
+ 
+ { uploadpic
+ .des
+ Upload a user picture.
+ .request
+ { default
+ .des
+ 1 if this should be the user's default picture, 0 otherwise.
+ }
+ { keywords
+ .des
+ <I>Optional.</I> A comma-delimited list of keywords which may be used to refer to this picture.  Keywords may contain spaces, but may not contain commas, to avoid interfering with LiveJournal's UI (which often displays comma-delimited lists of items).  If a keyword is already in use by another image, it will be removed from that image.
+ }
+ { data
+ .des
+ <I>Optional.</I> Encoded image data.  Either this or <b><tt>url</tt></b> must be specified, but not both.  The encoding bloats the size of the data by about 2.5x, but since user images are small, we'll live.  The client should enforce the image size limit (currently 40K) to avoid uploading excessive data (which will be rejected) if the user errs.
+ }
+ { url
+ .des
+ <I>Optional.</I> Image URL.  Either this or <b><tt>data</tt></b> must be specified, but not both.
+ }
+ .response
+ { picid
+ .des
+ The ID assigned to the uploaded picture on success.  If the picture is a duplicate of an existing picture, the existing picture's ID will be returned.
+ }
+ { width
+ .des
+ The width of the uploaded picture.
+ }
+ { height
+ .des
+ The height of the uploaded picture.
+ }
+ }
