get_myaddress problem

ARQUER Stephane stephane.arquer at
Mon Jan 26 14:06:17 UTC 2009


I've a problem with the function get_myadress, each time I try to  
connect a client using rpc I obtain a seg fault on the following line  
of get_myadress:

if (((ifreq.ifr_flags & IFF_UP) &&
		    ifr->ifr_addr.sa_family == AF_INET &&
			!(ifreq.ifr_flags & IFF_LOOPBACK)) ||
		    (loopback == 1 && (ifreq.ifr_flags & IFF_LOOPBACK)
			&& (ifr->ifr_addr.sa_family == AF_INET)
			&& (ifreq.ifr_flags &  IFF_UP))) {
     *addr = *((struct sockaddr_in *)&ifr->ifr_addr);   <- here the error
     addr->sin_port = htons(PMAPPORT);
     gotit = 1;

Does anyone have an idea ?



This is my network config file:
  * Network configuration
  * Fichier de configuration de l'interface reseau
  * ce fihier tient compte du type de cible
  * rtems_host		cible PC
  * leon		cible leon2
  *  $Id: networkconfig.h,v 1.8 2001/08/31 18:11:43 joel Exp $


  *  The following will normally be set by the BSP if it supports
  *  a single network device driver.  In the event, it supports
  *  multiple network device drivers, then the user's default
  *  network device driver will have to be selected by a BSP
  *  specific mechanism.

#warning "RTEMS_BSP_NETWORK_DRIVER_NAME is not defined"
#define RTEMS_BSP_NETWORK_DRIVER_NAME "no_network1"

#warning "RTEMS_BSP_NETWORK_DRIVER_ATTACH is not defined"


#include <bsp.h>

  * Define RTEMS_SET_ETHERNET_ADDRESS if you want to specify the
  * Ethernet address here.  If RTEMS_SET_ETHERNET_ADDRESS is not
  * defined the driver will choose an address.
/* static char ethernet_address[6] = { 0x08, 0x00, 0x3e, 0x12, 0x28,  
0xb1 }; */
/*static char ethernet_address[6] = { 0x00, 0x80, 0x7F, 0x22, 0x61,  
0x77 };	*/ //PC brahms
	static char ethernet_address[6] = { 0x00, 0x01, 0x02, 0x13, 0x8f, 0x5e };

  * Loopback interface
extern void rtems_bsdnet_loopattach();
static struct rtems_bsdnet_ifconfig loopback_config = {
	"lo0",				/* name */
	rtems_bsdnet_loopattach,	/* attach function */

	NULL,				/* link to next interface */

	"",			/* IP address */
	"",			/* IP net mask */

  * Default network interface
static struct rtems_bsdnet_ifconfig netdriver_config = {
	RTEMS_BSP_NETWORK_DRIVER_ATTACH,	/* attach function */

	&loopback_config,		/* link to next interface */
	NULL,					/* No more interfaces */

#if (defined (RTEMS_USE_BOOTP))
	NULL,				/* BOOTP supplies IP address */
	NULL,				/* BOOTP supplies IP net mask */
# ifdef pc386
	"",		/* IP address de la cible PC*/
# else
	"",		/* IP address du leon*/
# endif	/* pc386 */
	"",		/* IP net mask */
#endif /* !RTEMS_USE_BOOTP */

	ethernet_address,               /* Ethernet hardware address */
	NULL,                           /* Driver supplies hardware address */
	0				/* Use default driver parameters */

  * Network configuration
struct rtems_bsdnet_config rtems_bsdnet_config = {

#if (defined (RTEMS_USE_BOOTP))

#ifdef pc386
	20,			/* Default network task priority */
	256*1024,	/* Default mbuf capacity */
	256*1024,	/* Default mbuf cluster capacity */
	0,			/* Default network task priority */
	0,			/* Default mbuf capacity */
	0,			/* Default mbuf cluster capacity */
#endif /* pc386 */

#if (!defined (RTEMS_USE_BOOTP))
#ifdef pc386
	"rtems_host",		/* Host name */
#endif /* pc386 */
	"",		/* Domain name */
	"",	/* Gateway */
	"",	/* Log host */
	{"" },	/* Name server(s) */
	{"" },	/* NTP server(s) */

#endif /* !RTEMS_USE_BOOTP */


  * For TFTP test application
#if (defined (RTEMS_USE_BOOTP))
#define RTEMS_TFTP_TEST_FILE_NAME "tftptest"



Ce message electronique et tous les fichiers joints qu'il contient  
(ci-apres "le message") sont confidentiels et destines exclusivement a  
l'usage des destinataires indiques ou des personnes dument habilitees  
a les recevoir a leur place.

Si vous recevez ce message par erreur, merci de bien vouloir le  
detruire et d'en avertir l'emetteur.

Toute utilisation de ce message non conforme a sa destination, toute  
diffusion ou toute publication totale ou partielle est interdite sauf  
autorisation expresse de l'emetteur.

Les idees et opinions exprimees dans ce message sont celles de son  
auteur et ne representent pas necessairement celles de CS  
Communication & Systemes ou de ses filiales.

Malgre toutes les dispositions prises par CS Communication & Systemes  
et ses filiales pour minimiser les risques de virus, les fichiers  
joints a ce message peuvent contenir des virus qui pourraient  
endommager votre systeme informatique. Il vous appartient d'effectuer  
vos propres controles anti-virus avant d'ouvrir les fichiers joints.  
CS Communication & Systemes et ses filiales declinent toute  
responsabilite pour toute perte ou dommage resultant de l'utilisation  
de ce message et/ou des fichiers joints.

This e-mail and any file attached hereto (hereinafter 'the e-mail')  
are confidential and intended solely for the use of the adressees  
indicated below or the persons duly entitled to receive them in their  

If you receive this e-mail in error, please delete it and notify the sender.

Any use of this e-mail not in accordance with its purpose, any  
dissemination or disclosure, either whole or partial, is prohibited,  
unless formally approved by the sender.

The ideas or opinions expressed in this e-mail are solely those of its  
author and do not necessarily represent those of CS Communication &  
Systeme or its affiliates.

Despite all the measures taken by CS Communication & Systeme and its  
affiliates in order to minimize the risks of virus, the files attached  
to this e-mail may contain virus which could damage your information  
system. You are responsible for processing your own anti-virus  
checking before opening any file attached hereto. Neither CS  
Communication & Systemes, nor its affiliates, shall be held liable for  
any loss or damage due to the use of this e-mail or any file attached  

More information about the users mailing list