- * Read alias informations
- * @return array containing informations.
- */
-function
-jirafeau_get_alias ($hash)
-{
- $out = array ();
- $link = VAR_ALIAS . s2p ("$hash") . $hash;
-
- if (!file_exists ($link))
- return $out;
-
- $c = file ($link);
- $out['md5_password'] = trim ($c[0]);
- $out['ip'] = trim ($c[1]);
- $out['update_date'] = trim ($c[2]);
- $out['destination'] = trim ($c[3], NL);
-
- return $out;
-}
-
-/** Create an alias to a jirafeau's link.
- * @param $alias alias name
- * @param $destination reference of the destination
- * @param $password password to protect alias
- * @param $ip client's IP
- * @return a string containing the edit code of the alias or the string "Error"
- */
-function jirafeau_alias_create ($alias, $destination, $password, $ip)
-{
- /* Check that alias and password are long enough. */
- if (strlen ($alias) < 8 ||
- strlen ($alias) > 32 ||
- strlen ($password) < 8 ||
- strlen ($password) > 32)
- return "Error";
-
- /* Check that destination exists. */
- $l = jirafeau_get_link ($destination);
- if (!count ($l))
- return "Error";
-
- /* Check that alias does not already exists. */
- $alias = md5 ($alias);
- $p = VAR_ALIAS . s2p ($alias);
- if (file_exists ($p))
- return "Error";
-
- /* Create alias folder. */
- @mkdir ($p, 0755, true);
- if (!file_exists ($p))
- return "Error";
-
- /* Generate password. */
- $md5_password = md5 ($password);
-
- /* Store informations. */
- $p .= $alias;
- $handle = fopen ($p, 'w');
- fwrite ($handle,
- $md5_password . NL .
- $ip . NL .
- date ('U') . NL .
- $destination . NL);
- fclose ($handle);
-
- return "Ok";
-}
-
-/** Update an alias.
- * @param $alias alias to update
- * @param $destination reference of the new destination
- * @param $password password to protect alias
- * @param $new_password optional new password to protect alias
- * @param $ip client's IP
- * @return "Ok" or "Error" string
- */
-function jirafeau_alias_update ($alias, $destination, $password,
- $new_password, $ip)
-{
- $alias = md5 ($alias);
- /* Check that alias exits. */
- $a = jirafeau_get_alias ($alias);
- if (!count ($a))
- return "Error";
-
- /* Check that destination exists. */
- $l = jirafeau_get_link ($a["destination"]);
- if (!count ($l))
- return "Error";
-
- /* Check password. */
- if ($a["md5_password"] != md5 ($password))
- return "Error";
-
- $p = $a["md5_password"];
- if (strlen ($new_password) >= 8 &&
- strlen ($new_password) <= 32)
- $p = md5 ($new_password);
- else if (strlen ($new_password) > 0)
- return "Error";
-
- /* Rewrite informations. */
- $p = VAR_ALIAS . s2p ($alias) . $alias;
- $handle = fopen ($p, 'w');
- fwrite ($handle,
- $p . NL .
- $ip . NL .
- date ('U') . NL .
- $destination . NL);
- fclose ($handle);
- return "Ok";
-}
-
-/** Get an alias.
- * @param $alias alias to get
- * @return alias destination or "Error" string