trust_router.git
5 years agoMerge pull request #82 from painless-security/jennifer/pull_req_feedback
Jennifer Richards [Mon, 7 May 2018 18:48:22 +0000 (14:48 -0400)]
Merge pull request #82 from painless-security/jennifer/pull_req_feedback

Incorporate feedback from monitoring code reviews

5 years agoRename TID count options to show
Jennifer Richards [Mon, 7 May 2018 18:48:05 +0000 (14:48 -0400)]
Rename TID count options to show

  * tid_req_count -> tid_reqs_processed
  * tid_req_pending -> tid_reqs_pending
  * tid_req_error_count -> tid_error_count

5 years agoRemove unsupported 'reconfigure' monitoring command
Jennifer Richards [Mon, 7 May 2018 18:37:57 +0000 (14:37 -0400)]
Remove unsupported 'reconfigure' monitoring command

5 years agoInclude trmon in RPM, nudge version to 3.4.0~2
Jennifer Richards [Mon, 7 May 2018 18:20:10 +0000 (14:20 -0400)]
Include trmon in RPM, nudge version to 3.4.0~2

5 years agoMiscellaneous minor code cleanup for MRW's review comments
Jennifer Richards [Mon, 7 May 2018 18:11:43 +0000 (14:11 -0400)]
Miscellaneous minor code cleanup for MRW's review comments

  * Remove generation of DH in trmon.c, it's not needed
  * Check return value of mon_req_add_option() in a few places it had
    been ignored
  * Spell out "Trust Router" in trmon version/help description
  * Rename _decode -> _encode after a copy/paste
  * Fix a few incorrect comments describing file contents
  * Fix function name in debug messages in tr_cfg_parse_config_files()
  * Include glib.h instead of gmodule.h in a few files

5 years agoMove repeated #defines into tr_json_util.h and add documentation
Jennifer Richards [Mon, 7 May 2018 18:06:43 +0000 (14:06 -0400)]
Move repeated #defines into tr_json_util.h and add documentation

5 years agoMove DH record from TR_GSSC_INSTANCE to TIDC_INSTANCE, where it belongs
Jennifer Richards [Mon, 7 May 2018 17:45:51 +0000 (13:45 -0400)]
Move DH record from TR_GSSC_INSTANCE to TIDC_INSTANCE, where it belongs

5 years agoTreat TID req as error if a response is not sent
Jennifer Richards [Mon, 7 May 2018 17:24:19 +0000 (13:24 -0400)]
Treat TID req as error if a response is not sent

  * Return an error code from tr_gss_handle_connection()
  * When TID process terminates, send "OK" or "ERR" over the pipe
  * Refactor handling of the TID fork() and messaging

5 years agoUpdate a tr_mq_msg_new() call that slipped through with a msg priority
Jennifer Richards [Mon, 7 May 2018 16:16:15 +0000 (12:16 -0400)]
Update a tr_mq_msg_new() call that slipped through with a msg priority

5 years agoMerge pull request #81 from painless-security/jennifer/no_mq_priorities
Jennifer Richards [Mon, 7 May 2018 16:05:44 +0000 (12:05 -0400)]
Merge pull request #81 from painless-security/jennifer/no_mq_priorities

Remove TR_MQ message priorities

5 years agoMerge branch 'milestone/monitoring' into jennifer/no_mq_priorities
Jennifer Richards [Mon, 7 May 2018 16:05:23 +0000 (12:05 -0400)]
Merge branch 'milestone/monitoring' into jennifer/no_mq_priorities

5 years agoMerge pull request #79 from painless-security/jennifer/memory_leaks
mrw42 [Fri, 4 May 2018 20:59:05 +0000 (16:59 -0400)]
Merge pull request #79 from painless-security/jennifer/memory_leaks

Clean up several memory leaks detected by valgrind

5 years agoMerge pull request #76 from painless-security/jennifer/trpc_deadlock
mrw42 [Fri, 4 May 2018 20:58:06 +0000 (16:58 -0400)]
Merge pull request #76 from painless-security/jennifer/trpc_deadlock

Eliminate deadlock in TRPC messaging queueing

5 years agoMerge pull request #72 from painless-security/jennifer/peer_label_for_updates
mrw42 [Fri, 4 May 2018 19:05:56 +0000 (15:05 -0400)]
Merge pull request #72 from painless-security/jennifer/peer_label_for_updates

