void server_ServerMessage(Growl.Daemon.GrowlServer sender, Growl.Daemon.GrowlServer.LogMessageType type, string message) { if (this.InvokeRequired) { this.Invoke(new DoWrite(Write), new object[] { message }); } else { Write(message); } }
private void button3_Click(object sender, EventArgs e) { if (this.isRunning) { this.server.Stop(); this.isRunning = false; this.button3.Text = "start server"; Write("server stopped"); //this.pollClient.Stop(); //this.pollServer.Stop(); } else { string historyFolder = System.Windows.Forms.Application.UserAppDataPath + @"\history"; Growl.Connector.PasswordManager pm = new Growl.Connector.PasswordManager(); //pm.Add(password); pm.Add(altPassword, true); this.server = new Growl.Daemon.GrowlServer(24000, pm, historyFolder); //this.server = new Growl.Daemon.GrowlServer(Growl.Connector.GrowlConnector.TCP_PORT, pm, historyFolder); this.server.RegisterReceived += new Growl.Daemon.GrowlServer.RegisterReceivedEventHandler(server_RegisterReceived); this.server.NotifyReceived += new Growl.Daemon.GrowlServer.NotifyReceivedEventHandler(server_NotifyReceived); this.server.SubscribeReceived += new Growl.Daemon.GrowlServer.SubscribeReceivedEventHandler(server_SubscribeReceived); this.server.ServerMessage += new Growl.Daemon.GrowlServer.ServerMessageEventHandler(server_ServerMessage); this.server.Start(); this.isRunning = true; this.button3.Text = "stop server"; this.textBox1.Text = ""; Write("server is listening"); //this.pollServer = new Growl.Polling.PollServer(7777, keyHex); //this.pollServer.Start(); //this.pollClient = new Growl.Polling.PollClient(keyHex, "*****@*****.**", "localhost", 7777, 10, "localhost", Growl.Connector.GrowlConnector.TCP_PORT); //this.pollClient.Start(); } }
public void Stop() { this.isStarted = false; this.isRunning = false; StopActivityMonitor(); if (this.mutex != null) { try { this.mutex.ReleaseMutex(); this.mutex.Close(); this.mutex = null; } catch { } } if (this.gntpListener != null) { this.gntpListener.Stop(); this.gntpListener.Dispose(); this.gntpListener = null; } if (this.udpListener != null) { this.udpListener.Stop(); this.udpListener.Dispose(); this.udpListener = null; } if (this.udpListenerLocal != null) { this.udpListenerLocal.Stop(); this.udpListenerLocal.Dispose(); this.udpListenerLocal = null; } SaveAppState(); OnStopped(); }
public bool Start() { bool started = false; this.gntpListener = new Growl.Daemon.GrowlServer(Growl.Connector.GrowlConnector.TCP_PORT, this.passwordManager, Utility.UserSettingFolder); this.gntpListener.RegisterReceived += new Growl.Daemon.GrowlServer.RegisterReceivedEventHandler(gntpListener_RegisterReceived); this.gntpListener.NotifyReceived += new Growl.Daemon.GrowlServer.NotifyReceivedEventHandler(gntpListener_NotifyReceived); this.gntpListener.SubscribeReceived += new Growl.Daemon.GrowlServer.SubscribeReceivedEventHandler(gntpListener_SubscribeReceived); this.gntpListener.LoggingEnabled = ApplicationMain.LoggingEnabled; this.gntpListener.AllowWebNotifications = Properties.Settings.Default.AllowWebNotifications; this.gntpListener.AllowNetworkNotifications = Properties.Settings.Default.AllowNetworkNotifications; this.gntpListener.AllowSubscriptions = Properties.Settings.Default.AllowSubscriptions; this.gntpListener.RequireLocalPassword = Properties.Settings.Default.RequireLocalPassword; this.gntpListener.RequireLANPassword = Properties.Settings.Default.RequireLANPassword; started = this.gntpListener.Start(); if (!started) { this.OnFailedToStart(this, new PortConflictEventArgs(Growl.Connector.GrowlConnector.TCP_PORT)); return false; } // this starts the legacy UDP listeners. it can be disabled via user.config if necessary if (!Properties.Settings.Default.DisableLegacySupport) { string udpLogFolder = Growl.CoreLibrary.PathUtility.Combine(Utility.UserSettingFolder, @"Log\"); // this is for network UDP requests (old Growl network protocol) this.udpListener = new Growl.UDPLegacy.MessageReceiver(Growl.UDPLegacy.MessageReceiver.NETWORK_PORT, this.passwordManager, ApplicationMain.LoggingEnabled, udpLogFolder); this.udpListener.RegistrationReceived += new Growl.UDPLegacy.MessageReceiver.RegistrationHandler(udpListener_RegistrationReceived); this.udpListener.NotificationReceived += new Growl.UDPLegacy.MessageReceiver.NotificationHandler(udpListener_NotificationReceived); this.udpListener.AllowNetworkNotifications = Properties.Settings.Default.AllowNetworkNotifications; this.udpListener.RequireLocalPassword = Properties.Settings.Default.RequireLocalPassword; this.udpListener.RequireLANPassword = Properties.Settings.Default.RequireLANPassword; started = this.udpListener.Start(); if (!started) { if (this.gntpListener != null) this.gntpListener.Stop(); // stop the GNTP listener if it was already started this.OnFailedToStartUDPLegacy(this, new PortConflictEventArgs(Growl.UDPLegacy.MessageReceiver.NETWORK_PORT)); return false; } // this is for local UDP requests (old GFW local protocol) this.udpListenerLocal = new Growl.UDPLegacy.MessageReceiver(Growl.UDPLegacy.MessageReceiver.LOCAL_PORT, this.passwordManager, ApplicationMain.LoggingEnabled, udpLogFolder); this.udpListenerLocal.RegistrationReceived += new Growl.UDPLegacy.MessageReceiver.RegistrationHandler(udpListener_RegistrationReceived); this.udpListenerLocal.NotificationReceived += new Growl.UDPLegacy.MessageReceiver.NotificationHandler(udpListener_NotificationReceived); this.udpListenerLocal.AllowNetworkNotifications = false; // always false this.udpListenerLocal.RequireLocalPassword = Properties.Settings.Default.RequireLocalPassword; this.udpListenerLocal.RequireLANPassword = Properties.Settings.Default.RequireLANPassword; started = this.udpListenerLocal.Start(); if (!started) { if (this.gntpListener != null) this.gntpListener.Stop(); // stop the GNTP listener if it was already started if (this.udpListener != null) this.udpListener.Stop(); // stop the network UDP listener if it was already started this.OnFailedToStartUDPLegacy(this, new PortConflictEventArgs(Growl.UDPLegacy.MessageReceiver.NETWORK_PORT)); return false; } } this.isRunning = true; bool createdNew = true; this.mutex = new Mutex(true, String.Format(@"Global\{0}", Growl.CoreLibrary.Detector.MUTEX_NAME), out createdNew); this.isStarted = started; OnStarted(); TimeSpan ts = DateTime.Now - ApplicationMain.st; Utility.WriteDebugInfo("FINAL LOAD TIME: {0}", ts.TotalSeconds); // send a notification that growl is running if (!ApplicationMain.SilentMode) SendSystemNotification(Properties.Resources.SystemNotification_Running_Title, Properties.Resources.SystemNotification_Running_Text); StartActivityMonitor(); return true; }
private void Dispose(bool disposing) { if (!this.disposed) { if (disposing) { if (this.mutex != null) { try { this.mutex.ReleaseMutex(); this.mutex.Close(); this.mutex = null; } catch { } } DisplayStyleManager.DisplayLoaded -= new DisplayStyleManager.DisplayLoadedEventHandler(DisplayStyleManager_DisplayLoaded); if (this.bonjour != null) { this.bonjour.ServiceFound -= new Bonjour.NetServiceFoundEventHandler(bonjour_ServiceFound); this.bonjour.ServiceRemoved -= new Bonjour.NetServiceRemovedEventHandler(bonjour_ServiceRemoved); this.bonjour.Stop(); this.bonjour.Dispose(); this.bonjour = null; } if (this.activityMonitor != null) { this.activityMonitor.WentIdle -= new ActivityMonitor.ActivityMonitorEventHandler(activityMonitor_WentIdle); this.activityMonitor.ResumedActivity -= new ActivityMonitor.ActivityMonitorEventHandler(activityMonitor_ResumedActivity); this.activityMonitor.StillActive -= new EventHandler(activityMonitor_StillActive); this.activityMonitor.Dispose(); this.activityMonitor = null; } if (this.gntpListener != null) { this.gntpListener.RegisterReceived -= new Growl.Daemon.GrowlServer.RegisterReceivedEventHandler(gntpListener_RegisterReceived); this.gntpListener.NotifyReceived -= new Growl.Daemon.GrowlServer.NotifyReceivedEventHandler(gntpListener_NotifyReceived); this.gntpListener.SubscribeReceived -= new Growl.Daemon.GrowlServer.SubscribeReceivedEventHandler(gntpListener_SubscribeReceived); this.gntpListener.Dispose(); this.gntpListener = null; } if (this.udpListener != null) { this.udpListener.RegistrationReceived -= new Growl.UDPLegacy.MessageReceiver.RegistrationHandler(udpListener_RegistrationReceived); this.udpListener.NotificationReceived -= new Growl.UDPLegacy.MessageReceiver.NotificationHandler(udpListener_NotificationReceived); this.udpListener.Dispose(); this.udpListener = null; } if (this.udpListenerLocal != null) { this.udpListenerLocal.RegistrationReceived -= new Growl.UDPLegacy.MessageReceiver.RegistrationHandler(udpListener_RegistrationReceived); this.udpListenerLocal.NotificationReceived -= new Growl.UDPLegacy.MessageReceiver.NotificationHandler(udpListener_NotificationReceived); this.udpListenerLocal.Dispose(); this.udpListenerLocal = null; } if (this.subscriptions != null) { foreach (Subscription subscription in this.subscriptions.Values) { subscription.StatusChanged -= new Subscription.SubscriptionStatusChangedEventHandler(subscription_StatusChanged); } } if (this.forwards != null) { foreach (ForwardDestination fd in this.forwards.Values) { SubscribedForwardDestination sfd = fd as SubscribedForwardDestination; if(sfd != null) sfd.Unsubscribed -= new SubscribedForwardDestination.SubscribingComputerUnscubscribedEventHandler(sfc_Unsubscribed); } } if (DisplayStyleManager.AvailableDisplayStyles != null) { foreach (Display display in DisplayStyleManager.AvailableDisplayStyles.Values) { display.NotificationCallback -= new Display.NotificationCallbackEventHandler(display_NotificationCallback); } } } this.disposed = true; } }