diff -Nur olsrd-0.5.0.orig/lib/nameservice/Makefile olsrd-0.5.0/lib/nameservice/Makefile
--- olsrd-0.5.0.orig/lib/nameservice/Makefile	2007-06-30 19:02:36.000000000 +0200
+++ olsrd-0.5.0/lib/nameservice/Makefile	2007-06-30 19:21:16.000000000 +0200
@@ -39,7 +39,7 @@
 
 OLSRD_PLUGIN =	true
 PLUGIN_NAME =	olsrd_nameservice
-PLUGIN_VER =	0.2
+PLUGIN_VER =	0.3
 
 TOPDIR = ../..
 include $(TOPDIR)/Makefile.inc
diff -Nur olsrd-0.5.0.orig/lib/nameservice/README_NAMESERVICE olsrd-0.5.0/lib/nameservice/README_NAMESERVICE
--- olsrd-0.5.0.orig/lib/nameservice/README_NAMESERVICE	2007-06-30 19:02:36.000000000 +0200
+++ olsrd-0.5.0/lib/nameservice/README_NAMESERVICE	2007-06-30 20:30:04.000000000 +0200
@@ -69,6 +69,37 @@
 	validity time for received NAME messages in seconds.
 	(default: 3600 - 1 hour)
 
+PlParam "lat" "12.123"
+	Float: Decimal latitude for this node to be flooded in the mesh
+
+PlParam "lon" "12.123"
+	Float: Decimal longitude for this node to be flooded in the mesh
+
+PlParam "latlon-file" "/var/run/latlon.js"
+	Filename to write Javascript statements to. Default is "latlon.js"
+	(either /var/run or windows directory). This file is written, if
+	the "lat" and "lon" parameters are set. It has this format:
+
+	/* One or more mid-aliases of multihomed nodes */
+	Mid('fromip','toip');
+
+	/* One special Node() entry for this node
+	 * defhna means: This node announces hna 0.0.0.0/0
+	 * defroute means: The current neighbour IP for 0.0.0.0/0
+	 */
+	Self('mainip',lat,lon,defhna?1:0,'defroute','name');
+
+	/* One or more node entires for other nodes */
+	Node('mainip',lat,lon,this-node-defhna?1:0,'defroute','name');
+
+	/* One or more links between nodes */
+	Link('fromip','toip',lq,nlq,etx);
+
+PlParam "latlon-infile" "name-of-input.txt"
+	Filename to read lat/lon positions from. Meant to be used
+	by a walking GPS receiver. Just write comma separated decimal
+	latitude and longitude to this file. Will overwrite the
+	"lat" and "lon" parameters during runtime.
 
 ---------------------------------------------------------------------
 SAMPLE CONFIG
@@ -122,4 +153,4 @@
   * or make dynamic DNS updates for bind?
 
 ---------------------------------------------------------------------
-EOF / 20.04.2005
+EOF / 30.06.2007
diff -Nur olsrd-0.5.0.orig/lib/nameservice/src/nameservice.c olsrd-0.5.0/lib/nameservice/src/nameservice.c
--- olsrd-0.5.0.orig/lib/nameservice/src/nameservice.c	2007-06-30 19:21:06.000000000 +0200
+++ olsrd-0.5.0/lib/nameservice/src/nameservice.c	2007-06-30 20:36:13.000000000 +0200
@@ -51,6 +51,9 @@
 #include "scheduler.h"
 #include "parser.h"
 #include "duplicate_set.h"
+#include "tc_set.h"
+#include "hna_set.h"
+#include "mid_set.h"
 #include "link_set.h"
 
 #include "nameservice.h"
@@ -69,6 +72,9 @@
 static double my_timeout = NAME_VALID_TIME;
 static char my_resolv_file[MAX_FILE +1];
 static char my_services_file[MAX_FILE + 1];
+static char latlon_in_file[MAX_FILE + 1];
+static char my_latlon_file[MAX_FILE + 1];
+float my_lat = 0.0, my_lon = 0.0;
 
 /* the databases (using hashing)
  * for hostnames, service_lines and dns-servers
@@ -88,6 +94,9 @@
 struct name_entry *my_forwarders = NULL;
 olsr_bool forwarder_table_changed = OLSR_TRUE;
 
+struct db_entry* latlon_list[HASHSIZE];
+olsr_bool latlon_table_changed = OLSR_TRUE;
+
 /* regualar expression to be matched by valid hostnames, compiled in name_init() */
 regex_t regex_t_name;
 regmatch_t regmatch_t_name;