Use peer labels instead of GSS names when considering updates

5 years agoMerge pull request #74 from painless-security/jennifer/set_realm_apcs
mrw42 [Fri, 4 May 2018 19:04:10 +0000 (15:04 -0400)]
Merge pull request #74 from painless-security/jennifer/set_realm_apcs

Handle APC correctly when a realm is discovered from an APC community update

5 years agoMerge pull request #73 from painless-security/jennifer/expire_utc
mrw42 [Fri, 4 May 2018 19:01:37 +0000 (15:01 -0400)]
Merge pull request #73 from painless-security/jennifer/expire_utc

Report expiration times in UTC instead of local time

5 years agoMerge pull request #61 from painless-security/jennifer/request_id
mrw42 [Fri, 4 May 2018 19:00:24 +0000 (15:00 -0400)]
Merge pull request #61 from painless-security/jennifer/request_id

Add a 'request_id' to TID requests and responses

5 years agoMerge pull request #62 from painless-security/jennifer/report_incoming_ipaddr
mrw42 [Fri, 4 May 2018 18:50:16 +0000 (14:50 -0400)]
Merge pull request #62 from painless-security/jennifer/report_incoming_ipaddr

Report incoming IP address when a connection comes in

5 years agoCorrect a comment
Jennifer Richards [Thu, 3 May 2018 21:36:30 +0000 (17:36 -0400)]
Correct a comment

5 years agoMerge remote-tracking branch 'github/milestone/monitoring' into jennifer/request_id
Jennifer Richards [Thu, 3 May 2018 21:11:19 +0000 (17:11 -0400)]
Merge remote-tracking branch 'github/milestone/monitoring' into jennifer/request_id

5 years agoMerge branch 'milestone/monitoring' into jennifer/request_id
Jennifer Richards [Thu, 3 May 2018 20:50:54 +0000 (16:50 -0400)]
Merge branch 'milestone/monitoring' into jennifer/request_id

# Conflicts:
# include/trust_router/tid.h
# tid/tidc.c
# tr/tr_tid.c

5 years agoMerge pull request #59 from painless-security/jennifer/datastructures
mrw42 [Thu, 3 May 2018 20:42:46 +0000 (16:42 -0400)]
Merge pull request #59 from painless-security/jennifer/datastructures

Replace fixed length arrays with dynamic lists

5 years agoMerge pull request #48 from painless-security/jennifer/monitoring
mrw42 [Thu, 3 May 2018 20:13:15 +0000 (16:13 -0400)]
Merge pull request #48 from painless-security/jennifer/monitoring

Monitoring interface and back end support (pull request 10)

5 years agoMerge pull request #57 from painless-security/jennifer/show_rp_clients
mrw42 [Thu, 3 May 2018 20:11:35 +0000 (16:11 -0400)]
Merge pull request #57 from painless-security/jennifer/show_rp_clients

Add show rp_clients command (pull request 9)

5 years agoMerge pull request #56 from painless-security/jennifer/show_realms
mrw42 [Thu, 3 May 2018 20:10:13 +0000 (16:10 -0400)]
Merge pull request #56 from painless-security/jennifer/show_realms

Add show realms command (pull request 8)

5 years agoMerge pull request #55 from painless-security/jennifer/show_communities
mrw42 [Thu, 3 May 2018 20:09:12 +0000 (16:09 -0400)]
Merge pull request #55 from painless-security/jennifer/show_communities

Add show communities command (pull request 7)

5 years agoMerge pull request #54 from painless-security/jennifer/show_peers
mrw42 [Thu, 3 May 2018 20:08:08 +0000 (16:08 -0400)]
Merge pull request #54 from painless-security/jennifer/show_peers

Add the show peers command (pull request 6)

5 years agoMerge pull request #53 from painless-security/jennifer/show_routes
mrw42 [Thu, 3 May 2018 20:07:11 +0000 (16:07 -0400)]
Merge pull request #53 from painless-security/jennifer/show_routes

Add show routes message support (pull request 5)

5 years agoMerge pull request #52 from painless-security/jennifer/subprocess_status
mrw42 [Thu, 3 May 2018 20:05:51 +0000 (16:05 -0400)]
Merge pull request #52 from painless-security/jennifer/subprocess_status

