~ubuntu-branches/ubuntu/wily/sflphone/wily

« back to all changes in this revision

Viewing changes to sflphone-common/src/hooks/urlhook.cpp

  • Committer: Package Import Robot
  • Author(s): Francois Marier
  • Date: 2011-11-25 13:24:12 UTC
  • mfrom: (4.1.10 sid)
  • Revision ID: package-import@ubuntu.com-20111125132412-dc4qvhyosk74cd42
Tags: 1.0.1-4
Don't assume that arch:all packages will get built (closes: #649726)

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
/*
2
 
 *  Copyright (C) 2004, 2005, 2006, 2009, 2008, 2009, 2010, 2011 Savoir-Faire Linux Inc.
3
 
 *  Author: Emmanuel Milou <emmanuel.milou@savoirfairelinux.com>
4
 
 *
5
 
 *  This program is free software; you can redistribute it and/or modify
6
 
 *  it under the terms of the GNU General Public License as published by
7
 
 *  the Free Software Foundation; either version 3 of the License, or
8
 
 *  (at your option) any later version.
9
 
 *
10
 
 *  This program is distributed in the hope that it will be useful,
11
 
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
12
 
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13
 
 *  GNU General Public License for more details.
14
 
 *
15
 
 *  You should have received a copy of the GNU General Public License
16
 
 *  along with this program; if not, write to the Free Software
17
 
 *   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
18
 
 *
19
 
 *  Additional permission under GNU GPL version 3 section 7:
20
 
 *
21
 
 *  If you modify this program, or any covered work, by linking or
22
 
 *  combining it with the OpenSSL project's OpenSSL library (or a
23
 
 *  modified version of that library), containing parts covered by the
24
 
 *  terms of the OpenSSL or SSLeay licenses, Savoir-Faire Linux Inc.
25
 
 *  grants you additional permission to convey the resulting work.
26
 
 *  Corresponding Source for a non-source form of such a combination
27
 
 *  shall include the source code for the parts of OpenSSL used as well
28
 
 *  as that of the covered work.
29
 
 */
30
 
 
31
 
#include "urlhook.h"
32
 
#include <iostream>
33
 
#include <vector>
34
 
 
35
 
UrlHook::UrlHook () { }
36
 
 
37
 
UrlHook::~UrlHook () { }
38
 
 
39
 
int UrlHook::addAction (std::string field_value, std::string command)
40
 
{
41
 
 
42
 
    std::string command_bg;
43
 
    std::string temp;
44
 
    std::vector <std::string> args;
45
 
    size_t pos;
46
 
    unsigned int i;
47
 
 
48
 
    /* Escape the '&' char to not discard $_GET parameters in the URL - #2659 */
49
 
    while ( (pos = field_value.find ("&", 0)) != std::string::npos) {
50
 
        temp = field_value.substr (0, pos);
51
 
        field_value.erase (0, pos + 1);
52
 
        args.push_back (temp);
53
 
        std::cout << temp << " " << std::endl;
54
 
    }
55
 
 
56
 
    command_bg = command + " ";
57
 
 
58
 
    pos = args.size ();
59
 
 
60
 
    for (i=0; i<pos; i++) {
61
 
        // Escape the "&"
62
 
        command_bg += args[i] + "\\&";
63
 
    }
64
 
 
65
 
    // Retrieve the last argument
66
 
    command_bg +=  field_value;
67
 
 
68
 
    /* Execute the command in the background to not block the application */
69
 
    command_bg += "&";
70
 
 
71
 
    /* Execute a system call */
72
 
    return RUN_COMMAND (command_bg.c_str());
73
 
 
74
 
}
75
 
 
76