@@ -113,6 +122,7 @@
 
 	GetWindowsDirectory(my_hosts_file, MAX_FILE - 12);
 	GetWindowsDirectory(my_services_file, MAX_FILE - 12);
+	GetWindowsDirectory(my_latlon_file, MAX_FILE - 12);
 
 	len = strlen(my_hosts_file);
 	if (my_hosts_file[len - 1] != '\\')
@@ -128,20 +138,28 @@
 	if (my_resolv_file[len - 1] != '\\')
 		my_resolv_file[len++] = '\\';
 	strcpy(my_resolv_file + len, "resolvconf_olsr");
+
+	len = strlen(my_latlon_file);
+	if (my_latlon_file[len - 1] != '\\')
+		my_latlon_file[len++] = '\\';
+	strcpy(my_latlon_file + len, "latlon.js");
 #else
 	strcpy(my_hosts_file, "/var/run/hosts_olsr");
 	strcpy(my_services_file, "/var/run/services_olsr");
 	strcpy(my_resolv_file, "/var/run/resolvconf_olsr");
+	strcpy(my_latlon_file, "/var/run/latlon.js");
 #endif
 
 	my_suffix[0] = '\0';
 	my_add_hosts[0] = '\0';
+	latlon_in_file[0] = '\0';
 	
 	/* init lists */
 	for(i = 0; i < HASHSIZE; i++) {
 		list[i] = NULL;
 		forwarder_list[i] = NULL;
 		service_list[i] = NULL;
+		latlon_list[i] = NULL;
 	}
 	
 
@@ -182,6 +200,22 @@
 		strncpy(my_services_file, value, MAX_FILE);
 		OLSR_PRINTF(1,"\nNAME PLUGIN: parameter services-file: %s", my_services_file);
 	}
+	else if(!strcmp(key, "lat")) {
+		my_lat = atof(value);
+		OLSR_PRINTF(1,"\nNAME PLUGIN: parameter lat: %f\n", my_lat);
+	}
+	else if(!strcmp(key, "lon")) {
+		my_lon = atof(value);
+		OLSR_PRINTF(1,"\nNAME PLUGIN: parameter lon: %f\n", my_lon);
+	}
+	else if(!strcmp(key, "latlon-file")) {
+		strncpy( my_latlon_file, value, MAX_FILE );
+		OLSR_PRINTF(1, "\nNAME PLUGIN: parameter latlon-file: %s\n", my_latlon_file);
+	}
+	else if(!strcmp(key, "latlon-infile")) {
+		strncpy( latlon_in_file, value, MAX_FILE );
+		OLSR_PRINTF(1, "\nNAME PLUGIN: parameter latlon-infile: %s\n", latlon_in_file);
+	}
 	else if(!strcmp(key, "dns-server")) {
 		union olsr_ip_addr ip;
 		if (strlen(value) == 0) {
@@ -364,6 +398,9 @@
 		case NAME_SERVICE:
 			valid = allowed_service(my_list->name);
 			break;
+		case NAME_LATLON:
+			valid = is_latlon_wellformed(my_list->name);
+			break;
 	}
 
 	if ( !valid  ) {
@@ -400,6 +437,7 @@
 	free_all_list_entries(list);
 	free_all_list_entries(service_list);
 	free_all_list_entries(forwarder_list);
+	free_all_list_entries(latlon_list);
 
 	regfree(&regex_t_name);
 	regfree(&regex_t_service);
@@ -442,10 +480,12 @@
 	timeout_old_names(list, &name_table_changed);
 	timeout_old_names(forwarder_list, &forwarder_table_changed);
 	timeout_old_names(service_list, &service_table_changed);
+	timeout_old_names(latlon_list, &latlon_table_changed);
 
 	write_resolv_file();
 	write_hosts_file();
 	write_services_file();
+	write_latlon_file();
 }
 
 void
@@ -598,7 +638,6 @@
 	olsr_forward_message(m, &originator, seqno, in_if, ipaddr);
 }
 
