MCPcopy Create free account
hub / github.com/OpenSIPS/opensips / mi_http_build_content

Function mi_http_build_content

modules/mi_html/http_fnc.c:662–816  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

660}
661
662int mi_http_build_content(str *page, int max_page_len,
663 int mod, int cmd, mi_response_t *response)
664{
665 int i, j;
666 char *p, *buf;
667
668 if (page->s == NULL) {
669 LM_ERR("Please provide a valid page\n");
670 return -1;
671 }
672 p = buf = page->s;
673
674 MI_HTTP_COPY_3(p,MI_HTTP_Response_Head_1,
675 MI_HTTP_Response_Head_2,
676 MI_HTTP_Response_Title_Table_1);
677 if ((int)((p)-buf)+SERVER_HDR_LEN-8>max_page_len)
678 goto error;
679 memcpy(p, ((const char *)SERVER_HDR)+8, SERVER_HDR_LEN-8);
680 p += SERVER_HDR_LEN-8;
681 MI_HTTP_COPY_3(p,MI_HTTP_Response_Title_Table_2,
682 upSinceCTime,
683 MI_HTTP_Response_Title_Table_3);
684
685 /* Building module menu */
686 MI_HTTP_COPY(p,MI_HTTP_Response_Menu_Table_1);
687 for(i=0;i<http_mi_cmds_size;i++) {
688 if(i!=mod) {
689 MI_HTTP_COPY(p,MI_HTTP_Response_Menu_Table_2);
690 } else {
691 MI_HTTP_COPY(p,MI_HTTP_Response_Menu_Table_2b);
692 }
693 MI_HTTP_COPY(p,MI_HTTP_SLASH);
694 if (http_root.len) {
695 MI_HTTP_COPY_2(p,http_root,MI_HTTP_SLASH);
696 }
697 MI_HTTP_COPY_3(p,http_mi_cmds[i].cmds[0].module,
698 MI_HTTP_Response_Menu_Table_3,
699 http_mi_cmds[i].cmds[0].module);
700 if(i!=mod) {
701 MI_HTTP_COPY(p,MI_HTTP_Response_Menu_Table_4);
702 } else {
703 MI_HTTP_COPY(p,MI_HTTP_Response_Menu_Table_4b);
704 }
705 }
706 MI_HTTP_COPY(p,MI_HTTP_Response_Menu_Table_5);
707
708 if (response) { /* Build mi reply */
709 /* Print comand name */
710 MI_HTTP_COPY_4(p,MI_HTTP_Response_Menu_Cmd_Table_1,
711 MI_HTTP_Response_Menu_Cmd_tr_1,
712 MI_HTTP_Response_Menu_Cmd_td_1a,
713 MI_HTTP_SLASH);
714 if (http_root.len) {
715 MI_HTTP_COPY_2(p,http_root, MI_HTTP_SLASH);
716 }
717 MI_HTTP_COPY_7(p,http_mi_cmds[mod].cmds[cmd].module,
718 MI_HTTP_SLASH,
719 http_mi_cmds[mod].cmds[cmd].name,

Callers 1

mi_http_build_pageFunction · 0.85

Calls 1

mi_http_write_respFunction · 0.85

Tested by

no test coverage detected