NDPMon running in Raspberry Pi

After my previous example, i decided to install NDPMon (the fantastic tool to monitor the Neighbor Discovery Protocol) in a small box and well, the Raspberry Pi is my the best option: is small, cheaper, linux powered and fun, very fun.

My Raspberry runs Debian 7, so the main instructions posted in the official project website, almost not change. Please check that you have ipv6 enabled and working using any path. With this complete, run the next command as root user (or via sudo, as you want).

First, install dependencies:

apt-get install build-essential libpcap-dev libssl-dev libtool autoconf automake autotools-dev libxml2-dev libxslt1-dev bsd-mailx wireshark

After, I decided to use nginx as web server, is small and powerful.

apt-get install nginx

Finally, download ndpmon and compile it.

wget -c http://downloads.sourceforge.net/project/ndpmon/ndpmon/ndpmon-2.1/ndpmon_2.1.0.tar.gz
tar -zxvf ndpmon_2.1.0.tar.gz -C /usr/local/src
cd /usr/local/src/ndpmon_2.1.0/
autoreconf -vi
./configure --prefix=/usr/local  --with-var-datadir=/var/local/lib   --with-confdir=/usr/local/etc --enable-mac-resolv  --enable-webinterface --with-webdir=/usr/share/nginx/www --enable-syslog --enable-countermeasures  
make && make install

The parameter –with-webdir changed because uses the nginx documentroot.

To run the service:

/etc/init.d/ndpmon start
/etc/init.d/nginx restart

For more information, go to the project web site http://ndpmon.sourceforge.net/

ndmon in raspberry

ndmon in raspberry

Cuando el registro de un dominio se hace “a mano”

Desde hace unos días estoy en el proceso de registrar un dominio de un país del sur-este europeo, naturalmente porque me interesa usar su ccTLD. Ya lo he hecho antes con otros proveedores y en general, el proceso siempre es el mismo o muy parecido, te registras, buscas, pagas y en algunos casos envías algún documento hasta que finalmente tienes control de este. Mas adelante, eliges los servidores de nombres (DNS) y listo, después de unas horas, estará haciendo lo que esperas que haga. Pues el caso en el que estoy ahora, tiene un componente especial: hace falta el correo postal!

Cuando inicié la compra del dominio, entré a la página de uno de los proveedores (realmente sólo hay dos) y opté por escoger el que ofrecía Paypal como medio de pago. Hice lo que había que hacer: me registré, busqué, pagué y esperé. Lo que sucede, es que cuando ya pasaban dos días y no recibía un mail con instrucciones, decidí abrir un ticket para recibir soporte pidiendo esas instrucciones. La respuesta me sorprendió:

The process of registration of domains take 10-12 days to register.

We send to Registry an application form.

In the moment of registration we will change the status from pending to active of your domain name.

Pregunté si esos 10-12 días eran calendario o laborales y se me reiteró que era el tiempo que le tomaba “a la forma de registro” en llegar a la autoridad de registro por correo postal. Luego el proveedor que escogí, en principio, recauda el dinero, imprime esa solicitud y la manda por correo. Cuando pasaron 12 días, escribí otra vez, y al parecer la autoridad cambió de oficinas y “el sobre” estaba medio perdido:

Screen Shot 2013 04 17 at 8 24 05 AM

Pasaron 5 días y sin más, tras hacer login en la web del proveedor, parecía que el dominio estaba listo para seguir con el paso respectivo a los servidores de nombres (si, tras casi 20 días de iniciar). Fui a la sección respectiva del servicio de nombres, escribí los míos y no los guardó. Probé con otro navegador, busqué en su base de conocimiento -lo cual fue infructuoso pues no está en inglés- y finalmente, abrí un ticket. ¿Alguien puede adivinar la respuesta? Aquí la comparto:

There are not an panel for change name server of domains,

only method is to submit an ticket like you have done.

The process of modify name server domains is handle manually from Authority

