Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/ambrop72/badvpn.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/tests
AgeCommit message (Collapse)Author
2012-09-01get rid of some warningsambrop7
2012-07-24port to compile with MSVCambrop7
2011-09-04improve build system to allow selective building of programsambrop7
2011-07-11minor changes.ambrop7
- Remove all usage of variable length arrays. - BReactor: when doing epoll_ctl(EPOLL_CTL_MOD), pass a valid struct epoll_event, to work on ancient kernels. - misc/ipaddr.h: cleanup
2011-07-01remove old filesambrop7
2011-06-19OTPChecker: do not use bstruct. Remove bstruct.ambrop7
2011-06-19bstruct, OTPChecker: fix overflows in size computationambrop7
2011-05-15rearrange source flow such that 'flow' does not depend on 'system' ambrop7
2011-03-14tests: add threadwork_testambrop7
2010-11-07Introduce a brand new design based on a LIFO list of jobs pending execution:ambrop7
- Change the BPending system to work in LIFO mode (rather than FIFO). - Modify I/O interfaces ({Packet,Stream}{Pass,Recv}Interface) to push I/O calls (Send/Recv, Done) to the queue, instead of calling the handlers directly. - Port everything to work with the new design. - Minor beautifications all around as part of the porting. This new design fits very well into the data flow system. It greatly simplifies writing I/O modules by making I/O programming more declarative. For instance: - No more explicit checking what happened as a result of the I/O operation (e.g. was the object freed?) and during it (can it call this function from inside?). - There is no longer a clear distinction between an I/O operation completing immediately or having to wait for its completion (read on for explanation). Each time control returns to the reactor, the reactor pops a job off the top of the job list and executes it. A job may push further jobs while it's executing. The popping of some job from the list and pushing of new jobs from this job's handler can be seen as a transformation of a job into other jobs. Let's call these jobs the "transformation" of a job. And let's the job, its transformation, transformations of the transformation, and so on recursively, the "transformation closure" of a job. Now suppose a Send operation is pushed to the job queue. The operation can be considered completed immediately if its transformation closure contains the corresponding Done job. Similarly, an operation can be considered blocked on external I/O if the job list empties before the Done job is pushed. (note this leaves a third possibility...) On the other hand, this design requires changes in the client and server programs, because it becomes impossible to send more than one packet to a send buffer directly in response to a single input. To, for instance, send two packets into into the same send buffer in response to an input, you need to first schedule sending the second one, then send the first one.
2010-10-25Initial importambrop7