Report whether TID requests succeed and better clean up zombie TID / MON processes (pull request 4)

5 years agoMerge pull request #51 from painless-security/jennifer/monitoring_client_and_server
mrw42 [Thu, 3 May 2018 20:03:15 +0000 (16:03 -0400)]
Merge pull request #51 from painless-security/jennifer/monitoring_client_and_server

First functioning monitoring client/server (pull request 3)

5 years agoMerge pull request #50 from painless-security/jennifer/refactoring_tids
mrw42 [Thu, 3 May 2018 20:02:05 +0000 (16:02 -0400)]
Merge pull request #50 from painless-security/jennifer/refactoring_tids

TID refactoring (pull request 2)

5 years agoMerge pull request #49 from painless-security/jennifer/mon_msg_encoders
mrw42 [Thu, 3 May 2018 20:00:42 +0000 (16:00 -0400)]
Merge pull request #49 from painless-security/jennifer/mon_msg_encoders

Add encoders for monitoring messages (pull request 1)

5 years agoEliminate message priority from TR_MQ / TR_MQ_MSG
Jennifer Richards [Thu, 3 May 2018 13:16:08 +0000 (09:16 -0400)]
Eliminate message priority from TR_MQ / TR_MQ_MSG

This was an unnecessary feature that had caused several bugs, most
recently #80. Rather than debug that, this removes the priorities,
returning to a simple queue.

5 years agoDo not allocate return array if there are no return values
Jennifer Richards [Wed, 2 May 2018 22:11:29 +0000 (18:11 -0400)]
Do not allocate return array if there are no return values

Calling talloc_array() with length 0 still allocates memory to track
the zero-length chunk. Return NULL because that is what we mean.

5 years agoRemove unused variable
Jennifer Richards [Wed, 2 May 2018 21:49:05 +0000 (17:49 -0400)]
Remove unused variable

5 years agoFree GSS service name after a failed incoming connection
Jennifer Richards [Wed, 2 May 2018 21:24:50 +0000 (17:24 -0400)]
Free GSS service name after a failed incoming connection

5 years agoFix memory leak when setting next hop for community inforecs
Jennifer Richards [Wed, 2 May 2018 14:31:03 +0000 (10:31 -0400)]
Fix memory leak when setting next hop for community inforecs

  * Return TRP_UNSUPPORTED when setting next hop on an inforec that
    does not accept it (i.e., community inforecs)
  * Free the next hop TR_NAME if it was not stored

5 years agoFix memory leak in gsscon_connect()
Jennifer Richards [Wed, 2 May 2018 14:29:36 +0000 (10:29 -0400)]
Fix memory leak in gsscon_connect()

  * Check for failure to allocate service name
  * Free input name after importing to GSS

5 years agoRemove last remnants of old trpc thread exit protocol, clear trpc queue
Jennifer Richards [Tue, 1 May 2018 19:36:33 +0000 (15:36 -0400)]
Remove last remnants of old trpc thread exit protocol, clear trpc queue

  * Remove the shutting_down status in the TRPC_INSTANCE
  * Clear the TRPC message queue after failed connections
  * Add a few comments

5 years agoEliminate deadlock in trpc message handling
Jennifer Richards [Tue, 1 May 2018 17:49:24 +0000 (13:49 -0400)]
Eliminate deadlock in trpc message handling

  * Remove notify_cb for the trpc thread's TR_MQ
  * Use trpc_mq_pop() directly in the tr_trpc_thread() instead of
    trying to empty the queue every time
  * Eliminate the complicated thread shutdown protocol needed to avoid
    invalid accesses to data allocated in tr_trpc_thread()

This eliminates a deadlock that was possible due to misuse of the
callback mutex in conjunction with the TR_MQ mutex.

5 years agoFix JSON reference counting errors
Jennifer Richards [Mon, 30 Apr 2018 17:12:41 +0000 (13:12 -0400)]
Fix JSON reference counting errors

5 years agoSet APC correctly for community updates, reject routes for non-APC comms
Jennifer Richards [Mon, 30 Apr 2018 17:07:46 +0000 (13:07 -0400)]
Set APC correctly for community updates, reject routes for non-APC comms

