[controller] SetProcessName belongs to SS main class
This commit is contained in:
parent
13c9e53c87
commit
0d3b7ee6e9
|
@ -15,14 +15,11 @@
|
|||
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
using Mono.Unix;
|
||||
using Mono.Unix.Native;
|
||||
using SparkleLib;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Diagnostics;
|
||||
using System.IO;
|
||||
using System.Runtime.InteropServices;
|
||||
using System.Text;
|
||||
using System.Threading;
|
||||
|
||||
namespace SparkleShare {
|
||||
|
@ -63,8 +60,6 @@ namespace SparkleShare {
|
|||
|
||||
public SparkleController ()
|
||||
{
|
||||
|
||||
SetProcessName ("sparkleshare");
|
||||
|
||||
InstallLauncher ();
|
||||
EnableSystemAutostart ();
|
||||
|
@ -621,32 +616,6 @@ namespace SparkleShare {
|
|||
|
||||
}
|
||||
|
||||
|
||||
// Sets the unix process name to 'sparkleshare' instead of 'mono'
|
||||
private void SetProcessName (string name)
|
||||
{
|
||||
|
||||
try {
|
||||
|
||||
if (prctl (15, Encoding.ASCII.GetBytes (name + "\0"), IntPtr.Zero, IntPtr.Zero, IntPtr.Zero) != 0) {
|
||||
|
||||
throw new ApplicationException ("Error setting process name: " +
|
||||
Mono.Unix.Native.Stdlib.GetLastError ());
|
||||
|
||||
}
|
||||
|
||||
} catch (EntryPointNotFoundException) {
|
||||
|
||||
Console.WriteLine ("SetProcessName: Entry point not found");
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
// Strange magic needed by SetProcessName
|
||||
[DllImport ("libc")]
|
||||
private static extern int prctl (int option, byte [] arg2, IntPtr arg3, IntPtr arg4, IntPtr arg5);
|
||||
|
||||
// Quits the program
|
||||
public void Quit ()
|
||||
|
|
|
@ -769,10 +769,10 @@ namespace SparkleShare {
|
|||
|
||||
|
||||
// Checks to see if an email address is valid
|
||||
private bool IsValidEmail(string email)
|
||||
private bool IsValidEmail (string email)
|
||||
{
|
||||
|
||||
Regex regex = new Regex(@"^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$", RegexOptions.IgnoreCase);
|
||||
Regex regex = new Regex (@"^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$", RegexOptions.IgnoreCase);
|
||||
return regex.IsMatch (email);
|
||||
|
||||
}
|
||||
|
|
|
@ -16,12 +16,15 @@
|
|||
|
||||
using Gtk;
|
||||
using Mono.Unix;
|
||||
using Mono.Unix.Native;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Diagnostics;
|
||||
using System.IO;
|
||||
using System.Runtime.InteropServices;
|
||||
using SparkleLib;
|
||||
using SparkleLib.Options;
|
||||
using System.Text;
|
||||
|
||||
namespace SparkleShare {
|
||||
|
||||
|
@ -41,7 +44,9 @@ namespace SparkleShare {
|
|||
|
||||
public static void Main (string [] args)
|
||||
{
|
||||
|
||||
|
||||
SetProcessName ("sparkleshare");
|
||||
|
||||
// Use translations
|
||||
Catalog.Init (Defines.GETTEXT_PACKAGE, Defines.LOCALE_DIR);
|
||||
|
||||
|
@ -138,6 +143,33 @@ namespace SparkleShare {
|
|||
|
||||
}
|
||||
|
||||
|
||||
// Sets the unix process name to 'sparkleshare' instead of 'mono'
|
||||
private static void SetProcessName (string name)
|
||||
{
|
||||
|
||||
try {
|
||||
|
||||
if (prctl (15, Encoding.ASCII.GetBytes (name + "\0"), IntPtr.Zero, IntPtr.Zero, IntPtr.Zero) != 0) {
|
||||
|
||||
throw new ApplicationException ("Error setting process name: " +
|
||||
Mono.Unix.Native.Stdlib.GetLastError ());
|
||||
|
||||
}
|
||||
|
||||
} catch (EntryPointNotFoundException) {
|
||||
|
||||
Console.WriteLine ("SetProcessName: Entry point not found");
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
// Strange magic needed by SetProcessName
|
||||
[DllImport ("libc")]
|
||||
private static extern int prctl (int option, byte [] arg2, IntPtr arg3, IntPtr arg4, IntPtr arg5);
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue