Browse Source

MT#56447 implement GET for Janus protocol

Change-Id: I40e4cc1c2617c49edc3e3dc626d979324da52236
pull/1611/head
Richard Fuchs 3 years ago
parent
commit
4697b437d5
3 changed files with 36 additions and 1 deletions
  1. +32
    -0
      daemon/janus.c
  2. +3
    -1
      daemon/websocket.c
  3. +1
    -0
      include/janus.h

+ 32
- 0
daemon/janus.c View File

@ -1646,6 +1646,38 @@ err:
}
const char *websocket_janus_get(struct websocket_message *wm) {
str uri;
str_init(&uri, wm->uri);
ilog(LOG_DEBUG, "Processing Janus GET: '%s'", wm->uri);
JsonBuilder *builder = json_builder_new();
json_builder_begin_object(builder); // {
int retcode = 200;
const char *success = "success";
const char *err = NULL;
switch (__csh_lookup(&uri)) {
case CSH_LOOKUP("/admin/info"):
success = janus_server_info(builder);
break;
default:
retcode = 457;
err = "Unhandled request method";
break;
}
janus_finish_response(builder, success, err, retcode);
json_builder_end_object(builder); // }
return janus_send_json_msg(wm, builder, 200, true);
}
void janus_init(void) {
mutex_init(&janus_lock);
janus_tokens = g_hash_table_new_full(g_str_hash, g_str_equal, g_free, g_free);


+ 3
- 1
daemon/websocket.c View File

@ -491,7 +491,7 @@ static int websocket_http_get(struct websocket_conn *wc) {
const char *uri = wm->uri;
websocket_message_func_t handler = NULL;
ilogs(http, LOG_INFO, "HTTP GET from %s: '%s'", endpoint_print_buf(&wc->endpoint), wm->uri);
ilogs(http, LOG_INFO, "HTTP GET from %s: '%s'", endpoint_print_buf(&wc->endpoint), uri);
wm->method = M_GET;
if (!strcmp(uri, "/ping"))
@ -500,6 +500,8 @@ static int websocket_http_get(struct websocket_conn *wc) {
handler = websocket_http_cli;
else if (!strcmp(uri, "/metrics"))
handler = websocket_http_metrics;
else if (!strncmp(uri, "/admin/", 7))
handler = websocket_janus_get;
if (!handler) {
ilogs(http, LOG_WARN, "Unhandled HTTP GET URI: '%s'", uri);


+ 1
- 0
include/janus.h View File

@ -11,6 +11,7 @@ void janus_init(void);
void janus_free(void);
const char *websocket_janus_process(struct websocket_message *wm);
const char *websocket_janus_get(struct websocket_message *wm);
void janus_detach_websocket(struct janus_session *session, struct websocket_conn *wc);
void janus_media_up(struct call_monologue *);


Loading…
Cancel
Save