Exemple #1
0
struct destination_url *new_destination_url(char *url)
{
    struct destination_url *sq_dest;
    char *address;
    int port;
    char *path;
    
    if (simplehttp_parse_url(url, strlen(url), &address, &port, &path) == 0) {
        fprintf(stderr, "ERROR: invalid destination URL: %s\n", url);
        return NULL;
    }

    sq_dest = malloc(sizeof(struct destination_url));
    _DEBUG("destination_url: %s\n", url);
    _DEBUG("\taddress: %s\n", address);
    _DEBUG("\tport: %d\n", port);
    _DEBUG("\tpath: %s\n", path);
    sq_dest->address = address;
    sq_dest->port = port;
    sq_dest->path = path;
    sq_dest->next = NULL;
    sq_dest->method = EVHTTP_REQ_GET;
    
    return sq_dest;
}
Exemple #2
0
int main(int argc, char **argv)
{
    char *pubsub_url;
    char *address;
    int port;
    char *path;
    char *filename_format = NULL;
    struct output_metadata *data;
    
    define_simplehttp_options();
    option_define_bool("version", OPT_OPTIONAL, 0, NULL, version_cb, VERSION);
    option_define_str("pubsub_url", OPT_REQUIRED, "http://127.0.0.1:80/sub?multipart=0", &pubsub_url, NULL, "url of pubsub to read from");
    option_define_str("filename_format", OPT_REQUIRED, NULL, &filename_format, NULL, "/var/log/pubsub.%%Y-%%m-%%d_%%H.log");
    
    if (!option_parse_command_line(argc, argv)){
        return 1;
    }
    
    data = calloc(1, sizeof(struct output_metadata));
    data->filename_format = filename_format;
    data->current_filename[0] = '\0';
    data->temp_filename[0] = '\0';
    data->output_file = NULL;
    
    if (simplehttp_parse_url(pubsub_url, strlen(pubsub_url), &address, &port, &path)) {
        pubsubclient_main(address, port, path, process_message_cb, error_cb, data);
        
        if (data->output_file) {
            fclose(data->output_file);
        }
        
        free(address);
        free(path);
    } else {
        fprintf(stderr, "ERROR: failed to parse pubsub_url\n");
    }
    
    free(data);
    free_options();
    free(pubsub_url);
    free(filename_format);
    
    return 0;
}