Exemple #1
0
void PlatformApiStub::update_application_list(const ApplicationListUpdate &update) {
    protobuf::bridge::EventSequence seq;
    auto event = seq.mutable_application_list_update();

    for (const auto &a : update.applications) {
        auto app = event->add_applications();
        app->set_name(a.name);
        app->set_package(a.package);

        auto launch_intent = app->mutable_launch_intent();
        launch_intent->set_action(a.launch_intent.action);
        launch_intent->set_uri(a.launch_intent.uri);
        launch_intent->set_type(a.launch_intent.type);
        launch_intent->set_package(a.launch_intent.package);
        launch_intent->set_component(a.launch_intent.component);
        for (const auto &category : a.launch_intent.categories) {
            auto c = launch_intent->add_categories();
            *c = category;
        }

        app->set_icon(a.icon.data(), a.icon.size());
    }

    for (const auto &package : update.removed_applications) {
      auto app = event->add_removed_applications();
      app->set_name("unknown");
      app->set_package(package);
    }

    rpc_channel_->send_event(seq);
}
Exemple #2
0
void Pane::load_state(QSettings *s) {
  QString uri = s->value("path", "").toString();
  if (uri.isEmpty()) {
    uri = Special_uri(Special_uri::places).uri();
  }
  set_uri(uri);
}
Exemple #3
0
//////////////////////////////////////////////////////////////////////////
// meta
void MetaTask::RunImp()
{
	std::string uri_str = uri();
	std::string buckname = CString2string(_buckname);
	buckname = MultiByteToUtf8(buckname);
	set_uri(uri_str.append(URLEncode(buckname) + "/?meta"));
}
Exemple #4
0
//////////////////////////////////////////////////////////////////////////
// delete bucket
void DeleteBucketTask::RunImp()
{
	set_http_method(HTTP_METHOD_DELETE);
	std::string uri_str = uri();
	std::string buckname = CString2string(_buckname);
	buckname = MultiByteToUtf8(buckname);
	set_uri(uri_str.append(URLEncode(buckname) + "/"));
}
Exemple #5
0
	/** Rename */
	virtual void set_path(const Raul::Path& new_path) {
		_path = new_path;
		const char* const new_sym = new_path.symbol();
		if (new_sym[0] != '\0') {
			_symbol = Raul::Symbol(new_sym);
		}
		set_uri(Node::path_to_uri(new_path));
	}
