/** * Check whether a given URL is excluded * * @param peer.URL url * @return bool */ public function isExcluded(URL $url) { foreach ($this->excludes as $pattern) { if (stristr($url->getHost(), $pattern)) { return TRUE; } } return FALSE; }
/** * Setup the class instance. A dsn string must be given with the relevant information * about the server and script: * * Eg: nagios://nagios.xp_framework.net:5667/service_to_monitor * * @param string dsn */ public function setup($dsn) { $url = new URL($dsn); $this->server = $url->getHost(); $this->port = $url->getPort(5667); $this->version = $url->getParam('version', NSCA_VERSION_2); $this->service = trim($url->getPath(), '/'); $this->host = $url->getParam('hostname', System::getProperty('host.name')); if (FALSE !== $url->getParam('domain', FALSE)) { $this->host .= '.' . ltrim($url->getParam('domain'), '.'); } }
/** * Creates a new request object * * @param string method * @param peer.URL url * @return scriptlet.HttpScriptletRequest */ protected function newRequest($method, URL $url) { $q = $url->getQuery(''); $req = new HttpScriptletRequest(); $req->method = $method; $req->env['SERVER_PROTOCOL'] = 'HTTP/1.1'; $req->env['REQUEST_URI'] = $url->getPath('/') . ($q ? '?' . $q : ''); $req->env['QUERY_STRING'] = $q; $req->env['HTTP_HOST'] = $url->getHost(); if ('https' === $url->getScheme()) { $req->env['HTTPS'] = 'on'; } $req->setHeaders(array()); $req->setParams($url->getParams()); return $req; }
function send_new_project_email($group_id) { global $Language; $res_grp = db_query("SELECT * FROM groups WHERE group_id='" . db_ei($group_id) . "'"); if (db_numrows($res_grp) < 1) { echo $Language->getText('include_proj_email', 'g_not_exist', $group_id); } $row_grp = db_fetch_array($res_grp); $res_admins = db_query("SELECT user.user_name,user.email FROM user,user_group WHERE " . "user.user_id=user_group.user_id AND user_group.group_id='" . db_ei($group_id) . "' AND " . "user_group.admin_flags='A'"); $nb_recipients = db_numrows($res_admins); if ($nb_recipients < 1) { echo $Language->getText('include_proj_email', 'no_admin', $group_id); } // send one email per admin $nb_mail_failed = 0; $pm = ProjectManager::instance(); while ($row_admins = db_fetch_array($res_admins)) { $server = get_server_url(); $p = $pm->getProject($group_id); $host = $GLOBALS['sys_default_domain']; if ($p && $p->usesService('svn')) { $sf = new ServerFactory(); if ($s =& $sf->getServerById($p->services['svn']->getServerId())) { $host = URL::getHost($s->getUrl(session_issecure())); } } if ($GLOBALS['sys_force_ssl']) { $svn_url = 'https://' . $host; } else { $svn_url = 'http://svn.' . $row_grp['unix_group_name'] . '.' . $host; } $svn_url .= '/svnroot/' . $row_grp['unix_group_name']; // $message is defined in the content file include $Language->getContent('include/new_project_email'); // LJ Uncomment to test //echo $message; return $mail = new Mail(); $mail->setTo($row_admins['email']); $mail->setSubject($GLOBALS['sys_name'] . ' ' . $Language->getText('include_proj_email', 'proj_approve', $row_grp['unix_group_name'])); $mail->setBody($message); $mail->setFrom($GLOBALS['sys_email_admin']); if (!$mail->send()) { $nb_mail_failed++; } } return $nb_mail_failed < $nb_recipients; }
/** * Acquire a handler instance * * @param string key * @return remote.protocol.ProtocolHandler * @throws remote.protocol.UnknownProtocolException */ public function acquire($key, $initialize = FALSE) { $url = new URL($key); $key = new URL($url->getScheme() . '://' . $url->getHost()); if ($this->pool->containsKey($key)) { $instance = $this->pool->get($key); } else { sscanf($url->getScheme(), '%[^+]+%s', $type, $option); $class = HandlerFactory::handlerFor($type); $instance = $this->pool($key, $class->newInstance($option)); } // Add logger if (NULL !== ($cat = $url->getParam('log'))) { $instance->setTrace(Logger::getInstance()->getCategory($cat)); } // Set timeout, defaults to 60 seconds $instance->setTimeout($url->getParam('timeout', 60)); $initialize && $instance->initialize($url); return $instance; }
public function doCreate() { $req = $this->newRequest('GET', new URL('http://localhost/')); $res = new HttpScriptletResponse(); $s = newinstance('scriptlet.xml.XMLScriptlet', array(), '{ public function needsSession($request) { return TRUE; } }'); $s->service($req, $res); $this->assertEquals(HttpConstants::STATUS_FOUND, $res->statusCode); // Check URL from Location: header contains the session ID with($redirect = new URL(substr($res->headers[0], strlen('Location: ')))); $this->assertEquals('http', $redirect->getScheme()); $this->assertEquals('localhost', $redirect->getHost()); $this->assertEquals(sprintf('/xml/psessionid=%s/static', session_id()), $redirect->getPath()); $this->assertEquals(array(), $redirect->getParams(), $redirect->getURL()); }
/** * Creates a socket * * @param peer.URL url * @param string arg * @return peer.Socket */ protected function newSocket(URL $url, $arg) { return new Socket($url->getHost(), $url->getPort(80)); }
/** * Creates a socket - overridden from parent class * * @param peer.URL url * @param string arg * @return peer.Socket */ protected function newSocket(URL $url, $arg) { sscanf($arg, 'v%d', $version); return new SSLSocket($url->getHost(), $url->getPort(443), NULL, $version); }
public function handleSessionInitializationError() { $req = $this->newRequest('GET', new URL('http://localhost/?psessionid=MALFORMED')); $res = new HttpScriptletResponse(); $s = newinstance('scriptlet.HttpScriptlet', array(), '{ public function needsSession($request) { return TRUE; } public function handleSessionInitialization($request) { if (!preg_match("/^a-f0-9$/", $request->getSessionId())) { throw new IllegalArgumentException("Invalid characters in session id"); } parent::handleSessionInitialization($request); } public function handleSessionInitializationError($request, $response) { $request->getURL()->addParam("relogin", 1); return $request->session->initialize(NULL); } }'); $s->service($req, $res); $this->assertEquals(HttpConstants::STATUS_FOUND, $res->statusCode); // Check URL from Location: header contains the session ID with($redirect = new URL(substr($res->headers[0], strlen('Location: ')))); $this->assertEquals('http', $redirect->getScheme()); $this->assertEquals('localhost', $redirect->getHost()); $this->assertEquals('/', $redirect->getPath()); $this->assertEquals(session_id(), $redirect->getParam('psessionid')); $this->assertEquals('1', $redirect->getParam('relogin')); }
/** * Get the IP address of our host. An empty host field or a DNS failure * will result in a null return. * * @param u a URL object * @return InetAddress an <code>InetAddress</code> representing the host * IP address. * @since 1.3 */ public function getHostAddress(URL $u) { if ($u->hostAddress != null) { return $u->hostAddress; } $host = $u->getHost(); if ($host == null || $host->equals("")) { return null; } else { try { $u->hostAddress = InetAddress::getByName($host); // } catch (UnknownHostException $ex) { // return null; // } catch (SecurityException $se) { // return null; } catch (\blaze\lang\Exception $e) { return null; } } return $u->hostAddress; }
public function sqliteUrl() { $u = new URL('sqlite:///path/to/file.db'); $this->assertEquals(NULL, $u->getHost()); $this->assertEquals('/path/to/file.db', $u->getPath()); }
/** * Navigate to a given URL * * @param string target * @param string params * @param string method * @throws unittest.AssertionFailedError */ public function navigateTo($target, $params = NULL, $method = HttpConstants::GET) { if (strstr($target, '://')) { $url = new URL($target); $this->conn = $this->getConnection(sprintf('%s://%s%s/', $url->getScheme(), $url->getHost(), -1 === $url->getPort(-1) ? '' : ':' . $url->getPort())); $params ? $url->setParams($params) : ''; $this->beginAt($url->getPath(), $url->getParams(), $method); } else { if ('' !== $target && '/' === $target[0]) { $this->beginAt($target, $params, $method); } else { $base = $this->getBase(); $this->beginAt(substr($base, 0, strrpos($base, '/')) . '/' . $target, $params, $method); } } }
/** * Parse DSN * * @param string dsn * @return bool success */ protected function _parsedsn($dsn) { if (NULL === $dsn) { return TRUE; } $u = new URL($dsn); if (!$u->getHost()) { throw new IllegalArgumentException('DSN parsing failed ["' . $dsn . '"]'); } // Scheme switch (strtoupper($u->getScheme())) { case 'ESMTP': $this->ext = TRUE; break; case 'SMTP': $this->ext = FALSE; break; default: throw new IllegalArgumentException('Scheme "' . $u->getScheme() . '" not supported'); } // Copy host and port $this->host = $u->getHost(); $this->port = $u->getPort() ? $u->getPort() : 25; // User & password if ($u->getUser()) { $this->auth = $u->getParam('auth', SMTP_AUTH_PLAIN); $this->user = $u->getUser(); $this->pass = $u->getPassword(); } }
// Table for summary info print '<TABLE width="100%"><TR valign="top"><TD width="65%">' . "\n"; // Get group properties $res_grp = db_query("SELECT * FROM groups WHERE group_id=" . db_ei($group_id)); $row_grp = db_fetch_array($res_grp); $pm = ProjectManager::instance(); $p = $pm->getProject($group_id); // Show CVS access information if ($row_grp['svn_preamble'] != '') { echo $hp->purify(util_unconvert_htmlspecialchars($row_grp['svn_preamble']), CODENDI_PURIFIER_FULL); } else { $host = $GLOBALS['sys_default_domain']; if ($p && $p->usesService('svn')) { $sf = new ServerFactory(); if ($server =& $sf->getServerById($p->services['svn']->getServerId())) { $host = URL::getHost($server->getUrl(session_issecure())); } } if ($GLOBALS['sys_force_ssl']) { $svn_url = 'https://' . $host; } else { if (isset($GLOBALS['sys_disable_subdomains']) && $GLOBALS['sys_disable_subdomains']) { $svn_url = 'http://' . $host; } else { $svn_url = 'http://svn.' . $row_grp['unix_group_name'] . '.' . $host; } } // Domain name must be lowercase (issue with some SVN clients) $svn_url = strtolower($svn_url); $svn_url .= '/svnroot/' . $row_grp['unix_group_name']; // Hook to replace the default information about subversion