When an APC community update is received, the "apcs" list is empty. The
APC for any realms described by that update should be the APC community
itself.

Also, the trust router previously accepted any realm/community pairs for
routing. That should have been APC communities only.

Finally, this also prevents configuring multiple communities with the
same ID.

5 years agoUse peer_label instead of peer_gssname in community gathering
Jennifer Richards [Sun, 29 Apr 2018 18:05:56 +0000 (14:05 -0400)]
Use peer_label instead of peer_gssname in community gathering

Currently this does nothing (loop prevention is done by the TR that
receives an update)

5 years agoProperly check peer labels when finding alternate route to advertise
Jennifer Richards [Sun, 29 Apr 2018 17:52:59 +0000 (13:52 -0400)]
Properly check peer labels when finding alternate route to advertise

5 years agoConsistently use peer label to ID peers when enforcing split horizon
Jennifer Richards [Sun, 29 Apr 2018 17:23:46 +0000 (13:23 -0400)]
Consistently use peer label to ID peers when enforcing split horizon

We were incorrectly comparing the peer label (which is "hostname:port")
with the GSS name of our route's source (i.e., "credential@apc.x") when
checking whether we were about to advertise a route back to the trust
router that announced it to us. That broke split horizon enforcement.

5 years agoReplace tr_comm_memb_iter_all methods with ones that actually work
Jennifer Richards [Fri, 27 Apr 2018 20:20:14 +0000 (16:20 -0400)]
Replace tr_comm_memb_iter_all methods with ones that actually work

The old iterator was completely broken, which was causing incomplete
cleanup of realms that should have been expired. This may have been
leaving the community membership table in an inconsistent state.

5 years agoAdd some comments, a bit of code clean up
Jennifer Richards [Fri, 27 Apr 2018 02:09:24 +0000 (22:09 -0400)]
Add some comments, a bit of code clean up

5 years agoFix race condition on exit of trpc threads
Jennifer Richards [Fri, 27 Apr 2018 01:46:36 +0000 (21:46 -0400)]
Fix race condition on exit of trpc threads

The messaging between the main thread and the trpc (outgoing connection)
threads allowed the trpc data to be cleaned up before the message queue
was empty, causing incorrect mutex behavior and seg faults.

This is (I hope!) solved adding an additional shutdown phase in which
the main thread indicates that it has recognized that the trpc thread
is done and that the trpc thread can safely exit.

So far, I have not seen a failure of the system to handle a peer
disconnecting. Prior to these changes, it failed every time with my
current setup.

5 years agoDon't display "last_connection_attempt" if there is not one
Jennifer Richards [Thu, 26 Apr 2018 23:33:01 +0000 (19:33 -0400)]
Don't display "last_connection_attempt" if there is not one

5 years agoCorrectly display RP realms in the 'show communities' response
Jennifer Richards [Thu, 26 Apr 2018 20:51:33 +0000 (16:51 -0400)]
Correctly display RP realms in the 'show communities' response

5 years agoReport community / route expiration times in UTC
Jennifer Richards [Thu, 26 Apr 2018 19:56:10 +0000 (15:56 -0400)]
Report community / route expiration times in UTC

  * add utility methods for timespec math
  * add method to convert between CLOCK_*

5 years agoLog incoming IP address when accepting a connection
Jennifer Richards [Thu, 26 Apr 2018 16:05:15 +0000 (12:05 -0400)]
Log incoming IP address when accepting a connection

5 years agoAdd a 'request_id' to TID requests and responses
Jennifer Richards [Thu, 26 Apr 2018 01:02:06 +0000 (21:02 -0400)]
Add a 'request_id' to TID requests and responses

This adds a random hex string ID to each TID request. This is
propagated as the request is forwarded, then included in the response.
The field is not required, and is mostly an aid for debugging.

Adds two methods (tid_req_get_request_id and tid_resp_get_request_id)
to the public library interface.

5 years agoChange -v/--validate-config to -C/--config-validate
Jennifer Richards [Wed, 25 Apr 2018 17:13:03 +0000 (13:13 -0400)]
Change -v/--validate-config to -C/--config-validate

There are enough things that use v, we'll accept Adam Bishop's hint and
copy FreeRADIUS's '-C' choice.

