summaryrefslogtreecommitdiff
path: root/lib/ZSubs.c
Commit message (Collapse)AuthorAge
* Defensively avoid waiting on non-initial SERVACKsGravatar David Benjamin2013-08-08
| | | | | | | | | | | Although the previous commit should make it very unlikely we screw up the subscription sharding, be defensive about waiting for SERVACKs. ZSubscribeTo does mess up, Z_SendFragmentedNotice will shard with a z_multiuid. In that case, although the second packet will get a SERVACK, Z_ReadWait kindly drops it on the floor. The ZIfNotice will then just hang. Tested by bumping zwgc's BATCH_SIZE up to 200, reverting the previous commit, and strace.
* Add fudge factor in subscription shardingGravatar David Benjamin2013-08-08
| | | | | | | | | | | | | | | | | Header lengths are not constant-size because Zcode escapes bytes 0xFF and 0x00 into two bytes. If we end up filling up close to all the space we have and Z_SendFragmentedNotice then computes a header length larger than ours by enough, the message gets fragmented. Getting it fragmented is especially unfortunate because only the first of a fragmented notice ever has a SERVACK survive. (They all get SERVACKs, but libzephyr kindly drops all but the first on the floor.) This isn't a watertight fix; we may get really really unlucky and blow up 13 bytes in the authenticator and checksum. But that's not likely, and a proper fix would involve either computing based on the maximum possible authenticator size (wasteful and hard to bound tightly) or changing to protocol to use a less inappropriate encoding.
* Expose Z_Subscriptions as ZSubscriptionsGravatar David Benjamin2013-08-08
| | | | | | With a custom send_routine that mirrors ZSrvSendList. This allows for an asynchronous version that replaces send_routine with non-blocking versions (and waits for ACKs out-of-band).
* Remove unauthenticated support from subs codeGravatar David Benjamin2013-08-08
| | | | | | It's only used by ZCancelSubscription, but the server rejects unauthenticated CLIENT_CANCELSUB requests anyway. The unauthenticated codepath results in a SERVNAK and doesn't drop subs.
* zctl flush_subsGravatar Jeffrey Hutzelman2013-02-26
| | | | | | | | Provide a new zctl subcommand, flush_subs, to flush all subscriptions for a specified recipient. This is implemented using a new library function, ZFlushUserSubscriptions(). This is the client side of #103
* cmu/zwgcplus changesGravatar Karl Ramm2009-03-15
|
* first pass de-K&Rify libGravatar Karl Ramm2008-01-20
|
* Some RCS ID cleanup: delete $Log$ and replace other RCS keywords with $Id$.Gravatar Greg Hudson1999-01-22
|
* Pull in sources from zephyr locker. See /mit/zephyr/repository forGravatar Greg Hudson1997-09-14
| | | | detailed change information.
* Changed bzero to memset [ANSI]Gravatar Richard Basch1993-11-19
|
* Use _BZERO,_BCOPY,_BCMP macros in lieu of the functions.Gravatar Richard Basch1993-09-24
| | | | | These are declared in <zephyr/zephyr_conf.h> to be either the BSD routine or the ANSI routines, depending on the system type.
* Fix typo introduced in 1.16Gravatar Lucien Van Elsen1992-08-26
|
* can't optimize away a call toGravatar Lucien Van Elsen1991-12-04
| | | | Z_Subscriptions with nitems=0; that's how ZCancelSubs works-
* Add zsub_ prefix to fields of subscription structure.Gravatar John F. Carr1991-06-20
|
* add ZSubscribeToSansDefaultsGravatar John Kohl1989-05-04
|
* plug memory leaksGravatar John Kohl1988-07-20
|
* patches so it does packet fragmentation itself to insure thatGravatar John Kohl1988-07-20
| | | | subscriptions are not split across packet boundaries
* missing ZFreeNotice in non-error caseGravatar John Kohl1988-07-10
|
* auditing changesGravatar John Kohl1988-06-29
|
* For JohnGravatar Robert S. French1988-06-15
|
* All sorts of changes for ver 0.2Gravatar Robert S. French1988-05-17
|
* Cancelsubs not authenticated...sometimesGravatar Robert S. French1987-08-07
|
* Changed to handle new protocol formatGravatar Robert S. French1987-08-01
|
* Added RCSIDGravatar Robert S. French1987-07-29
|
* randomnessGravatar Robert S. French1987-07-09
|
* New recipient format...sender or null, nothing elseGravatar Robert S. French1987-07-08
|
* Ignore recipient fieldGravatar Robert S. French1987-07-08
|
* safetyGravatar Robert S. French1987-07-05