Exemple #6
0
//////////////////////////////////////////////////////////////////////////
// crate bucket
void CreateBucketTask::RunImp()
{
	set_is_upload(true);
	set_http_method(HTTP_METHOD_PUT);
	std::string uri_str = uri();
	std::string buckname = CString2string(_buckname);
	buckname = MultiByteToUtf8(buckname);
	set_uri(uri_str.append(URLEncode(buckname) + "/"));
}
Exemple #7
0
void GetAclTask::RunImp()
{
	std::string uri_str = uri();
	std::string buckname = CString2string(_buckname);
	buckname = MultiByteToUtf8(buckname);
	std::string objname = CString2string(_objname);
	objname = MultiByteToUtf8(objname);
	set_uri(uri_str.append(URLEncode(buckname) + "/" + URLEncode(objname) + "?acl"));
}
Exemple #8
0
void AclTask::RunImp()
{
	set_http_method(HTTP_METHOD_PUT);
	_content_type = "text/json";
	add_header("Content-Type", _content_type);
	std::string uri_str = uri();
	std::string buckname = CString2string(_buckname);
	buckname = MultiByteToUtf8(buckname);
	std::string objname = CString2string(_objname);
	objname = MultiByteToUtf8(objname);
	set_uri(uri_str.append(URLEncode(buckname) + "/" + URLEncode(objname) + "?acl"));
}
Exemple #9
0
//////////////////////////////////////////////////////////////////////////
// list bucket
void ListBucketTask::RunImp()
{
	std::string prefix = CString2string(_prefix);
	prefix = MultiByteToUtf8(prefix);
	add_params("prefix", URLEncode(prefix));
	add_params("delimiter", URLEncode("/"));

	std::string uri_str = uri();
	std::string buckname = CString2string(_buckname);
	buckname = MultiByteToUtf8(buckname);
	set_uri(uri_str.append(URLEncode(buckname) + "/"));
}
Exemple #10
0
        int jester::parse_options(int argc, char *argv[])
        {
            static const struct option longopts[] = {{"method", required_argument, NULL, 'm'},
                                                     {"uri", required_argument, NULL, 'u'},
                                                     {"data", required_argument, NULL, 'd'},
                                                     {"interactive", no_argument, NULL, 'i'},
                                                     {"content", required_argument, NULL, 'c'},
                                                     {"header", required_argument, NULL, 'h'},
                                                     {NULL, 0, NULL, 0}};
            int opt;
            std::shared_ptr<jest::arg_pair> pair;

            while ((opt = getopt_long(argc, argv, "u:m:d:ih:", longopts, NULL)) != -1) {
                switch (opt) {
                    case 'u':
                        set_uri(optarg);
                        break;
                    case 'm':
                        if (!set_method(optarg)) {
                            printf("Unknown HTTP method %s\n", optarg);
                            return EXIT_FAILURE;
                        }
                        break;
                    case 'd':
                        pair = jest::split_arg(optarg, "=");
                        if (!pair) {
                            printf("Data should be in key=value format.");
                            return EXIT_FAILURE;
                        }
                        append_data(*pair);
                        break;
                    case 'c':
                        set_content(optarg);
                        break;
                    case 'i':
                        set_interactive(true);
                        break;
                    case 'h':
                        pair = jest::split_arg(optarg, ":");
                        if (!pair) {
                            printf("header should be in key:value format.");
                            return EXIT_FAILURE;
                        }
                        append_header(*pair);
                        break;
                    default:
                        syntax(argv[0]);
                        return EXIT_FAILURE;
                }
            }
            return EXIT_SUCCESS;
        }