5 years agoMerge pull request #60 from painless-security/jennifer/validate_config
Jennifer Richards [Wed, 25 Apr 2018 17:08:06 +0000 (13:08 -0400)]
Merge pull request #60 from painless-security/jennifer/validate_config

Validate config with -v or --validate-config options

5 years agoValidate config with -v or --validate-config options
Jennifer Richards [Wed, 25 Apr 2018 17:05:30 +0000 (13:05 -0400)]
Validate config with -v or --validate-config options

Removes the -v short form for --version

5 years agoUse TR_LIST for TR_GSS_NAMES
Jennifer Richards [Wed, 25 Apr 2018 16:47:19 +0000 (12:47 -0400)]
Use TR_LIST for TR_GSS_NAMES

5 years agoChange most while loops over TR_LISTs to for loops
Jennifer Richards [Wed, 25 Apr 2018 16:04:37 +0000 (12:04 -0400)]
Change most while loops over TR_LISTs to for loops

The while loop patter (i = first(); while(i){blah; i = next()}) pattern
was error-prone -- too easy to overlook or forget the next() call.
Changed most of these to for loops to make the iteration more apparent.
Added a few comments. No intentional functional changes.

5 years agoAdd a few comments
Jennifer Richards [Wed, 25 Apr 2018 15:43:35 +0000 (11:43 -0400)]
Add a few comments

5 years agoAdd missing %.*s so debug message includes GSS name
Jennifer Richards [Tue, 24 Apr 2018 21:21:43 +0000 (17:21 -0400)]
Add missing %.*s so debug message includes GSS name

5 years agoUse TR_LIST for domain/realm constraint matches
Jennifer Richards [Tue, 24 Apr 2018 15:48:27 +0000 (11:48 -0400)]
Use TR_LIST for domain/realm constraint matches

5 years agoUse TR_LIST for TR_FILTER's 'flines' member
Jennifer Richards [Tue, 24 Apr 2018 01:48:34 +0000 (21:48 -0400)]
Use TR_LIST for TR_FILTER's 'flines' member

5 years agoUse TR_LIST for TR_FLINE's 'fspec' member
Jennifer Richards [Tue, 24 Apr 2018 01:42:42 +0000 (21:42 -0400)]
Use TR_LIST for TR_FLINE's 'fspec' member

  * Replace custom iterators with generic iterator
  * Add 'steal' option to steal (or not) an item's talloc context when
    adding it to a TR_LIST
  * Add tr_list_foreach() function to iterate over a TR_LIST

5 years agoAdd a generic TR_LIST type, use for TR_FILTER's 'lines' member
Jennifer Richards [Mon, 23 Apr 2018 15:01:55 +0000 (11:01 -0400)]
Add a generic TR_LIST type, use for TR_FILTER's 'lines' member

6 years agoRefactor TR_FLINE using GPtrArray
Jennifer Richards [Sat, 21 Apr 2018 06:04:27 +0000 (02:04 -0400)]
Refactor TR_FLINE using GPtrArray

6 years agoRefactor TR_FSPEC using GPtrArray
Jennifer Richards [Sat, 21 Apr 2018 05:34:27 +0000 (01:34 -0400)]
Refactor TR_FSPEC using GPtrArray

6 years agoRefactor TR_FILTER using a GPtrArray of filter lines
Jennifer Richards [Sat, 21 Apr 2018 05:04:36 +0000 (01:04 -0400)]
Refactor TR_FILTER using a GPtrArray of filter lines

6 years agoReimplement TR_GSS_NAMES using GPtrArray
Jennifer Richards [Sat, 21 Apr 2018 04:17:35 +0000 (00:17 -0400)]
Reimplement TR_GSS_NAMES using GPtrArray

6 years agoAdd const modifier to TR_NAME functions
Jennifer Richards [Sat, 21 Apr 2018 04:17:04 +0000 (00:17 -0400)]
Add const modifier to TR_NAME functions

This should be backward compatible.

6 years agoBump versions to 3.4.0~1 (did not update ABI version yet)
Jennifer Richards [Sat, 21 Apr 2018 00:48:25 +0000 (20:48 -0400)]
Bump versions to 3.4.0~1 (did not update ABI version yet)

