[olsr-dev] Windows interface naming
Dan Flett
(spam-protected)
Sun Oct 1 22:38:11 CEST 2006
Hi Sektor - I've often wondered why myself - I'll use your patch if it
doesn't make it into the main build. :)
Cheers,
Dan
> -----Original Message-----
> From: (spam-protected)
> [mailto:(spam-protected)] On Behalf Of (spam-protected)
> Sent: Saturday, 23 September 2006 12:46 AM
> To: olsr-dev
> Subject: [olsr-dev] Windows interface naming
>
> Hi guys,
> I'm new in this mailing list.
> I downloaded olsrd software in order to use it under Windows Xp.
> I think it's a good software in all its parts (core, gui, plugin).
>
> I read the note "INTERFACE NAMING" in the readme file and I
> have just a question: why don't you use the friendly name
> displayed in the Network Connections Window?
> The index adapter, used to build the interface name, is not
> persistent (it changes when you disable/enable an adapter).
> Moreover if you use a config file to run olsrd you must
> change the interface name specified in that file.
>
> I have developed the following patches for ifnet.c (win32)
> and Makefile.win32 to enable the use of the friedly name.
> Please, give me some feedbacks if you think these
> modifications are good.
> Bye
> Sektor
>
> --- Makefile.win32 2005-12-29 21:26:32.000000000 +0100
> +++ Makefile.win32.new 2006-09-22 16:31:10.531080400 +0200
> @@ -8,7 +8,7 @@
> SRCS += $(wildcard src/win32/*.c)
> HDRS += $(wildcard src/win32/*.h)
>
> -DEFINES += -DWIN32
> +DEFINES += -DWIN32 -D_WIN32_WINNT=0x0501
> LIBS += -mno-cygwin -lws2_32 -liphlpapi
> INCLUDES += -I$(TOPDIR)/src/win32
> CFLAGS += -mno-cygwin
>
> --- ifnet.c 2005-10-23 21:01:04.000000000 +0200
> +++ ifnet.c.new 2006-09-22 16:36:22.784856000 +0200
> @@ -141,6 +141,8 @@
> unsigned long Res;
> int TabIdx;
> IP_ADAPTER_INFO AdInfo[MAX_INTERFACES], *Walker;
> + IP_ADAPTER_ADDRESSES AdAddr[MAX_INTERFACES], *WalkerAddr; char
> + FriendlyName[MAX_INTERFACE_NAME_LEN];
>
> if (olsr_cnf->ip_version == AF_INET6)
> {
> @@ -148,10 +150,39 @@
> return -1;
> }
>
> - if (IntNameToMiniIndex(&MiniIndex, Name) < 0)
> + if ((Name[0] != 'i' && Name[0] != 'I') ||
> + (Name[1] != 'f' && Name[1] != 'F'))
> {
> - fprintf(stderr, "No such interface: %s!\n", Name);
> - return -1;
> + BuffLen = sizeof (AdAddr);
> +
> + Res = GetAdaptersAddresses(AF_INET, 0, NULL, AdAddr, &BuffLen);
> +
> + if (Res != NO_ERROR)
> + {
> + fprintf(stderr, "GetAdaptersAddresses() = %08lx",
> GetLastError());
> + return -1;
> + }
> + for (WalkerAddr = AdAddr; WalkerAddr != NULL;
> WalkerAddr = WalkerAddr->Next)
> + {
> + OLSR_PRINTF(5, "Index = %08x - ", (int)WalkerAddr->IfIndex);
> + wcstombs(FriendlyName, WalkerAddr->FriendlyName,
> MAX_INTERFACE_NAME_LEN);
> + OLSR_PRINTF(5, "Friendly name = %s\n", FriendlyName);
> + if (strncmp(FriendlyName, Name,
> MAX_INTERFACE_NAME_LEN) == 0)
> + break;
> + }
> + if (WalkerAddr == NULL)
> + {
> + fprintf(stderr, "No such interface: %s!\n", Name);
> + return -1;
> + }
> + MiniIndex = WalkerAddr->IfIndex;
> + } else
> + {
> + if (IntNameToMiniIndex(&MiniIndex, Name) < 0)
> + {
> + fprintf(stderr, "No such interface: %s!\n", Name);
> + return -1;
> + }
> }
>
> IfTable = (MIB_IFTABLE *)Buff;
>
>
>
> _______________________________________________
> olsr-dev mailing list
> (spam-protected)
> https://www.olsr.org/mailman/listinfo/olsr-dev
>
More information about the Olsr-dev
mailing list