summaryrefslogtreecommitdiff
path: root/server
Commit message (Collapse)AuthorAge
* Correct a typo in test_server.cGravatar Alexander Chernyakhovsky2014-05-03
| | | | "#ifd" is not a valid preprocessor symbol.
* the syslogging is too uselessly chatty for the testsGravatar Karl Ramm2013-10-27
|
* test wildcards in the aclGravatar Karl Ramm2013-10-27
|
* The logging is too chatty and the control flow is too incomprehensibleGravatar Karl Ramm2013-10-27
|
* complete the acl_files unit testGravatar Karl Ramm2013-10-26
|
* rearrange the function so as to have the logging workGravatar Karl Ramm2013-10-26
|
* expand unit testing into acl_files.cGravatar Karl Ramm2013-10-26
|
* Use the right variable for the log message.Gravatar Karl Ramm2013-10-26
| | | | I need to learn to be more careful when throwing around the word "properly".
* handle unauth checks _properly_Gravatar Karl Ramm2013-10-26
|
* ZCheckSrvAuthentication: free the auth context and the authenticator way earlierGravatar Karl Ramm2013-10-25
|
* Unauth'd messages, ODDLY, do not have a sender for the acl libraryGravatar Karl Ramm2013-10-25
|
* ZCheckRealmAuthentication is no more.Gravatar Karl Ramm2013-09-30
|
* autoconf check for krb5_free_unparsed_nameGravatar Karl Ramm2013-08-08
|
* Call krb5_unparse_name in server/kstuff.cGravatar David Benjamin2013-08-08
| | | | Looks like it's the same as free right now, but may as well call the right one.
* Fix new style issue in test_serverGravatar Jeffrey Hutzelman2013-04-03
| | | | Style says return types go on their own line.
* Fix prototype and style issues in test_serverGravatar Jeffrey Hutzelman2013-04-03
|
* Fix generated header dependencies for test_serverGravatar David Benjamin2013-03-27
| | | | | Otherwise make -j2 may try to build it before the generated headers are ready and error.
* server: Recheck other-realm server addresses dailyGravatar Jeffrey Hutzelman2013-03-18
| | | | | | | We currently have no support for obeying the TTLs on DNS records containing the addresses of servers in other realms. For now, kludge around this by rechecking these addresses once a day whether we need to or not.
* Don't send to realms with no serversGravatar Jeffrey Hutzelman2013-03-18
| | | | | | | | | | | | | | | | | | | | | | When we are using c-ares to resolve otherrealm server names asynchronously, there is a period of time during startup during which a realm may have no servers whose names we have successfully resolved. This can also happen when a realm is added, or when servers for a realm are deleted, and even without asynchronous resolution, it can happen if we are having trouble resolving names. We now avoid trying to send notices to realms for which there are no usable servers (that is, servers which are not deleted, not marked nosend, and whose names have been resolved). Currently, when this happens, the notice to be sent is just dropped on the floor. Arguably, we should manage a queue of packets waiting to be sent to such a realm, and resend them if we ever discover a usable server. But that would be complicated. In addition, since we are basically never ready to send realm wakeups when processing the realm.list, they are now deferred until the first server's name has been resolved (and then, until the timer queue is processed). This has the additional effect of causing wakeups to be sent for realms which appear during a realm.list reload.
* Use c-ares for other-realm server name lookupsGravatar Jeffrey Hutzelman2013-03-18
| | | | This fixes #73
* Make ZRealm.srvrs be an array of pointersGravatar Jeffrey Hutzelman2013-03-18
| | | | | | | | | | | | With asynchronous name resolution and timers, we need to keep around pointers to individual other-realm servers. This, we cannot move existing servers around in memory without causing data corruption. But, realm_init() wants to reallocate the srvrs array for a realm when adding servers. Therefore, to allow ZRealm.srvrs to be reallocated without changing the addresses of existing servers, it is converted from an array of servers to an array of pointers to servers.
* server: c-ares supportGravatar Jeffrey Hutzelman2013-03-18
| | | | | | Add the bits we need to be able to use c-ares for DNS operations in the server. This handles initialization and making sure the resolver's sockets and timeouts are considered in the main loop.
* Dewarn with -DDEBUGGravatar Jeffrey Hutzelman2013-03-18
| | | | It's sort of nice to be able to build with debugging.
* acl_files: always return a value from add_hostGravatar Jeffrey Hutzelman2013-03-18
| | | | If it's going to return a value, it needs to always return a value.
* rototill uloc.c to be a little less pathologicalGravatar Karl Ramm2013-03-16
| | | | | | | | Notably, use realloc rather than allocating and copying a whole new table. Also be more consistent about operating in terms of array indices rather then pointers.
* Test the low-level code in uloc.cGravatar Karl Ramm2013-03-16
| | | | | | | | | Also, tweak the debian build infrastructure so that we can pass in arbitrary CFLAGS. New program test_server that links with the non-main.c parts of the server. Currently only (as above) tests the low-level bits of uloc.c.
* rearrange so that most of the server code can be linked without main.cGravatar Karl Ramm2013-03-16
| | | | | Move global variables and one function out of main.c so that the rest of the server can be linked with a test harness.
* remove some now-unused variablesGravatar Karl Ramm2013-03-16
|
* rototill the low-level acl codeGravatar Karl Ramm2013-03-03
| | | | Now supports krb5 pricipals sanely.
* server: add CLIENT_FLUSHSUBS control messageGravatar Jeffrey Hutzelman2013-02-26
| | | | | | | | | This adds support to the server for a new client control message, CLIENT_FLUSHSUBS, which flushes all subscriptions and pending retransmits for clients belonging to a given principal. The target principal must be the same as the sender, unless the sender is on the opstaff ACL. This is the server side of #103
* Allow opstaff to submit location updates for usersGravatar Jeffrey Hutzelman2013-02-26
| | | | | | | This allows anyone on opstaff.acl to submit location updates, including flushing all locations, for a user other than themselves. This is the server side of #102
* Make OPSTAFF_VIS actually visible to opstaffGravatar Jeffrey Hutzelman2013-02-26
| | | | This fixes #101
* Add opstaff_check()Gravatar Jeffrey Hutzelman2013-02-26
| | | | | | Add a function to check whether a sender is on the opstaff ACL, which lives in $sysconfdir/zephyr/acl/opstaff.acl. This is in preparation for a number of features which grant additional access to people on that ACL.
* handle generated man pages with offset buildsGravatar Karl Ramm2013-02-24
|
* Substitute paths into man pagesGravatar Jeffrey Hutzelman2013-02-21
| | | | | | Generate the man pages for zwgc, zctl, zhm, and zephyrd at build time, so they can refer to the paths actually used instead of whatever was used on Athena in the 1980's.
* server: include realm-server flags in dumpGravatar Jeffrey Hutzelman2013-02-17
|
* Dewarn realm.list enhancementsGravatar Jeffrey Hutzelman2013-02-17
|
* Reload other realms on SIGHUP/resetGravatar Jeffrey Hutzelman2013-02-17
|
* Update existing realms during realm.list reloadGravatar Jeffrey Hutzelman2013-02-17
|
* Abstract out realm server hostname lookupGravatar Jeffrey Hutzelman2013-02-17
| | | | | | The task of looking up a server's hostname is moved into a separate function, which will make things cleaner when we start doing so in more than one place.
* Abstract realm server usability testGravatar Jeffrey Hutzelman2013-02-17
| | | | | | | | | Whether a particular server is usable currently depends only on whether we have successfully obtained its IP address. However, eventually it will also depend on additional factors such as whether the server has been deleted from the realm.list. To ease that transition, replace the 'usable' flag with a 'got_addr' flag (which is set when the address lookup succeeds), and add a new function to test whether a server is usable.
* Support calling realm_init() more than onceGravatar Jeffrey Hutzelman2013-02-17
| | | | | | | | | | This makes realm_init() augment the existing other-realm array instead of replacing it wholesale, which makes it safe to call more than once. During the first call in which the realm.list file exists and contains at least one realm, the otherrealms array will be initialized with entries for all configured realms. During subsequent calls, any new realms will be added, growing the array as necessary. For now, entries for existing realms are not updated in any way.
* Make otherrealms be an array of pointersGravatar Jeffrey Hutzelman2013-02-17
| | | | | | | | | | | | The server keeps pointers to realms in non-ephemeral data structures, such as triplet subscriber lists. Thus, we cannot move existing realms around in memory without causing data corruption. However, dynamic reloading of the realm.list means new realms can appear, which sooner or later will mean reallocating the otherrealms array to make room for more realms. Therefore, to allow otherrealms to be reallocated without changing the addresses of existing realms, otherrealms is converted from an array of realms to an array of pointers to realms.
* realm_get_realm_by_name_string()Gravatar Jeffrey Hutzelman2013-02-17
|
* Use interned strings for realm and server namesGravatar Jeffrey Hutzelman2013-02-17
| | | | | | | | | Use interned strings instead of strdup() and fixed-size arrays for names of other realms and their servers. This gives immediate improvement in the form of doing fewer string compares when loading the realm.list, plus the obvious benefit of eliminating some fixed char arrays. It also paves the way for efficiently identifying existing realms and servers to be updated when reloading the realm.list.
* Return _ZRealm_server from get_realm_lists()Gravatar Jeffrey Hutzelman2013-02-17
| | | | | | | | | | | | Instead of returning an array of server hostname strings for each realm, get_realm_lists() now returns an array of struct _ZRealm_server for each realm. This allows it to return additional per-server information found in the realm.list file, such as the nosend flag, and simplifies creation of the final per-realm server list. This change will make it easier to use interned strings for server names, which will eventually enable efficient processing of updates to server configuration when the realm.list file is reloaded.
* Introduce usable flag on other-realm serversGravatar Jeffrey Hutzelman2013-02-17
| | | | | | | | | | Introduce a new per-realm-server 'usable' flag, which indicates the entry has been fully initialized and can be used. Routines which select a server or attempt to find one based on its address should ignore servers on which the usable flag is not set. This will allow the introduction of features which require recording servers which are not yet usable, such as asynchronous server name resolution.
* Turn dontsend into a bitfieldGravatar Jeffrey Hutzelman2013-02-17
|
* realm.list nosend flag supportGravatar Derrick Brashear2013-02-17
| | | | | | | | | | | | | From: Derrick J Brashear <shadow@dementia.org> To: zephyr-peers@dementia.org Subject: [zephyr-peers] last time, i hope: new zephyr server Date: Thu, 27 Mar 2003 21:44:02 -0500 (EST) [...] -enhanced realm.list semantics. [...] if a server hostname is prefixed with /, it indicates we can receive messages from the realm from this server, but should not send to it.
* Underpinnings for realm.list enhancementsGravatar Derrick Brashear2013-02-17
| | | | | | | | | | Replace the per-realm array of servers with a per-realm array of struct _ZRealm_server, so that we can have additional information associated with each server. Additionally, introduce the concept that not every server in a realm's list is necessarily a suitable place to send notices. This means that when selecting a server, we may need to skip ineligible entries.