6 years agoMerge remote-tracking branch 'origin/v3.3.0' into jennifer/monitoring
Jennifer Richards [Sat, 21 Apr 2018 00:44:11 +0000 (20:44 -0400)]
Merge remote-tracking branch 'origin/v3.3.0' into jennifer/monitoring

# Conflicts:
# tr/tr_tid.c
# tr/tr_trp.c

6 years agoFix lines that were swapped accidentally v3.3.0
Jennifer Richards [Sat, 21 Apr 2018 00:00:27 +0000 (20:00 -0400)]
Fix lines that were swapped accidentally

6 years agoCheck in changes that were accidentally omitted
Jennifer Richards [Fri, 20 Apr 2018 23:50:49 +0000 (19:50 -0400)]
Check in changes that were accidentally omitted

6 years agoClean up monitoring format/naming
Jennifer Richards [Fri, 20 Apr 2018 23:17:04 +0000 (19:17 -0400)]
Clean up monitoring format/naming

  * change show "serial" to "config_files" to reflect its function
  * suppress display of empty strings for unset / irrelevant values when
    returning routes / communities

6 years agoRename acceptor_realm/name to _hostname/service, add some debug output
Jennifer Richards [Fri, 20 Apr 2018 22:38:59 +0000 (18:38 -0400)]
Rename acceptor_realm/name to _hostname/service, add some debug output

6 years agoRead GSS credentials for monitoring service
Jennifer Richards [Fri, 20 Apr 2018 22:32:38 +0000 (18:32 -0400)]
Read GSS credentials for monitoring service

Some refactoring here and there, too.

6 years agoBump version number (but not shared library version yet). Now 3.3.1~1
Jennifer Richards [Fri, 20 Apr 2018 21:03:22 +0000 (17:03 -0400)]
Bump version number (but not shared library version yet). Now 3.3.1~1

6 years agoBump version number (but not shared library version yet). Now 3.3.1~1
Jennifer Richards [Fri, 20 Apr 2018 20:41:40 +0000 (16:41 -0400)]
Bump version number (but not shared library version yet). Now 3.3.1~1

6 years agoBreak tr_config.c into smaller chunks
Jennifer Richards [Fri, 20 Apr 2018 19:17:36 +0000 (15:17 -0400)]
Break tr_config.c into smaller chunks

No functional changes

6 years agoSupport 'show serial' monitoring request
Jennifer Richards [Fri, 20 Apr 2018 18:47:12 +0000 (14:47 -0400)]
Support 'show serial' monitoring request

6 years agoFix CoI to APC mapping
Jennifer Richards [Fri, 20 Apr 2018 17:27:38 +0000 (13:27 -0400)]
Fix CoI to APC mapping

  * Route forwarded request based on mapped APC, not the original COI
  * Refactor COI/APC mapping code out of tr_tids_req_handler(), which
    remains in desperate need of refactoring for clarity
  * Use accessors instead of direct reference to structure elements in a
    few places (still more to convert)
  * Don't assume TR_NAME buf is null-terminated (it always is AFAIK, but
    is not required by the data structure). Still more of these to fix
  * Rename tid_req_set_rp_orig_coi() to _set_orig_coi(). It's not exported
    as part of the public API and was not used in our code. I think this
    was originally a copy/paste error.

This resolves https://bugs.launchpad.net/moonshot-tr/+bug/1765681

6 years agoUpdate tids->hostname after configuration reload
Jennifer Richards [Fri, 20 Apr 2018 15:07:10 +0000 (11:07 -0400)]
Update tids->hostname after configuration reload

This was also done in 3b59db3c5565b707e745d58f7ec1df1bdc7c1895.

Fixes https://bugs.launchpad.net/moonshot-tr/+bug/1765633

6 years agoAdd encoders for tr_filters, include in peer and rp_client encoders
Jennifer Richards [Thu, 19 Apr 2018 23:35:20 +0000 (19:35 -0400)]
Add encoders for tr_filters, include in peer and rp_client encoders

6 years agoAdd support for "show rp_clients" monitoring request
Jennifer Richards [Thu, 19 Apr 2018 21:43:00 +0000 (17:43 -0400)]
Add support for "show rp_clients" monitoring request

6 years agoSeparate tr_rp and tr_rp_client into separate modules
Jennifer Richards [Thu, 19 Apr 2018 21:27:17 +0000 (17:27 -0400)]
Separate tr_rp and tr_rp_client into separate modules