-
 /**
  * Encapsulate a name message into a packet. 
  *
@@ -634,6 +673,32 @@
 		pos = create_packet( (struct name*) pos, my_service);
 		i++;
 	}
+	// latlon
+	if ('\0' != latlon_in_file[0])
+	{
+		FILE* in = fopen( latlon_in_file, "r" );
+		if (in != NULL) {
+			fscanf(in, "%f,%f", &my_lat, &my_lon);
+			fclose(in);
+		}
+		else
+		{
+			OLSR_PRINTF(0, "NAME PLUGIN: cant read latlon in file %s\n", latlon_in_file);
+		}
+	}
+	if (0.0 != my_lat && 0.0 != my_lon)
+	{
+		char s[64];
+		struct name_entry e;
+		memset(&e, 0, sizeof(e));
+		sprintf(s, "%f,%f,%d", my_lat, my_lon, get_isdefhna_latlon());
+		e.len = strlen(s);
+		e.type = NAME_LATLON;
+		e.name = s;
+		lookup_defhna_latlon(&e.ip);
+		pos = create_packet( (struct name*) pos, &e);
+		i++;
+	}
 
 	// write the namemsg header with the number of announced entries and the protocol version
 	msg->nr_names = htons(i);
@@ -678,35 +743,67 @@
 	char *name = (char*)from_packet + sizeof(struct name);
 	int type_of_from_packet = ntohs(from_packet->type);
 	unsigned int len_of_name = ntohs(from_packet->len);
-	OLSR_PRINTF(4, "\nNAME PLUGIN: decapsulating received name, service or forwarder \n");
-
-	// don't insert the received entry again, if it has already been inserted in the hash table. 
-	// Instead only the validity time is set in insert_new_name_in_list function, which calls this one
-	for (already_saved_name_entries = (*to); already_saved_name_entries != NULL ; already_saved_name_entries = already_saved_name_entries->next)
-	{
-		if ( (type_of_from_packet==NAME_HOST || type_of_from_packet==NAME_SERVICE) && strncmp(already_saved_name_entries->name, name, len_of_name) == 0 ) {
-			OLSR_PRINTF(4, "\nNAME PLUGIN: received name or service entry %s (%s) already in hash table\n", name, olsr_ip_to_string(&already_saved_name_entries->ip));
-			return;
-		} else if (type_of_from_packet==NAME_FORWARDER && COMP_IP(&already_saved_name_entries->ip, &from_packet->ip) ) {
-			OLSR_PRINTF(4, "\nNAME PLUGIN: received forwarder entry %s (%s) already in hash table\n", name, olsr_ip_to_string(&already_saved_name_entries->ip));
-			return;
-		}
-	}
+	OLSR_PRINTF(4, "NAME PLUGIN: decap type=%d, len=%d, name=%s\n",
+		type_of_from_packet, len_of_name, name);
 
 	//XXX: should I check the from_packet->ip here? If so, why not also check the ip fro HOST and SERVICE?
-	if( (type_of_from_packet==NAME_HOST && !is_name_wellformed(name))  ||  (type_of_from_packet==NAME_SERVICE && !is_service_wellformed(name)) ) {
-		OLSR_PRINTF(4, "\nNAME PLUGIN: invalid name [%s] received, skipping.\n", name );
+	if( (type_of_from_packet==NAME_HOST && !is_name_wellformed(name)) ||
+	    (type_of_from_packet==NAME_SERVICE && !is_service_wellformed(name)) ||
+	    (type_of_from_packet==NAME_LATLON && !is_latlon_wellformed(name)))
+	{
+		OLSR_PRINTF(4, "NAME PLUGIN: invalid name [%s] received, skipping.\n", name );
 		return;
 	}
 
 	//ignore all packets with a too long name
 	//or a spoofed len of its included name string
 	if (len_of_name > MAX_NAME || strlen(name) != len_of_name) {
-		OLSR_PRINTF(4, "\nNAME PLUGIN: from_packet->len %d > MAX_NAME %d or from_packet->len %d !0 strlen(name [%s] in packet)\n", 
+		OLSR_PRINTF(4, "NAME PLUGIN: from_packet->len %d > MAX_NAME %d or from_packet->len %d !0 strlen(name [%s] in packet)\n",
 			len_of_name, MAX_NAME, len_of_name, name );
 		return;
 	}
 
+	// don't insert the received entry again, if it has already been inserted in the hash table. 
+	// Instead only the validity time is set in insert_new_name_in_list function, which calls this one
+	for (already_saved_name_entries = (*to); already_saved_name_entries != NULL ; already_saved_name_entries = already_saved_name_entries->next)
+	{
+		if ( (type_of_from_packet==NAME_HOST || type_of_from_packet==NAME_SERVICE) && strncmp(already_saved_name_entries->name, name, len_of_name) == 0 ) {
+			OLSR_PRINTF(4, "NAME PLUGIN: received name or service entry %s (%s) already in hash table\n",
+				name, olsr_ip_to_string(&already_saved_name_entries->ip));
+			return;
+		} else if (type_of_from_packet==NAME_FORWARDER && COMP_IP(&already_saved_name_entries->ip, &from_packet->ip) ) {
+			OLSR_PRINTF(4, "NAME PLUGIN: received forwarder entry %s (%s) already in hash table\n",
+				name, olsr_ip_to_string(&already_saved_name_entries->ip));
+			return;
+		} else if (type_of_from_packet==NAME_LATLON ) {
+			if (0 != strncmp(already_saved_name_entries->name, name, len_of_name))
+			{
+				OLSR_PRINTF(4, "NAME PLUGIN: updating name %s -> %s (%s)\n",
+					already_saved_name_entries->name, name,
+					olsr_ip_to_string(&already_saved_name_entries->ip));
+				free(already_saved_name_entries->name);
+				already_saved_name_entries->name = olsr_malloc(len_of_name + 1, "upd name_entry name");
+				strncpy(already_saved_name_entries->name, name, len_of_name);
+				*this_table_changed = OLSR_TRUE;
+			}
+			if (!COMP_IP(&already_saved_name_entries->ip, &from_packet->ip))
+			{
+				OLSR_PRINTF(4, "NAME PLUGIN: updating ip %s -> %s (%s)\n",
+					olsr_ip_to_string(&already_saved_name_entries->ip),
+					olsr_ip_to_string(&from_packet->ip),
+					olsr_ip_to_string(&already_saved_name_entries->ip));
+				memcpy(&already_saved_name_entries->ip, &from_packet->ip, olsr_cnf->ipsize);
+				*this_table_changed = OLSR_TRUE;
+			}
+			if (!*this_table_changed)
+			{
+				OLSR_PRINTF(4, "NAME PLUGIN: received latlon entry %s (%s) already in hash table\n",
+					name, olsr_ip_to_string(&already_saved_name_entries->ip));
+			}
+			return;
+		}
+	}
+
 	//if not yet known entry 
 	tmp = olsr_malloc(sizeof(struct name_entry), "new name_entry");		
 	tmp->type = ntohs(from_packet->type);
@@ -764,6 +861,9 @@
 			case NAME_SERVICE:
 				insert_new_name_in_list(originator, service_list, from_packet, &service_table_changed, vtime); 
 				break;
+			case NAME_LATLON:
+				insert_new_name_in_list(originator, latlon_list, from_packet, &latlon_table_changed, vtime);
+				break;
 			default:
 				OLSR_PRINTF(3, "NAME PLUGIN: Received Message of unknown type [%d] from (%s)\n", from_packet->type, olsr_ip_to_string(originator));
 				break;
@@ -1304,6 +1404,187 @@
 	return regexec(&regex_t_service, service_line, pmatch_service, regmatch_t_service, 0) == 0;
 }
 
+/**
+ * check if the latlot matches the syntax 
+ */
+olsr_bool
+is_latlon_wellformed(char *latlon_line)
+{
+	int hna = -1;
+	float a = 0.0, b = 0.0;
+	sscanf(latlon_line, "%f,%f,%d", &a, &b, &hna);
+	return (a != 0.0 && b != 0.0 && -1 != hna);
+}
+
+/**
+ * Returns 1 if this olsrd announces inet
+ */
+olsr_bool get_isdefhna_latlon(void)
+{
+	olsr_bool ret = OLSR_FALSE;
+	if (AF_INET == olsr_cnf->ip_version)
+	{
+		struct hna4_entry *hna4;
+		for(hna4 = olsr_cnf->hna4_entries; hna4; hna4 = hna4->next)
+		{
+			if (0 == hna4->netmask.v4) ret = OLSR_TRUE;
+		}
+	}
+	else
+	{
+		struct hna6_entry *hna6;
+		for(hna6 = olsr_cnf->hna6_entries; hna6; hna6 = hna6->next)
+		{
+			if (0 == hna6->prefix_len) ret = OLSR_TRUE;
+		}
+	}
+	return ret;
+}
+
+/**
+ * Grabs the current HNA selected default route
+ */
+void lookup_defhna_latlon(union olsr_ip_addr *ip)
+{
+	union olsr_ip_addr dest;
+	struct rt_entry* rt_hna;
+	memset(ip, 0, sizeof(ip));
+	memset(&dest, 0, sizeof(dest));
+	if (NULL != (rt_hna = olsr_lookup_hna_routing_table(&dest)))
+	{
+		COPY_IP(ip, &rt_hna->rt_router);
+	}
+}
+
+/**
+ * lookup a nodes name
+ */
+char*
+lookup_name_latlon(union olsr_ip_addr *ip)
+{
+	int hash;
+	struct db_entry *entry;
+	struct name_entry *name;
+	for (hash = 0; hash < HASHSIZE; hash++) 
+	{
+		for(entry = list[hash]; entry != NULL; entry = entry->next)
+		{
+			for (name = entry->names; name != NULL; name = name->next) 
+			{
+				if (COMP_IP(&name->ip, ip)) return name->name;
+			}
+		}
+	}
+	return "";
+}
+
+/**
+ * write latlon positions to a javascript file
+ */
+void
+write_latlon_file(void)
+{
+	int hash;
+	FILE* js;
+	struct olsr_if *ifs;
+	union olsr_ip_addr ip;
+
+	if (!latlon_table_changed) return;
+	OLSR_PRINTF(2, "NAME PLUGIN: writing latlon file\n");
+
+	js = fopen( my_latlon_file, "w" );
+	if (js == NULL) {
+		OLSR_PRINTF(0, "NAME PLUGIN: cant write latlon file\n");
+		return;
+	}
+	fprintf(js, "/* This file is overwritten regularly by olsrd */\n");
+
+	for (ifs = olsr_cnf->interfaces; ifs; ifs = ifs->next)
+	{
+		if (0 != ifs->interf)
+		{
+			if (olsr_cnf->ip_version == AF_INET)
+			{
+				/*
+				 * Didn't find a good sample to grab a simple
+				 * olsr_ip_addr from a given interface. Sven-Ola
+				 */
+				const char* p = olsr_ip_to_string(&olsr_cnf->main_addr);
+				const char* q = sockaddr_to_string(&ifs->interf->int_addr);
+				if (0 != strcmp(p, q))
+				{
+					fprintf(js, "Mid('%s','%s');\n", p, q);
+				}
+			}
+			else if (!(COMP_IP(&olsr_cnf->main_addr, (union olsr_ip_addr *)&ifs->interf->int6_addr.sin6_addr)))
+			{
+				fprintf(js, "Mid('%s','%s');\n",
+					olsr_ip_to_string(&olsr_cnf->main_addr),
+					olsr_ip_to_string((union olsr_ip_addr *)&ifs->interf->int6_addr.sin6_addr));
+			}
+		}
+	}
+
+	for (hash = 0; hash < HASHSIZE; hash++) 
+	{
+	        struct mid_entry *entry = mid_set[hash].next;
+	        while(entry != &mid_set[hash])
+        	{
+        		struct mid_address *alias = entry->aliases;
+			while(alias)
+			{
+				fprintf(js, "Mid('%s','%s');\n",
+					olsr_ip_to_string(&entry->main_addr),
+					olsr_ip_to_string(&alias->alias));
+				alias = alias->next_alias;
+			}
+			entry = entry->next;
+        	}
+	}
+	lookup_defhna_latlon(&ip);
+	fprintf(js, "Self('%s',%f,%f,%d,'%s','%s');\n", olsr_ip_to_string(&olsr_cnf->main_addr),
+		my_lat, my_lon, get_isdefhna_latlon(), olsr_ip_to_string(&ip), my_names->name);
+	for (hash = 0; hash < HASHSIZE; hash++) 
+	{
+		struct db_entry *entry;
+		for(entry = latlon_list[hash]; entry != NULL; entry = entry->next)
+		{
+			struct name_entry *name;
+			for (name = entry->names; name != NULL; name = name->next) 
+			{
+				fprintf(js, "Node('%s',%s,'%s','%s');\n",
+					olsr_ip_to_string(&entry->originator),
+					name->name, olsr_ip_to_string(&name->ip),
+					lookup_name_latlon(&entry->originator));
+			}
+		}
+	}
+	for (hash = 0; hash < HASHSIZE; hash++) 
+	{
+		struct tc_entry *entry = tc_table[hash].next;
+		while(entry != &tc_table[hash])
+		{
+			struct topo_dst *dst_entry = entry->destinations.next;
+			while(dst_entry != &entry->destinations)
+			{
+				fprintf(js, "Link('%s','%s',%f,%f,%f);\n", 
+					olsr_ip_to_string(&dst_entry->T_dest_addr),
+					olsr_ip_to_string(&entry->T_last_addr), 
+					dst_entry->link_quality,
+					dst_entry->inverse_link_quality,
+					(dst_entry->link_quality * dst_entry->inverse_link_quality) ?
+						1.0 / (dst_entry->link_quality * dst_entry->inverse_link_quality) :
+						0.0);
+				dst_entry = dst_entry->next;
+			}
+			entry = entry->next;
+		}
+	}
+
+	fclose(js);
+	latlon_table_changed = OLSR_FALSE;
+}
+
 /*
  * Local Variables:
  * mode: c
diff -Nur olsrd-0.5.0.orig/lib/nameservice/src/nameservice.h olsrd-0.5.0/lib/nameservice/src/nameservice.h
--- olsrd-0.5.0.orig/lib/nameservice/src/nameservice.h	2007-02-06 22:07:11.000000000 +0100
+++ olsrd-0.5.0/lib/nameservice/src/nameservice.h	2007-06-30 19:21:16.000000000 +0200
@@ -49,8 +49,8 @@
 #include "nameservice_msg.h"
 
 #define PLUGIN_NAME	"OLSRD nameservice plugin"
-#define PLUGIN_VERSION	"0.2"
-#define PLUGIN_AUTHOR	"Bruno Randolf"
+#define PLUGIN_VERSION	"0.3"
+#define PLUGIN_AUTHOR   "Bruno Randolf, Jens Nachtigall, Sven-Ola"
 
 // useful to set for the freifunkfirmware to remove all
 // calls to olsr_printf by the empty statement ";"
@@ -72,6 +72,7 @@
  * if type is NAME_HOST, name is a hostname and ip its IP addr
  * if type is NAME_FORWARDER, then ip is a dns-server (and name is irrelevant)
  * if type is NAME_SERVICE, then name is a service-line (and the ip is irrelevant)
+ * if type is NAME_LATLON, then name has 2 floats with lat and lon (and the ip is irrelevant)
  */
 struct name_entry
 {
@@ -168,6 +169,24 @@
 olsr_bool
 is_service_wellformed(char *service_line);
 
+olsr_bool
+is_service_wellformed(char *service_line);
+
+olsr_bool
+is_latlon_wellformed(char *latlon_line);
+
+olsr_bool
+get_isdefhna_latlon(void);
+
+void
+lookup_defhna_latlon(union olsr_ip_addr *ip);
+
+char*
+lookup_name_latlon(union olsr_ip_addr *ip);
+
+void
+write_latlon_file(void);
+
 char*  
 create_packet(struct name *to, struct name_entry *from);
 
diff -Nur olsrd-0.5.0.orig/lib/nameservice/src/nameservice_msg.h olsrd-0.5.0/lib/nameservice/src/nameservice_msg.h
--- olsrd-0.5.0.orig/lib/nameservice/src/nameservice_msg.h	2007-06-30 19:21:06.000000000 +0200
+++ olsrd-0.5.0/lib/nameservice/src/nameservice_msg.h	2007-06-30 19:21:16.000000000 +0200
@@ -43,6 +43,7 @@
 	NAME_HOST = 0,
 	NAME_FORWARDER = 1,
 	NAME_SERVICE = 2,
+	NAME_LATLON = 3,
 } NAME_TYPE;
 
 /**
diff -Nur olsrd-0.5.0.orig/lib/nameservice/src/olsrd_plugin.c olsrd-0.5.0/lib/nameservice/src/olsrd_plugin.c
--- olsrd-0.5.0.orig/lib/nameservice/src/olsrd_plugin.c	2007-06-30 19:02:36.000000000 +0200
+++ olsrd-0.5.0/lib/nameservice/src/olsrd_plugin.c	2007-06-30 19:21:16.000000000 +0200
@@ -42,8 +42,8 @@
 #include "nameservice.h"
 
 #define PLUGIN_NAME    "OLSRD nameservice plugin"
-#define PLUGIN_VERSION "0.2"
-#define PLUGIN_AUTHOR   "Bruno Randolf"
+#define PLUGIN_VERSION "0.3"
+#define PLUGIN_AUTHOR   "Bruno Randolf, Jens Nachtigall, Sven-Ola"
 #define MOD_DESC PLUGIN_NAME " " PLUGIN_VERSION
 
 
