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

Function db_get_url

modules/dialplan/dialplan.c:632–692  ·  view source on GitHub ↗

creates an url string without password field*/

Source from the content-addressed store, hash-verified

630
631/* creates an url string without password field*/
632static void db_get_url(const str* url){
633 struct db_id* id = new_db_id(url);
634 static str scheme_delimiter={"://",3};
635 static str port_delimiter={":",1};
636 static str host_delimiter={"@",1};
637 static str database_delimiter={"/",1};
638 str port;
639
640 /* allocate memory for the database url if necessary*/
641 database_url.len = 0;
642
643 /* sanity checks */
644 if (id == NULL)
645 return;
646
647 database_url.s = pkg_realloc(database_url.s, url->len * sizeof(char));
648
649 if (database_url.s == NULL) {
650 free_db_id(id);
651 return;
652 }
653
654 /* shortest database_url is s://a/b so we always need the scheme delimiter*/
655 if (id->scheme != NULL) {
656 memcpy(database_url.s + database_url.len, id->scheme, strlen(id->scheme));
657 database_url.len += strlen(id->scheme);
658 memcpy(database_url.s + database_url.len, scheme_delimiter.s, scheme_delimiter.len);
659 database_url.len += scheme_delimiter.len;
660 }
661
662 if (id->username != NULL) {
663 memcpy(database_url.s + database_url.len, id->username, strlen(id->username));
664 database_url.len += strlen(id->username);
665 }
666
667 if (id->host != NULL) {
668 memcpy(database_url.s + database_url.len, host_delimiter.s, host_delimiter.len);
669 database_url.len += host_delimiter.len;
670 memcpy(database_url.s + database_url.len, id->host, strlen(id->host));
671 database_url.len += strlen(id->host);
672 }
673
674 if (id->port > 0) {
675 port.s = int2str(id->port,&port.len);
676 memcpy(database_url.s + database_url.len, port_delimiter.s, port_delimiter.len);
677 database_url.len += port_delimiter.len;
678 memcpy(database_url.s + database_url.len, port.s, port.len);
679 database_url.len += port.len;
680 }
681
682 if (id->database != NULL){
683 memcpy(database_url.s + database_url.len,
684 database_delimiter.s, database_delimiter.len);
685 database_url.len += database_delimiter.len;
686 memcpy(database_url.s + database_url.len, id->database, strlen(id->database));
687 database_url.len += strlen(id->database);
688 }
689

Callers 2

mi_show_partitionFunction · 0.85
mi_show_partition_1Function · 0.85

Calls 3

new_db_idFunction · 0.85
free_db_idFunction · 0.85
int2strFunction · 0.85

Tested by

no test coverage detected