No functional changes

6 years agoAdd support for "show realms" monitoring request
Jennifer Richards [Thu, 19 Apr 2018 21:01:13 +0000 (17:01 -0400)]
Add support for "show realms" monitoring request

6 years agoImprove structure of realm listings in 'show communities' response
Jennifer Richards [Thu, 19 Apr 2018 19:55:49 +0000 (15:55 -0400)]
Improve structure of realm listings in 'show communities' response

6 years agoAdd support for show communities monitoring request
Jennifer Richards [Thu, 19 Apr 2018 18:54:39 +0000 (14:54 -0400)]
Add support for show communities monitoring request

6 years agoAdd support for show peers monitoring request
Jennifer Richards [Thu, 19 Apr 2018 16:58:10 +0000 (12:58 -0400)]
Add support for show peers monitoring request

6 years agoRefactor trp_route_encoders for better style
Jennifer Richards [Thu, 19 Apr 2018 16:57:42 +0000 (12:57 -0400)]
Refactor trp_route_encoders for better style

6 years agoSplit trp_ptable into trp_ptable, trp_peer, and _encoders modules
Jennifer Richards [Thu, 19 Apr 2018 16:14:18 +0000 (12:14 -0400)]
Split trp_ptable into trp_ptable, trp_peer, and _encoders modules

No functional changes

6 years agoSupport "show routes" monitoring request
Jennifer Richards [Thu, 19 Apr 2018 15:51:28 +0000 (11:51 -0400)]
Support "show routes" monitoring request

  * Separate _to_string and _to_json functions into _encoders.c files
    for trp_rtable and trp_route
  * Add monitoring handler to call trp_rtable_to_json()

6 years agoSeparate trp_route and trp_rtable, move timespec_to_str to tr_util.c
Jennifer Richards [Thu, 19 Apr 2018 14:55:02 +0000 (10:55 -0400)]
Separate trp_route and trp_rtable, move timespec_to_str to tr_util.c

No functional changes

6 years agoMake trmon into a usable command-line interface
Jennifer Richards [Thu, 19 Apr 2018 03:18:24 +0000 (23:18 -0400)]
Make trmon into a usable command-line interface

  * accept monitoring request command/options on the command line
  * display response JSON to stdout
  * remove extraneous stdout output

6 years agoPeriodically call tids_sweep_procs() during trust router operation
Jennifer Richards [Thu, 19 Apr 2018 02:39:44 +0000 (22:39 -0400)]
Periodically call tids_sweep_procs() during trust router operation

6 years agoAdd better error checking for waitpid in tids_sweep_procs
Jennifer Richards [Thu, 19 Apr 2018 01:59:03 +0000 (21:59 -0400)]
Add better error checking for waitpid in tids_sweep_procs

6 years agoUse pipe instead of exit status to determine whether TID req succeeded
Jennifer Richards [Thu, 19 Apr 2018 00:20:29 +0000 (20:20 -0400)]
Use pipe instead of exit status to determine whether TID req succeeded

The exit status of the TID process is not reliable --- with some
versions of moonshot-gss-eap, a segfault occurs during tear-down and
contaminates the process status returned by waitpid.

6 years agoTrack and clean up monitoring processes by pid, fix some debug msgs
Jennifer Richards [Wed, 18 Apr 2018 17:45:21 +0000 (13:45 -0400)]
Track and clean up monitoring processes by pid, fix some debug msgs

6 years agoTrack TID processes and add TID req counts for success/error/pending
Jennifer Richards [Wed, 18 Apr 2018 17:34:26 +0000 (13:34 -0400)]
Track TID processes and add TID req counts for success/error/pending

  * Track TID processes by pid
  * Add handlers for the TID req counts

Still only check for terminated TID processes after the next one comes
in, should either periodically sweep or check this after a child
terminates and sends SIGCHLD

6 years agoAdd TID_REQ_COUNT handler
Jennifer Richards [Wed, 18 Apr 2018 15:41:06 +0000 (11:41 -0400)]
Add TID_REQ_COUNT handler

  * Add a separate source file for TID-related monitoring handlers
  * Increment tids->req_count in the main process, otherwise it will
    always seem to be zero. This does mean any connection to the TID
    port is counted as a tid request, which is not perfect.
  *