Please send to us a ticket with 2-4 name servers, the process take 5-7 days.

Regards

Parece que tienen que mandar otro sobre postal a la “autoridad” con los servidores DNS, ¡qué sorpresa!

En fin, espero que sea el último sobre que deba mandarse en este proceso.

Finalmente y para cerrar esta anécdota, la fecha de “registro” del dominio es la fecha del pago, luego ese “proceso postal” casi que lo voy pagando yo. 

 

 

Thanks to Oracle, we need the latest version of Java SE -EVER- and next: pray.

After the recent news about the greatest security of Java, have the latest version of the runtime is imperative for me (and maybe for many others). The problem is that until we are notified of the update (automatic like in OSX), we may already be victims of some new “feature” as @jaimeblascob said:
Screen_shot_2013-01-14_at_2
To help, I prepared one small OSX widget that show the latest versions published on its website. Is a very simple app, I hope you find it useful.
Screen_shot_2013-01-14_at_2
MD5 (Java SE last updates.zip) = 9199736603bc094d676f41a78156245c

 

Incidentally, I used a service to build a RSS, a great contribution of Aaron Swartz to the world. 

 

Update 1: This is the feed that I prepared as a data source, use it freely!

great advice when you hire hosting

If you need a hosting solution in datacenter, cloud or whatever please ask to the provider about DDoS mitigation and reporting services.
Rackspace cloud server products has nothing to help, when you have problems, you are alone.

TPP syntax colouring in TextWrangler and BBEdit

Some weeks ago, I discovered TPP, a Terminal Presentation Program. My favourite text editor is TextWrangler (under OSX) and well, the included vim syntaxt file is not enought.
This small hack fix my problem: add TPP highlighting syntax support to TextWrangler. To install, download the file and copy to:
~/Library/Application Support/TextWrangler/Language Modules/
and relaunch TextWrangler.
Untitled_screen_shot_2012-09-3
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<!--
        TextWrangler codeless language module for TPP files.
        To install, copy here:
       
                ~/Library/Application Support/TextWrangler/Language Modules/
       
        and relaunch TextWrangler.
