xref: /haiku/src/servers/net/AutoconfigLooper.h (revision 8a9d5e34febe5626f9037b6eba9eb3acd4ca0f49)
1fb81684fSAxel Dörfler /*
2293ed4feSAxel Dörfler  * Copyright 2006-2008, Haiku, Inc. All Rights Reserved.
3fb81684fSAxel Dörfler  * Distributed under the terms of the MIT License.
4fb81684fSAxel Dörfler  *
5fb81684fSAxel Dörfler  * Authors:
6fb81684fSAxel Dörfler  *		Axel Dörfler, axeld@pinc-software.de
7fb81684fSAxel Dörfler  */
8fb81684fSAxel Dörfler #ifndef AUTOCONFIG_LOOPER_H
9fb81684fSAxel Dörfler #define AUTOCONFIG_LOOPER_H
10fb81684fSAxel Dörfler 
11fb81684fSAxel Dörfler 
12fb81684fSAxel Dörfler #include <Looper.h>
13fb81684fSAxel Dörfler #include <Messenger.h>
14fb81684fSAxel Dörfler #include <String.h>
15*8a9d5e34SRene Gollent #include <netinet6/in6.h>
16fb81684fSAxel Dörfler 
17293ed4feSAxel Dörfler class AutoconfigClient;
18fb81684fSAxel Dörfler 
19fb81684fSAxel Dörfler class AutoconfigLooper : public BLooper {
20fb81684fSAxel Dörfler public:
21293ed4feSAxel Dörfler 								AutoconfigLooper(BMessenger target,
22293ed4feSAxel Dörfler 									const char* device);
23fb81684fSAxel Dörfler 	virtual						~AutoconfigLooper();
24fb81684fSAxel Dörfler 
25fb81684fSAxel Dörfler 	virtual	void				MessageReceived(BMessage* message);
26fb81684fSAxel Dörfler 
27fb81684fSAxel Dörfler 			BMessenger			Target() const { return fTarget; }
28fb81684fSAxel Dörfler 
29fb81684fSAxel Dörfler private:
30293ed4feSAxel Dörfler 			void				_RemoveClient();
31*8a9d5e34SRene Gollent 			void				_ConfigureIPv4();
32*8a9d5e34SRene Gollent 			void				_ConfigureIPv6LinkLocal(bool add);
33*8a9d5e34SRene Gollent 			bool				_AddIPv6LinkLocal(int socket, const in6_addr &);
34*8a9d5e34SRene Gollent 			void				_RemoveIPv6LinkLocal(int socket, const in6_addr &);
35fb81684fSAxel Dörfler 			void				_ReadyToRun();
36fb81684fSAxel Dörfler 
37fb81684fSAxel Dörfler 			BMessenger			fTarget;
38fb81684fSAxel Dörfler 			BString				fDevice;
39293ed4feSAxel Dörfler 			AutoconfigClient*	fCurrentClient;
40*8a9d5e34SRene Gollent 			uint8				fCurrentMac[6];
41fb81684fSAxel Dörfler };
42fb81684fSAxel Dörfler 
43fb81684fSAxel Dörfler #endif	// AUTOCONFIG_LOOPER_H
44