Exemple #11
0
//////////////////////////////////////////////////////////////////////////
// base
TaskBase::TaskBase() 
	: _running(FALSE)
	, _id(_maxid++)
	, _content_type("")
	, _date("")
{
	set_uri("/");
	set_use_https(false);
	set_host(S3_DEFAULT_HOSTNAME);
	set_timeout(CMD_TASK_TIMEOUT_SECOND);
	add_params("formatter", "json");
	add_header("Accept-Encoding", "identity");
}
Exemple #12
0
//////////////////////////////////////////////////////////////////////////
// download
void DownloadTask::RunImp()
{
	set_timeout(-1);
	set_is_download(true);

	std::string uri_str = uri();
	std::string buckname = CString2string(_buckname);
	buckname = MultiByteToUtf8(buckname);
	std::string folderfile = CString2string(_filename);
	folderfile = MultiByteToUtf8(folderfile);
	set_uri(uri_str.append(URLEncode(buckname) + "/" + URLEncode(folderfile)));
	set_file_name(CString2string(_localpath + _T(DOWNLOAD_TEMP)));
}
Exemple #13
0
//////////////////////////////////////////////////////////////////////////
// upload
void UploadTask::RunImp()
{
	set_timeout(-1);
	set_is_upload(true);
	set_http_method(HTTP_METHOD_PUT);

	std::string uri_str = uri();
	std::string buckname = CString2string(_buckname);
	buckname = MultiByteToUtf8(buckname);
	std::string folderfile = CString2string(_filename);
	folderfile = MultiByteToUtf8(folderfile);
	set_uri(uri_str.append(URLEncode(buckname) + "/" + URLEncode(folderfile)));

	set_file_name(CString2string(_localpath));
	set_file_begin_pos(0);
	set_file_size(-1);
}
Exemple #14
0
inline void request::process(std::string::iterator begin, std::string::iterator
    end)
{
    std::string::iterator cursor_start = begin;
    std::string::iterator cursor_end = std::find(begin,end,' ');

    if (cursor_end == end) {
        throw exception("Invalid request line1",status_code::bad_request);
    }

    set_method(std::string(cursor_start,cursor_end));

    cursor_start = cursor_end+1;
    cursor_end = std::find(cursor_start,end,' ');

    if (cursor_end == end) {
        throw exception("Invalid request line2",status_code::bad_request);
    }

    set_uri(std::string(cursor_start,cursor_end));
    set_version(std::string(cursor_end+1,end));
}
Exemple #15
0
//////////////////////////////////////////////////////////////////////////
// copy
void CopyTask::RunImp()
{
	set_is_upload(true);
	set_http_method(HTTP_METHOD_PUT);
	std::string buckname = CString2string(_buckname);
	buckname = MultiByteToUtf8(buckname);

	std::string source = "/";
	source.append(buckname + "/" + CString2string(_frompath));
	source = MultiByteToUtf8(source);
	add_header("x-amz-copy-source", URLEncode(source));
	add_header("x-amz-metadata-directive", "COPY");

	_amz_data.insert(StringMap::value_type("x-amz-copy-source", URLEncode(source)));
	_amz_data.insert(StringMap::value_type("x-amz-metadata-directive", "COPY"));

	std::string uri_str = uri();
	
	std::string objname = CString2string(_topath);
	objname = MultiByteToUtf8(objname);
	set_uri(uri_str.append(URLEncode(buckname) + "/" + URLEncode(objname)));
}
Exemple #16
0
int http_decoder::on_url(http_parser *parser, const char *at, std::size_t length) {
    auto p = static_cast<http_decoder*>(parser->data);
    assert(p);
    assert(p->message_);

    auto method = ::http_method_str(static_cast<http_method>(parser->method));
    auto request = dynamic_cast<message::http::http_request *>(p->message_);
    assert(request);

    request->set_method(std::string(method));

    // Note: a request sent proxy contains the first line as below:
    //       => GET http://example.com/some/resource HTTP/1.1
    // so, we should convert it into the following before sending it
    // to server:
    //       => GET /some/resource HTTP/1.1
    std::string uri(at, length);
    if (parser->method != HTTP_CONNECT) {
        if (uri[0] != '/') {
            const static std::string http("http://");
            auto end = std::string::npos;
            if(uri.compare(0, http.length(), http) != 0)
                end = uri.find('/');
            else
                end = uri.find('/', http.length());

            if(end == std::string::npos) {
                uri = '/';
            } else {
                uri.erase(0, end);
            }
        }
    }

    request->set_uri(uri);
    return 0;
}
Exemple #17
0
/*
 * Check if from user is a valid enum based user, and check to make sure
 * that the src_ip == an srv record that maps to the enum from user.
 */