-->
<dict>
	<key>BBEditDocumentType</key>
	<string>CodelessLanguageModule</string>
	<key>BBLMColorsSyntax</key>
	<true/>
	<key>BBLMIsCaseSensitive</key>
	<true/>
	<key>BBLMKeywordList</key>
	<array>
		<string>author</string>
		<string>title</string>
		<string>date</string>
		<string>footer</string>
		<string>heading</string>
		<string>center</string>
		<string>right</string>
		<string>sethugefont</string>
		<string>huge</string>
		<string>exec</string>
		<string>newpage</string>			
		<string>white</string>
		<string>yellow</string>
		<string>red</string>
		<string>white</string>
		<string>green</string>
		<string>blue</string>
		<string>cyan</string>
		<string>magenta</string>
		<string>black</string>
		<string>default</string>
		<string>date</string>
		<string>bgcolor</string>
		<string>fgcolor</string>
		<string>boldon</string>
		<string>boldoff</string>
		<string>ulon</string>
		<string>uloff</string>
		<string>horline</string>
		<string>beginshelloutput</string>
		<string>endshelloutput</string>
		<string>beginslideleft</string>
		<string>endslideleft</string>
		<string>color</string>
		<string>beginoutput</string>
		<string>endoutput</string>
		<string>beginslideright</string>
		<string>endslideright</string>
		<string>beginslidetop</string>
		<string>endslidetop</string>
		<string>beginslidebottom</string>
		<string>endslidebottom</string>
		<string>revon</string>
		<string>revoff</string>
		<string>withborder</string>
		<string>sleep</string>
		<string>-</string>
		<string>--</string>
		<string>&amp;</string>
	</array>
	<key>BBLMLanguageCode</key>
	<string>TPP</string>
	<key>BBLMLanguageDisplayName</key>
	<string>TPP</string>
	<key>BBLMScansFunctions</key>
	<true/>
	<key>BBLMSuffixMap</key>
	<array>
		<dict>
			<key>BBLMLanguageSuffix</key>
			<string>.tpp</string>
		</dict>
		<dict>	
			<key>BBLMLanguageSuffix</key>
			<string>.TPP</string>
		</dict>
	</array>
	<key>Language Features</key>
	<dict>
		<key>Close horline</key>
		<string>end</string>
		<key>Close bond</key>
		<string>boldoff</string>
		<key>Close list</key>
		<string>uloff</string>
		<key>Close output</key>
		<string>endoutput</string>
		<key>end shell</key>
		<string>endshellouput</string>
		<key>Identifier and Keyword Characters</key>
		<string>123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz.</string>
		<key>Begin horline</key>
		<string>begin</string>
		<key>Begin bond</key>
		<string>boldon</string>
		<key>Open list</key>
		<string>ulon</string>
		<key>Begin output</key>
		<string>beginoutput</string>
		<key>begin shell</key>
		<string>beginshellouput</string>
		<key>Comment Pattern</key>
		<string>(?x:
			(?&gt;	\(	                                    )	|
			(?&gt;	\-	                                    )	|
			(?&gt;	\)                                      )	|
			(?&gt;	\[	                                    )	|
			(?&gt;	\]	                                    )	|
			(?&gt;	\{	                                    )	|
			(?&gt;	\}	                                    )	|
			(?&gt;	\http	                                )	|
			(?&gt;	\:	                                    )	|
			(?&gt;	\@	                                    )	|
			(?&gt;	-&gt;	                                )	|
			(?&gt;	\#		.*			$				    )   |
			(?&gt;	\-\-\-		.*			$				)   |
			(?&gt;	\#\#	(?s:.*?)	(?: \#\# | \z ))
		)</string>
		<key>Open Line Comments</key>
        <string>--</string>
	</dict>
</dict>
</plist>
And you can check also inside of my cloned git repo (original can be found here):

Install NDPMon over Fedora 17

The Neighbor Discovery Protocol Monitor (NDPMon) is a diagnostic software application used by Internet Protocol version 6 network administrators for monitoring ICMPv6 packets. NDPMon observes the local network for anomalies in the function of nodes using Neighbor Discovery Protocol (NDP) messages, especially during the Stateless Address Autoconfiguration. When an NDP message is flagged, it notifies the administrator by writing to the syslog or by sending an email report. It may also execute a user-defined script. For IPv6, NDPMon is an equivalent of Arpwatch for IPv4, and has similar basic features with added attacks detection.
NDPMon runs on Linux distributions (available in Debian repositories and in Ubuntu 12.10 and later), Mac OS X, FreeBSD (available as port), NetBSD and OpenBSD. It uses a configuration file containing the expected and valid behavior for nodes and routers on the link. This includes the routers addresses (MAC and IP) and the prefixes, flags and parameters announced.
NDPMon also maintains up-to-date a list of neighbors on the link and watches all advertisements and changes. It permits to track the usage of cryptographically generated interface identifiers or temporary global addresses when Privacy extensions are enabled (default behavior in Ubuntu and Windows for example), or Cryptographically Generated Addresses are in use. (Extracted from the official website project).

To install NDP over Fedora 17 x64 (if you have i686, change the packages suffix), you need:

Dependencies:

yum groupinstall 'Development Tools' 
yum install libpcap-devel.x86_64  libxml2-devel.x86_64 libxslt-devel.x86_64 mailx.x86_64 httpd.x86_64
Download, prepare and install
wget -c http://downloads.sourceforge.net/project/ndpmon/ndpmon/ndpmon-2.1/ndpmon_2.1.0.tar.gz
cd ndpmon_2.1.0/
autoreconf -vi
mkdir -p /var/local/lib; mkdir -p /usr/local/etc
./configure --prefix=/usr/local --with-var-datadir=/var/local/lib --with-confdir=/usr/local/etc --enable-mac-resolv --enable-webinterface --with-webdir=/var/www/html --enable-syslogfilter --enable-countermeasures
make && make install
Fix problems:
rm -f /etc/logrotate.d/ndpmon
rm -f /etc/init.d/ndpmon
Test the installation:

Automatic configuration:

ndpmon -L
Start the process:
ndpmon

To check the web interface:

apachectl start
and go with the browser to:

http://localhost/ndpmon/

Screen_shot_2012-09-20_at_4Ndpmon_-_neighbor_discovery_pr0ndpmon_-_neighbor_discovery_pr

Please check the documentation for tunning and configure it according to your needs.

Terminal Presentation Program (TPP) ó presentaciones desde la terminal

Como extraño esos tiempos de LyX, TeX, magicpoint para hacer presentaciones. Esos días, cuando lo importante era lo que contabas y no la herramienta que usabas, cuando una presentación era sólo texto y en el peor de los casos, una que otra imagen, nada mas. Hoy, y aprendido desde Powerpoint (y cosas como prezi), necesitamos mas poder de cómputo para exponer un par de ideas en algo que se volvió indispensable en una charla: las diapositivas o slides*.

Recuerdo que al leer Slide:ology de Nancy Duarte, sugerencias como “hacer menos es hacer mas” y “los slides son una vía de apoyo, nada más” traían a mi varias lecciones aprendidas tras varios años de hacer presentaciones apoyándome en herramientas propias para este fin, mapas mentales y últimamente html5 (que por cierto, es mi favorita).
 

Hoy quiero hablar de otra herramienta que he comenzado a usar, una que me gusta porque la terminal es el gran protagonista, Terminal Presentation Program: tpp. Usa ncurses, está escrita en ruby1.8 y es fácilmente extendible, además de que las presentaciones son simples archivos de texto que se pueden escribir en el editor favorito y con una sintaxis minimalista.

La instalación en OSX es muy simple, los pre-requisitos:
  1. Tener ruby instalado.
  2. Tener XCode instalado.
  3. Instalar ncurses-ruby. El camino sugerido es descargar el código fuente, compilar e instalar en las ubicaciones definitivas. En caso de tener problemas con el “make”, esta breve nota puede ser útil.
  4. Aunque es opcional, es recomendable instalar figlet para poder generar “banners” dentro de las presentaciones. Si tenemos macports, basta con: “port install figlet”.
Para instalar: descargar el código fuente y:
tar -zxvf tpp-1.3.1.tar.gz && cd tpp-1.3.1 && sudo make install
Un ejemplo:
Screen_shot_2012-08-31_at_1
Muy vintage :)
 
* Por cierto, en este trabajo se encuentra una recopilación de herramientas “poco comunes” para hacer presentaciones.
* Y por último, un videotutorial sobre su uso.
 

 

 

error building ncurses-ruby over OSX

Trying to compile ncurses-ruby 1.3.1 over OSX, this error:
gcc -I. -I. -I/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/universal-darwin11.0 -I. -DHAVE_UNISTD_H -DHAVE_LOCALE_H -DHAVE_NCURSES_H -DHAVE_NEWSCR -DHAVE_TABSIZE -DHAVE_ESCDELAY -DHAVE_KEYBOUND -DHAVE_CURSES_VERSION -DHAVE_TIGETSTR -DHAVE_GETWIN -DHAVE_PUTWIN -DHAVE_UNGETMOUSE -DHAVE_MOUSEMASK -DHAVE_WENCLOSE -DHAVE_MOUSEINTERVAL -DHAVE_WMOUSE_TRAFO -DHAVE_MCPRINT -DHAVE_HAS_KEY -DHAVE_DELSCREEN -DHAVE_DEFINE_KEY -DHAVE_KEYOK -DHAVE_RESIZETERM -DHAVE_USE_DEFAULT_COLORS -DHAVE_USE_EXTENDED_NAMES -DHAVE_WRESIZE -DHAVE_ATTR_ON -DHAVE_ATTR_OFF -DHAVE_ATTR_SET -DHAVE_CHGAT -DHAVE_COLOR_SET -DHAVE_FILTER -DHAVE_INTRFLUSH -DHAVE_MVCHGAT -DHAVE_MVHLINE -DHAVE_MVVLINE -DHAVE_MVWCHGAT -DHAVE_MVWHLINE -DHAVE_MVWVLINE -DHAVE_NOQIFLUSH -DHAVE_PUTP -DHAVE_QIFLUSH -DHAVE_SCR_DUMP -DHAVE_SCR_INIT -DHAVE_SCR_RESTORE -DHAVE_SCR_SET -DHAVE_SLK_ATTR_OFF -DHAVE_SLK_ATTR_ON -DHAVE_SLK_ATTR -DHAVE_SLK_ATTR_SET -DHAVE_SLK_COLOR -DHAVE_TIGETFLAG -DHAVE_TIGETNUM -DHAVE_USE_ENV -DHAVE_VIDATTR -DHAVE_VID_ATTR -DHAVE_WATTR_ON -DHAVE_WATTR_OFF -DHAVE_WATTR_SET -DHAVE_WCHGAT -DHAVE_WCOLOR_SET -DHAVE_GETATTRS -DHAVE_ASSUME_DEFAULT_COLORS -DHAVE_ATTR_GET -DHAVE_PANEL_H -DHAVE_FORM_H -DHAVE_MENU_H  -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE   -fno-common -arch i386 -arch x86_64 -g -Os -pipe -fno-common -DENABLE_DTRACE  -fno-common  -pipe -fno-common  -g  -c ncurses_wrap.c
ncurses_wrap.c: In function 'rbncurshelper_nonblocking_wgetch':
ncurses_wrap.c:818: error: dereferencing pointer to incomplete type
ncurses_wrap.c:835: error: dereferencing pointer to incomplete type
ncurses_wrap.c:854: error: dereferencing pointer to incomplete type
ncurses_wrap.c: In function 'rbncurshelper_nonblocking_wgetch':
ncurses_wrap.c:818: error: dereferencing pointer to incomplete type
ncurses_wrap.c:835: error: dereferencing pointer to incomplete type
ncurses_wrap.c:854: error: dereferencing pointer to incomplete type
lipo: can't open input file: /var/tmp//ccYm3was.out (No such file or directory)
make: *** [ncurses_wrap.o] Error 1
Looks like the pre-processor definition NCURSES_OPAQUE has some problem. To solve, we can preset a value and try to compile:
sudo cflags=-DNCURSES_OPAQUE=0 make
gcc -I. -I. -I/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/universal-darwin11.0 -I. -DHAVE_UNISTD_H -DHAVE_LOCALE_H -DHAVE_NCURSES_H -DHAVE_NEWSCR -DHAVE_TABSIZE -DHAVE_ESCDELAY -DHAVE_KEYBOUND -DHAVE_CURSES_VERSION -DHAVE_TIGETSTR -DHAVE_GETWIN -DHAVE_PUTWIN -DHAVE_UNGETMOUSE -DHAVE_MOUSEMASK -DHAVE_WENCLOSE -DHAVE_MOUSEINTERVAL -DHAVE_WMOUSE_TRAFO -DHAVE_MCPRINT -DHAVE_HAS_KEY -DHAVE_DELSCREEN -DHAVE_DEFINE_KEY -DHAVE_KEYOK -DHAVE_RESIZETERM -DHAVE_USE_DEFAULT_COLORS -DHAVE_USE_EXTENDED_NAMES -DHAVE_WRESIZE -DHAVE_ATTR_ON -DHAVE_ATTR_OFF -DHAVE_ATTR_SET -DHAVE_CHGAT -DHAVE_COLOR_SET -DHAVE_FILTER -DHAVE_INTRFLUSH -DHAVE_MVCHGAT -DHAVE_MVHLINE -DHAVE_MVVLINE -DHAVE_MVWCHGAT -DHAVE_MVWHLINE -DHAVE_MVWVLINE -DHAVE_NOQIFLUSH -DHAVE_PUTP -DHAVE_QIFLUSH -DHAVE_SCR_DUMP -DHAVE_SCR_INIT -DHAVE_SCR_RESTORE -DHAVE_SCR_SET -DHAVE_SLK_ATTR_OFF -DHAVE_SLK_ATTR_ON -DHAVE_SLK_ATTR -DHAVE_SLK_ATTR_SET -DHAVE_SLK_COLOR -DHAVE_TIGETFLAG -DHAVE_TIGETNUM -DHAVE_USE_ENV -DHAVE_VIDATTR -DHAVE_VID_ATTR -DHAVE_WATTR_ON -DHAVE_WATTR_OFF -DHAVE_WATTR_SET -DHAVE_WCHGAT -DHAVE_WCOLOR_SET -DHAVE_GETATTRS -DHAVE_ASSUME_DEFAULT_COLORS -DHAVE_ATTR_GET -DHAVE_PANEL_H -DHAVE_FORM_H -DHAVE_MENU_H  -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE   -fno-common -arch i386 -arch x86_64 -g -Os -pipe -fno-common -DENABLE_DTRACE  -fno-common  -pipe -fno-common -DNCURSES_OPAQUE=0 -g  -c form_wrap.c
gcc -I. -I. -I/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/universal-darwin11.0 -I. -DHAVE_UNISTD_H -DHAVE_LOCALE_H -DHAVE_NCURSES_H -DHAVE_NEWSCR -DHAVE_TABSIZE -DHAVE_ESCDELAY -DHAVE_KEYBOUND -DHAVE_CURSES_VERSION -DHAVE_TIGETSTR -DHAVE_GETWIN -DHAVE_PUTWIN -DHAVE_UNGETMOUSE -DHAVE_MOUSEMASK -DHAVE_WENCLOSE -DHAVE_MOUSEINTERVAL -DHAVE_WMOUSE_TRAFO -DHAVE_MCPRINT -DHAVE_HAS_KEY -DHAVE_DELSCREEN -DHAVE_DEFINE_KEY -DHAVE_KEYOK -DHAVE_RESIZETERM -DHAVE_USE_DEFAULT_COLORS -DHAVE_USE_EXTENDED_NAMES -DHAVE_WRESIZE -DHAVE_ATTR_ON -DHAVE_ATTR_OFF -DHAVE_ATTR_SET -DHAVE_CHGAT -DHAVE_COLOR_SET -DHAVE_FILTER -DHAVE_INTRFLUSH -DHAVE_MVCHGAT -DHAVE_MVHLINE -DHAVE_MVVLINE -DHAVE_MVWCHGAT -DHAVE_MVWHLINE -DHAVE_MVWVLINE -DHAVE_NOQIFLUSH -DHAVE_PUTP -DHAVE_QIFLUSH -DHAVE_SCR_DUMP -DHAVE_SCR_INIT -DHAVE_SCR_RESTORE -DHAVE_SCR_SET -DHAVE_SLK_ATTR_OFF -DHAVE_SLK_ATTR_ON -DHAVE_SLK_ATTR -DHAVE_SLK_ATTR_SET -DHAVE_SLK_COLOR -DHAVE_TIGETFLAG -DHAVE_TIGETNUM -DHAVE_USE_ENV -DHAVE_VIDATTR -DHAVE_VID_ATTR -DHAVE_WATTR_ON -DHAVE_WATTR_OFF -DHAVE_WATTR_SET -DHAVE_WCHGAT -DHAVE_WCOLOR_SET -DHAVE_GETATTRS -DHAVE_ASSUME_DEFAULT_COLORS -DHAVE_ATTR_GET -DHAVE_PANEL_H -DHAVE_FORM_H -DHAVE_MENU_H  -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE   -fno-common -arch i386 -arch x86_64 -g -Os -pipe -fno-common -DENABLE_DTRACE  -fno-common  -pipe -fno-common -DNCURSES_OPAQUE=0 -g  -c menu_wrap.c
gcc -I. -I. -I/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/universal-darwin11.0 -I. -DHAVE_UNISTD_H -DHAVE_LOCALE_H -DHAVE_NCURSES_H -DHAVE_NEWSCR -DHAVE_TABSIZE -DHAVE_ESCDELAY -DHAVE_KEYBOUND -DHAVE_CURSES_VERSION -DHAVE_TIGETSTR -DHAVE_GETWIN -DHAVE_PUTWIN -DHAVE_UNGETMOUSE -DHAVE_MOUSEMASK -DHAVE_WENCLOSE -DHAVE_MOUSEINTERVAL -DHAVE_WMOUSE_TRAFO -DHAVE_MCPRINT -DHAVE_HAS_KEY -DHAVE_DELSCREEN -DHAVE_DEFINE_KEY -DHAVE_KEYOK -DHAVE_RESIZETERM -DHAVE_USE_DEFAULT_COLORS -DHAVE_USE_EXTENDED_NAMES -DHAVE_WRESIZE -DHAVE_ATTR_ON -DHAVE_ATTR_OFF -DHAVE_ATTR_SET -DHAVE_CHGAT -DHAVE_COLOR_SET -DHAVE_FILTER -DHAVE_INTRFLUSH -DHAVE_MVCHGAT -DHAVE_MVHLINE -DHAVE_MVVLINE -DHAVE_MVWCHGAT -DHAVE_MVWHLINE -DHAVE_MVWVLINE -DHAVE_NOQIFLUSH -DHAVE_PUTP -DHAVE_QIFLUSH -DHAVE_SCR_DUMP -DHAVE_SCR_INIT -DHAVE_SCR_RESTORE -DHAVE_SCR_SET -DHAVE_SLK_ATTR_OFF -DHAVE_SLK_ATTR_ON -DHAVE_SLK_ATTR -DHAVE_SLK_ATTR_SET -DHAVE_SLK_COLOR -DHAVE_TIGETFLAG -DHAVE_TIGETNUM -DHAVE_USE_ENV -DHAVE_VIDATTR -DHAVE_VID_ATTR -DHAVE_WATTR_ON -DHAVE_WATTR_OFF -DHAVE_WATTR_SET -DHAVE_WCHGAT -DHAVE_WCOLOR_SET -DHAVE_GETATTRS -DHAVE_ASSUME_DEFAULT_COLORS -DHAVE_ATTR_GET -DHAVE_PANEL_H -DHAVE_FORM_H -DHAVE_MENU_H  -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE   -fno-common -arch i386 -arch x86_64 -g -Os -pipe -fno-common -DENABLE_DTRACE  -fno-common  -pipe -fno-common -DNCURSES_OPAQUE=0 -g  -c ncurses_wrap.c
gcc -I. -I. -I/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/universal-darwin11.0 -I. -DHAVE_UNISTD_H -DHAVE_LOCALE_H -DHAVE_NCURSES_H -DHAVE_NEWSCR -DHAVE_TABSIZE -DHAVE_ESCDELAY -DHAVE_KEYBOUND -DHAVE_CURSES_VERSION -DHAVE_TIGETSTR -DHAVE_GETWIN -DHAVE_PUTWIN -DHAVE_UNGETMOUSE -DHAVE_MOUSEMASK -DHAVE_WENCLOSE -DHAVE_MOUSEINTERVAL -DHAVE_WMOUSE_TRAFO -DHAVE_MCPRINT -DHAVE_HAS_KEY -DHAVE_DELSCREEN -DHAVE_DEFINE_KEY -DHAVE_KEYOK -DHAVE_RESIZETERM -DHAVE_USE_DEFAULT_COLORS -DHAVE_USE_EXTENDED_NAMES -DHAVE_WRESIZE -DHAVE_ATTR_ON -DHAVE_ATTR_OFF -DHAVE_ATTR_SET -DHAVE_CHGAT -DHAVE_COLOR_SET -DHAVE_FILTER -DHAVE_INTRFLUSH -DHAVE_MVCHGAT -DHAVE_MVHLINE -DHAVE_MVVLINE -DHAVE_MVWCHGAT -DHAVE_MVWHLINE -DHAVE_MVWVLINE -DHAVE_NOQIFLUSH -DHAVE_PUTP -DHAVE_QIFLUSH -DHAVE_SCR_DUMP -DHAVE_SCR_INIT -DHAVE_SCR_RESTORE -DHAVE_SCR_SET -DHAVE_SLK_ATTR_OFF -DHAVE_SLK_ATTR_ON -DHAVE_SLK_ATTR -DHAVE_SLK_ATTR_SET -DHAVE_SLK_COLOR -DHAVE_TIGETFLAG -DHAVE_TIGETNUM -DHAVE_USE_ENV -DHAVE_VIDATTR -DHAVE_VID_ATTR -DHAVE_WATTR_ON -DHAVE_WATTR_OFF -DHAVE_WATTR_SET -DHAVE_WCHGAT -DHAVE_WCOLOR_SET -DHAVE_GETATTRS -DHAVE_ASSUME_DEFAULT_COLORS -DHAVE_ATTR_GET -DHAVE_PANEL_H -DHAVE_FORM_H -DHAVE_MENU_H  -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE   -fno-common -arch i386 -arch x86_64 -g -Os -pipe -fno-common -DENABLE_DTRACE  -fno-common  -pipe -fno-common -DNCURSES_OPAQUE=0 -g  -c panel_wrap.c
cc -arch i386 -arch x86_64 -pipe -bundle -undefined dynamic_lookup -o ncurses_bin.bundle form_wrap.o menu_wrap.o ncurses_wrap.o panel_wrap.o -L. -L/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib -L. -arch i386 -arch x86_64     -lruby -lmenu -lform -lpanel -lncurses  -lpthread -ldl -lobjc
After all,
sudo make install

Enable multicast in smartOS/solaris

Multicast interfaces are not enabled by default on machines provisioned into the Joyent Public Cloud. However, you can enable multicast interfaces by doing the following:

  1. Choose an interface to which you want to attach the multicast segment 224.0.0.0/4. Your options are em0 or em1.Tip: We recommend em1.
  2. Take note of the IP address for the chosen interface.
  3. Execute the following command as the root user:
    route -n add -interface 224.0/4 -gateway $IP_OF_INTERFACE
  4. Verify the multicast segment is attached:
    netstat -rn | grep 224.0.0.0

If successful, you should see something similar to the following:

224.0.0.0            10.112.0.243         U         1          0 net1 or net2

 

About ipf and Multicast Traffic Rules

If you plan to use ipf (IPFilter), you will need to write rules that allow multicast traffic. You can write those rules in the following way:

pass in quick on $INTERFACE proto 2 from any to any
pass out quick on $INTERFACE proto 2 from any to any

If you need to permanently add those rules to your config, check the attached SMF manifest.

Note: If you use the attached manifest, ensure you specify the correct IP address for the $IP variable.

svccfg validate multicastlan.xml
svccfg import multicastlan.xml
svcs multicastlan
STATE          STIME    FMRI
disabled        9:52:18 svc:/site/multicastlan:default
svcadm enable multicastlan
svcs multicastlan
STATE          STIME    FMRI
online          9:52:53 svc:/site/multicastlan:default

 Note: For more information on IPFilter, you can view the man page here.