
\begin{DoxyRefList}
\item[File \mbox{\hyperlink{buf_8h}{buf.h}} ]\label{todo__todo000002}%
\Hypertarget{todo__todo000002}%
Perhaps expose a routine for shuffling the buffers. 

\label{todo__todo000001}%
\Hypertarget{todo__todo000001}%
Perhaps be more efficient by filling the buffer on every call even if not yet completely empty. Check that it\textquotesingle{}s really our buffer, and shuffle remaining data down to the front. 
\item[File \mbox{\hyperlink{emit_8h}{emit.h}} ]\label{todo__todo000003}%
\Hypertarget{todo__todo000003}%
Pluggable encoding formats\+: gdiff-\/style, rsync 24, ed (text), Delta HTTP.  
\item[File \mbox{\hyperlink{mdfour_8h}{mdfour.h}} ]\label{todo__todo000008}%
\Hypertarget{todo__todo000008}%
Perhaps use the MD4 routine from Open\+SSL if it\textquotesingle{}s installed. It\textquotesingle{}s probably not worth the trouble. 
\item[File \mbox{\hyperlink{msg_8c}{msg.c}} ]\label{todo__todo000009}%
\Hypertarget{todo__todo000009}%
(Suggestion by tridge) Add a function which outputs a complete text description of a job, including only the fields relevant to the current encoding function.  
\item[File \mbox{\hyperlink{rdiff_8c}{rdiff.c}} ]\label{todo__todo000011}%
\Hypertarget{todo__todo000011}%
If built with debug support and we have mcheck, then turn it on. (Optionally?)

\label{todo__todo000013}%
\Hypertarget{todo__todo000013}%
Add an option for delta to check whether the files are identical. 

\label{todo__todo000012}%
\Hypertarget{todo__todo000012}%
popt doesn\textquotesingle{}t handle single dashes very well at the moment\+: we\textquotesingle{}d like to use them as arguments to indicate stdin/stdout, but it turns them into options. I sent a patch to the popt maintainers; hopefully it will be fixed in the future.

\label{todo__todo000010}%
\Hypertarget{todo__todo000010}%
Add a -\/z option to gzip/gunzip patches. This would be somewhat useful, but more importantly a good test of the streaming API. Also add -\/I for bzip2. 
\item[Global \mbox{\hyperlink{librsync_8h_a6d576b32ff2136be8469f2ecf318d1bf}{rs\+\_\+delta\+\_\+begin}} (rs\+\_\+signature\+\_\+t $\ast$)]\label{todo__todo000004}%
\Hypertarget{todo__todo000004}%
Add a version of this that takes a \mbox{\hyperlink{librsync_8h_ab6abafd1db0a3947bb3c076507f4f7c2}{rs\+\_\+magic\+\_\+number}} controlling the delta format.  
\item[Global \mbox{\hyperlink{patch_8c_ade8069d04db102aeb75a89e8876bf8fe}{rs\+\_\+patch\+\_\+begin}} (rs\+\_\+copy\+\_\+cb $\ast$copy\+\_\+cb, void $\ast$copy\+\_\+arg)]\label{todo__todo000006}%
\Hypertarget{todo__todo000006}%
Implement COPY commands.

\label{todo__todo000005}%
\Hypertarget{todo__todo000005}%
As output is produced, accumulate the MD4 checksum of the output. Then if we find a CHECKSUM command we can check it\textquotesingle{}s contents against the output. 
\item[Global \mbox{\hyperlink{librsync_8h_a03b75bac7cfb13233f0a030d723d112a}{rs\+\_\+trace\+\_\+to}} (rs\+\_\+trace\+\_\+fn\+\_\+t $\ast$)]\label{todo__todo000016}%
\Hypertarget{todo__todo000016}%
Do we really need such fine-\/grained control, or just yes/no tracing?  
\item[Global \mbox{\hyperlink{tube_8c_aa1170d5552b5581630f90d8a66a71adc}{rs\+\_\+tube\+\_\+copy}} (rs\+\_\+job\+\_\+t $\ast$job, size\+\_\+t len)]\label{todo__todo000020}%
\Hypertarget{todo__todo000020}%
Try to do the copy immediately, and return a result. Then, people can try to continue if possible. Is this really required? Callers can just go out and back in again after flushing the tube.  
\item[File \mbox{\hyperlink{scoop_8c}{scoop.c}} ]\label{todo__todo000014}%
\Hypertarget{todo__todo000014}%
We probably know a maximum amount of data that can be scooped up, so we could just avoid dynamic allocation. However that can\textquotesingle{}t be fixed at compile time, because when generating a delta it needs to be large enough to hold one full block. Perhaps we can set it up when the job is allocated? It would be kind of nice to not do any memory allocation after startup, as bzlib does this.  
\item[File \mbox{\hyperlink{stats_8c}{stats.c}} ]\label{todo__todo000015}%
\Hypertarget{todo__todo000015}%
Other things to show in statistics\+: number of input and output bytes, number of times we blocked waiting for input or output, number of blocks.  
\item[File \mbox{\hyperlink{trace_8h}{trace.h}} ]\label{todo__todo000017}%
\Hypertarget{todo__todo000017}%
A function like perror that includes strerror output. Apache does this by adding flags as well as the severity level which say whether such information should be included.  
\item[File \mbox{\hyperlink{tube_8c}{tube.c}} ]\label{todo__todo000018}%
\Hypertarget{todo__todo000018}%
As an optimization, write it directly to the stream if possible. But for simplicity don\textquotesingle{}t do that yet.

\label{todo__todo000019}%
\Hypertarget{todo__todo000019}%
I think our current copy code will lock up if the application only ever calls us with either input or output buffers, and not both. So I guess in that case we might need to copy into some temporary buffer space, and then back out again later. 
\end{DoxyRefList}