int is_from_user_enum_2(struct sip_msg* _msg, char* _suffix, char* _service)
{
	struct ip_addr addr;
	struct hostent* he;
	unsigned short zp;
	unsigned short proto;
	char *user_s;
	int user_len, i, j;
	char name[MAX_DOMAIN_SIZE];
	char uri[MAX_URI_SIZE];
	struct sip_uri *furi;
	struct sip_uri luri;
	struct rdata* head;

	str* suffix;
	str* service;

	struct rdata* l;
	struct naptr_rdata* naptr;

	str pattern, replacement, result;
	char string[17];

	if (parse_from_header(_msg) < 0) {
	    LM_ERR("Failed to parse From header\n");
	    return -1;
	}
	
	if(_msg->from==NULL || get_from(_msg)==NULL) {
	    LM_DBG("No From header\n");
	    return -1;
	}

	if ((furi = parse_from_uri(_msg)) == NULL) {
	    LM_ERR("Failed to parse From URI\n");
	    return -1;
	}

	suffix = (str*)_suffix;
	service = (str*)_service;

	if (is_e164(&(furi->user)) == -1) {
	    LM_ERR("From URI user is not an E164 number\n");
	    return -1;
	}

	/* assert: the from user is a valid formatted e164 string */

	user_s = furi->user.s;
	user_len = furi->user.len;

	j = 0;
	for (i = user_len - 1; i > 0; i--) {
		name[j] = user_s[i];
		name[j + 1] = '.';
		j = j + 2;
	}

	memcpy(name + j, suffix->s, suffix->len + 1);

	head = get_record(name, T_NAPTR);

	if (head == 0) {
		LM_DBG("No NAPTR record found for %s.\n", name);
		return -3;
	}

	/* we have the naptr records, loop and find an srv record with */
	/* same ip address as source ip address, if we do then true is returned */

	for (l = head; l; l = l->next) {

		if (l->type != T_NAPTR) continue; /*should never happen*/
		naptr = (struct naptr_rdata*)l->rdata;
		if (naptr == 0) {
			LM_ERR("Null rdata in DNS response\n");
			free_rdata_list(head);
			return -4;
		}

		LM_DBG("ENUM query on %s: order %u, pref %u, flen %u, flags "
		       "'%.*s', slen %u, services '%.*s', rlen %u, "
		       "regexp '%.*s'\n",
		       name, naptr->order, naptr->pref,
		    naptr->flags_len, (int)(naptr->flags_len), ZSW(naptr->flags), naptr->services_len,
		    (int)(naptr->services_len), ZSW(naptr->services), naptr->regexp_len,
		    (int)(naptr->regexp_len), ZSW(naptr->regexp));

		if (sip_match(naptr, service) != 0) {
			if (parse_naptr_regexp(&(naptr->regexp[0]), naptr->regexp_len,
					 &pattern, &replacement) < 0) {
				free_rdata_list(head); /*clean up*/
				LM_ERR("Parsing of NAPTR regexp failed\n");
				return -5;
			}
#ifdef LATER
			if ((pattern.len == 4) && (strncmp(pattern.s, "^.*$", 4) == 0)) {
				LM_DBG("Resulted in replacement: '%.*s'\n",
				       replacement.len, ZSW(replacement.s));				
				retval = set_uri(_msg, replacement.s, replacement.len);
				free_rdata_list(head); /*clean up*/
				return retval;
			}
#endif
			result.s = &(uri[0]);
			result.len = MAX_URI_SIZE;
			/* Avoid making copies of pattern and replacement */
			pattern.s[pattern.len] = (char)0;
			replacement.s[replacement.len] = (char)0;
			/* We have already checked the size of
			   _msg->parsed_uri.user.s */ 
			memcpy(&(string[0]), user_s, user_len);
			string[user_len] = (char)0;
			if (reg_replace(pattern.s, replacement.s, &(string[0]),
					&result) < 0) {
				pattern.s[pattern.len] = '!';
				replacement.s[replacement.len] = '!';
				LM_ERR("Regexp replace failed\n");
				free_rdata_list(head); /*clean up*/
				return -6;
			}
			LM_DBG("Resulted in replacement: '%.*s'\n",
			    result.len, ZSW(result.s));

			if(parse_uri(result.s, result.len, &luri) < 0)
			{
				LM_ERR("Parsing of URI <%.*s> failed\n",
				       result.len, result.s);
				free_rdata_list(head); /*clean up*/
				return -7;
			}

			pattern.s[pattern.len] = '!';
			replacement.s[replacement.len] = '!';

			zp = 0;
			proto = PROTO_NONE;
			he = sip_resolvehost(&luri.host, &zp, &proto,
				(luri.type==SIPS_URI_T)?1:0 , 0);

			hostent2ip_addr(&addr, he, 0);

			if(ip_addr_cmp(&addr, &_msg->rcv.src_ip))
			{
				free_rdata_list(head);
				return(1);
			}
		}
	}
	free_rdata_list(head); /*clean up*/
	LM_DBG("FAIL\n");

    /* must not have found the record */
    return(-8);
}
Exemple #18
0
void Pane::on_go_clicked() {
  ui->list->setFocus();
  set_uri(ui->address->text());
}
Exemple #19
0
void Pane::go_parent() {
  set_uri(directory->get_parent_uri());
}